def sendOrder(sig, price, date_info, is_urgent, debug_info):
    global stop_lose, stop_win, global_give_opside, global_price_chg_min, global_error_index
    global global_true_stop_direction

    order_info = {}
    #    print sig, global_give_opside
    #    print global_true_order_direction
    if sig == "0" or sig == False:
        return order_info
    if global_give_opside < 0:
        if sig == "1":
            sig = "2"
        elif sig == "2":
            sig = "1"

    if sig == "1":
        if Order.isDealOpen():
            if Order.global_deal["direction"] == Order.OP_SELL:
                order_profit = Order.orderProfit(Order.global_deal, price)
                #                if (abs(order_profit) > global_price_chg_min and order_profit > 0) or order_profit <= 0:
                if abs(order_profit) > global_price_chg_min or is_urgent:
                    order_info = Order.orderClose(date_info, price,
                                                  Order.STOP_T_CMD)
                    TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
                    if order_info:
                        if order_profit < 0:
                            newErrIndex(1, order_info["profit"])
                        else:
                            newErrIndex(-1, order_info["profit"])
                if order_info:
                    1  # none
                    testPrint([
                        debug_info[0], debug_info[1], "close",
                        order_info["profit"] > 0, date_info, price,
                        order_info["profit"], global_error_index,
                        global_error_index_e_01_avg
                    ])
        order_info = Order.orderSend(date_info, Order.OP_UP, price,
                                     price - stop_lose, price + stop_win)
        if order_info and global_true_order_direction != 0:
            if global_true_order_direction > 0:
                if global_true_stop_direction != Order.OP_UP:
                    TrueOrder.orderSend(date_info, Order.OP_UP,
                                        price + global_point,
                                        price - stop_lose_true,
                                        price + stop_win_true)
                    global_true_stop_direction = 0
            else:
                if global_true_stop_direction != Order.OP_SELL:
                    TrueOrder.orderSend(date_info, Order.OP_SELL,
                                        price - global_point,
                                        price + stop_lose_true,
                                        price - stop_win_true)
                    global_true_stop_direction = 0
    elif sig == "2":
        if Order.isDealOpen():
            if Order.global_deal["direction"] == Order.OP_UP:
                order_profit = Order.orderProfit(Order.global_deal, price)
                #                if (abs(order_profit) > global_price_chg_min and order_profit > 0) or order_profit <= 0:
                if abs(order_profit) > global_price_chg_min or is_urgent:
                    order_info = Order.orderClose(date_info, price,
                                                  Order.STOP_T_CMD)
                    TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
                    if order_info:
                        if order_profit < 0:
                            newErrIndex(1, order_info["profit"])
                        else:
                            newErrIndex(-1, order_info["profit"])
                if order_info:
                    1  # none
                    testPrint([
                        debug_info[0], debug_info[1], "close",
                        order_info["profit"] > 0, date_info, price,
                        order_info["profit"], global_error_index,
                        global_error_index_e_01_avg
                    ])
        order_info = Order.orderSend(date_info, Order.OP_SELL, price,
                                     price + stop_lose, price - stop_win)
        if order_info and global_true_order_direction != 0:
            if global_true_order_direction > 0:
                if global_true_stop_direction != Order.OP_SELL:
                    TrueOrder.orderSend(date_info, Order.OP_SELL,
                                        price - global_point,
                                        price + stop_lose_true,
                                        price - stop_win_true)
                    global_true_stop_direction = 0
            else:
                if global_true_stop_direction != Order.OP_UP:
                    TrueOrder.orderSend(date_info, Order.OP_UP,
                                        price + global_point,
                                        price - stop_lose_true,
                                        price + stop_win_true)
                    global_true_stop_direction = 0
    elif sig == "3":
        order_profit = Order.orderProfit(Order.global_deal, price)
        if abs(order_profit) > global_price_chg_min or is_urgent:
            order_info = Order.orderClose(date_info, price, Order.STOP_T_CMD)
            TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
            if order_info:
                if order_profit < 0:
                    newErrIndex(1, order_info["profit"])
                else:
                    newErrIndex(-1, order_info["profit"])


#    testPrint([debug_info[1], debug_info[2], debug_info[5], debug_info[6], debug_info[7], debug_info[8]])
#    testPrint(order_info)
    if order_info:
        if sig == "3":
            testPrint([
                debug_info[0], debug_info[1], "close",
                order_info["profit"] > 0, date_info, price,
                order_info["profit"], global_error_index,
                global_error_index_e_01_avg
            ])
        else:
            testPrint([
                debug_info[0], debug_info[1], sig, 0, date_info, price,
                order_info["profit"], global_error_index,
                global_error_index_e_01_avg
            ])
    return order_info
Beispiel #2
0
def sendOrder(sig, price, date_info, is_urgent, debug_info):
    global stop_lose, stop_win, global_give_opside, global_price_chg_min, global_error_index
    global global_true_stop_direction

    order_info = {}
    #    print sig, global_give_opside
    #    print global_true_order_direction
    if sig == "0" or sig == False or global_give_opside == 0:
        return order_info
    if global_give_opside < 0:
        if sig == "1":
            sig = "2"
        elif sig == "2":
            sig = "1"

    if sig == "1":
        if Order.isDealOpen():
            if Order.global_deal["direction"] == Order.OP_SELL:
                order_profit = Order.orderProfit(Order.global_deal, price)
                #                if (abs(order_profit) > global_price_chg_min and order_profit > 0) or order_profit <= 0:
                if abs(order_profit) > global_price_chg_min or is_urgent:
                    order_info = Order.orderClose(date_info, price,
                                                  Order.STOP_T_CMD)
                    TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
                    if order_info:
                        if order_profit < 0:
                            newErrIndex(1, order_info["profit"])
                        else:
                            newErrIndex(-1, order_info["profit"])
                if order_info:
                    1  # none
        if not order_info or order_info['profit'] < 0:
            order_info = Order.orderSend(date_info, Order.OP_UP, price,
                                         price - stop_lose, price + stop_win)

        if Order.isDealOpen() and global_true_order_direction != 0:
            if global_true_order_direction > 0:
                if global_true_stop_direction != Order.OP_UP:
                    test_profit = Order.orderProfit(Order.global_deal, price)
                    if test_profit > 0 and test_profit < 0.2:
                        TrueOrder.orderSend(date_info, Order.OP_UP,
                                            price + global_point,
                                            price - stop_lose_true,
                                            price + stop_win_true)
                    global_true_stop_direction = 0
            else:
                if global_true_stop_direction != Order.OP_SELL:
                    test_profit = Order.orderProfit(Order.global_deal, price)
                    if test_profit > 0 and test_profit < 0.2:
                        TrueOrder.orderSend(date_info, Order.OP_SELL,
                                            price - global_point,
                                            price + stop_lose_true,
                                            price - stop_win_true)
                    global_true_stop_direction = 0
    elif sig == "2":
        if Order.isDealOpen():
            if Order.global_deal["direction"] == Order.OP_UP:
                order_profit = Order.orderProfit(Order.global_deal, price)
                #                if (abs(order_profit) > global_price_chg_min and order_profit > 0) or order_profit <= 0:
                if abs(order_profit) > global_price_chg_min or is_urgent:
                    order_info = Order.orderClose(date_info, price,
                                                  Order.STOP_T_CMD)
                    TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
                    if order_info:
                        if order_profit < 0:
                            newErrIndex(1, order_info["profit"])
                        else:
                            newErrIndex(-1, order_info["profit"])
                if order_info:
                    1  # none
        if not order_info or order_info['profit'] < 0:
            order_info = Order.orderSend(date_info, Order.OP_SELL, price,
                                         price + stop_lose, price - stop_win)

        if Order.isDealOpen() and global_true_order_direction != 0:
            if global_true_order_direction > 0:
                if global_true_stop_direction != Order.OP_SELL:
                    test_profit = Order.orderProfit(Order.global_deal, price)
                    if test_profit > 0 and test_profit < 0.2:
                        TrueOrder.orderSend(date_info, Order.OP_SELL,
                                            price - global_point,
                                            price + stop_lose_true,
                                            price - stop_win_true)
                    global_true_stop_direction = 0
            else:
                if global_true_stop_direction != Order.OP_UP:
                    test_profit = Order.orderProfit(Order.global_deal, price)
                    if test_profit > 0 and test_profit < 0.2:
                        TrueOrder.orderSend(date_info, Order.OP_UP,
                                            price + global_point,
                                            price - stop_lose_true,
                                            price + stop_win_true)
                    global_true_stop_direction = 0
    elif sig == "3":
        order_profit = Order.orderProfit(Order.global_deal, price)
        if abs(order_profit) > global_price_chg_min or is_urgent:
            order_info = Order.orderClose(date_info, price, Order.STOP_T_CMD)
            TrueOrder.orderClose(date_info, price, Order.STOP_T_CMD)
            if order_info:
                if order_profit < 0:
                    newErrIndex(1, order_info["profit"])
                else:
                    newErrIndex(-1, order_info["profit"])
    return order_info