def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside
    global global_true_order_direction, global_true_stop_direction
    global global_error_index_e_01_avg
    import Analyse_win_crosspoint_1_60 as Analyse

    test_tmp = 0
    stop_direction = 0
    crr_direction = 0
    smooth_market_indexs = [0, 0, 0, 0, 0, 0]
    Analyse.initAnaType("time")
    Analyse.initPoolSize(global_pool_size, "time")
    i = 0
    while (1):
        if global_data_index >= len(global_test_data):
            break
        one = mkMiniLine()
        if not one:
            continue

        check_info = Order.checkTick(one[6], one[7], one[5])
        if check_info:
            stop_direction = global_give_opside * check_info['direction']
            #            global_give_opside *= -1
            global_error_index += check_info['profit']
#            testPrint(["stop", check_info["profit"]>0, one[0] + " " + one[1], one[5], 0, 0, 0, 0, 0, 0])
        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        #        if check_info_true:
        #            global_true_stop_direction = global_give_opside * check_info_true['direction']
        #            print global_true_stop_direction

        Analyse.addData(one[:])

        res = Analyse.calcPool()
        #        if res:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]+res[3]*10])
        #        else:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]])

        if res:
            crr_sig = Analyse.crrSigStatus()
            #            testPrint(crr_sig)
            if crr_sig[0] != 0:
                global_error_index_e_01_avg += -res[3] / 5
                #                print "sig: ", crr_sig, ", opside_flag: ", global_give_opside, "crr: ", crr_direction
                #                if crr_sig[1] >= 25:
                #                    global_give_opside = 1
                #                    global_true_stop_direction = -crr_sig[0]
                #                    global_true_order_direction = -1
                #                else:
                #                    global_give_opside = -1
                #                    global_true_order_direction = 0
                #                if crr_direction != 0:
                #                    if crr_sig[1] >= 10:
                #                        global_true_order_direction = 0
                #                    if crr_sig[1] >= 50:
                #                        global_true_stop_direction = -crr_sig[0]
                #                        global_true_order_direction = -1
                #                    if crr_direction != crr_sig[0]:
                #                        global_true_stop_direction = crr_sig[0]
                #                        global_true_order_direction = 0
                crr_direction = crr_sig[0]

            opt = Analyse.addDeal(res)
            if opt:
                for one_opt in opt:
                    #                    one_opt = str(random.randint(1,2))
                    #                    print stop_direction
                    if stop_direction == Order.OP_SELL:
                        #                        print stop_direction, one_opt
                        if one_opt == "2":
                            one_opt = "3"
                        elif one_opt == "1":
                            stop_direction = 0
                    elif stop_direction == Order.OP_UP:
                        #                        print stop_direction, one_opt
                        if one_opt == "1":
                            one_opt = "3"
                        elif one_opt == "2":
                            stop_direction = 0
#                    if crr_sig[1] >= 20:
#                        sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
#                        one_opt = "0"
#                    print global_true_order_direction
                    order_info = sendOrder(one_opt, one[5],
                                           one[0] + " " + one[1], False,
                                           crr_sig)


#            print res
#            testPrint(res)
        i += 1
        if i % 10000 == 0:
            print i
            Order.profitInfo()
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    mkCsvFileWin("test_deals_info.csv", res)
    mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"
Beispiel #2
0
def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside
    global global_true_order_direction, global_true_stop_direction
    import Analyse_pool_todo as Analyse

    test_tmp = 0
    stop_direction = 0
    crr_direction = 0
    smooth_market_indexs = [0, 0, 0, 0, 0, 0]
    zero_max = 3
    Analyse.initAnaType("time")
    Analyse.initPoolSize(60, "time")
    i = 0
    while (1):
        if global_data_index >= len(global_test_data):
            break
        one = mkMiniLine()
        if not one:
            continue

        check_info = Order.checkTick(one[6], one[7], one[5])
        if check_info:
            zero_max = 3
            if check_info['profit'] < 0:
                stop_direction = global_give_opside * check_info['direction']
#            testPrint(["0", "0", "stop", check_info["profit"]>0, one[0] + " " + one[1], one[5], check_info["profit"], 0, 0])
            global_error_index += check_info['profit']
        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        #        if check_info_true:
        #            global_true_stop_direction = global_give_opside * check_info_true['direction']
        #            print global_true_stop_direction

        Analyse.addData(one[:])

        res = Analyse.calcPool()
        #        if res:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]+res[3]*10])
        #        else:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]])

        if res:
            crr_sig = Analyse.crrSigStatus()
            #            if Order.orderProfit(Order.global_deal, one[5])  > global_price_chg_min:
            #                sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
            #            testPrint(res)
            #            if crr_sig[0] == 0 and crr_sig[1] > zero_max:
            #                if Order.orderProfit(Order.global_deal, one[5])  < global_price_chg_min:
            #                    sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
            #                    stop_direction = global_give_opside * Order.global_deal['direction']
            if crr_sig[0] != 0:
                zero_max = crr_sig[1]**2.7 * 5
                #                print "sig: ", crr_sig, ", opside_flag: ", global_give_opside, "crr: ", crr_direction
                #                if crr_direction != 0:
                #                    if crr_sig[1] >= 30:
                #                        global_true_order_direction = -1
                #                    if crr_direction != crr_sig[0]:
                #                        global_true_stop_direction = crr_sig[0]
                #                        global_true_order_direction = 1
                crr_direction = crr_sig[0]

            opt = Analyse.addDeal(res)
            if opt:
                for one_opt in opt:
                    #                    one_opt = str(random.randint(1,2))
                    #                    print stop_direction
                    if stop_direction == Order.OP_SELL:
                        #                        print stop_direction, one_opt
                        if one_opt == "2":
                            one_opt = "3"
                        elif one_opt == "1":
                            stop_direction = 0
                    elif stop_direction == Order.OP_UP:
                        #                        print stop_direction, one_opt
                        if one_opt == "1":
                            one_opt = "3"
                        elif one_opt == "2":
                            stop_direction = 0
#                    print global_true_order_direction
#                    if one_opt == "2":
#                        one_opt = "3"
                    order_info = sendOrder(one_opt, one[5],
                                           one[0] + " " + one[1], False,
                                           crr_sig)


#            print res
#            testPrint(res)
        i += 1
        if i % 7200 == 0:
            print i
            Order.profitInfo()
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    mkCsvFileWin("test_deals_info.csv", res)
    mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"
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 #4
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
Beispiel #5
0
def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside, global_chg_per
    global global_true_order_direction, global_true_stop_direction
    global stop_win, stop_lose, stop_lose_true, stop_win_true
    import Analyse_price_walk as Analyse
    import DataSrc
    from ClassLine import Line
    import Market

    test_tmp = 0
    stop_direction = 0

    Analyse.initPriceWalk(global_chg_per)
    if global_source_file.find("IF") > 0:
        DataSrc.init(global_source_file, "IF")
    else:
        DataSrc.init(global_source_file, "MT4")

    i = 0
    signar = 0
    tmp_count = 0
    crr_price = 0
    price_walk = Line(Market.E_N_AVG, 3)
    price_ct_diff = Line(Market.E_N_AVG)
    shoot_diff = Line(Market.E_N_AVG)
    vol_ct_diff = Line(Market.E_N_AVG)
    vol_strong_win_diff = Line(Market.E_N_AVG)
    vol_weak_win_diff = Line(Market.E_N_AVG)
    vol_strong_lose_diff = Line(Market.E_N_AVG)
    vol_weak_lose_diff = Line(Market.E_N_AVG)
    vol_index_diff = Line(Market.E_N_AVG)
    vol_avg_diff = Line(Market.E_N_AVG)
    while (1):
        one = DataSrc.getLine()
        #        print "line: ", one
        if not one:
            break
        crr_price = one[5]
        market = Market.listen(one)

        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        check_info = Order.checkTick(one[6], one[7], one[5], 0)
        #        check_info = Order.checkTick(one[6], one[7], one[5], stop_lose)
        if check_info:
            sendOrder("3", one[5], one[0] + " " + one[1], True, "")
#            if check_info['profit']< 0:
#                stop_direction = global_give_opside * check_info['direction']

        tmpw = market["info"]["price_crr_walk"]
        tmp1 = price_ct_diff.add(market["info"]["price_up_ct"] -
                                 market["info"]["price_sell_ct"])
        price_walk.add(market["info"]["price_crr_walk"])
        tmp2 = int(abs(tmpw) > 1)
        #        print price_walk.point
        tmp = int(tmpw * tmp1 > 0) * tmp2

        tmpv1 = shoot_diff.add(market["info"]["vol_up_shoot"] -
                               market["info"]["vol_sell_shoot"])
        #        print shoot_diff.info()
        #        print tmpv1
        tmpv2 = vol_ct_diff.add(market["info"]["vol_up_ct"] -
                                market["info"]["vol_sell_ct"])
        tmpv3 = vol_strong_win_diff.add(market["info"]["vol_up_strong_win"] -
                                        market["info"]["vol_sell_strong_win"])
        tmpv4 = vol_weak_win_diff.add(market["info"]["vol_up_weak_win"] -
                                      market["info"]["vol_sell_weak_win"])
        tmpv5 = vol_strong_lose_diff.add(
            market["info"]["vol_up_strong_lose"] -
            market["info"]["vol_sell_strong_lose"])
        tmpv6 = vol_weak_lose_diff.add(market["info"]["vol_up_weak_lose"] -
                                       market["info"]["vol_sell_weak_lose"])
        tmpv71 = market["info"]["vol_up_weak_win"] + market["info"][
            "vol_up_weak_lose"] + market["info"]["vol_up_strong_win"] + market[
                "info"]["vol_up_strong_lose"]
        tmpv72 = market["info"]["vol_sell_weak_win"] + market["info"][
            "vol_sell_weak_lose"] + market["info"][
                "vol_sell_strong_win"] + market["info"]["vol_sell_strong_lose"]
        tmpv7 = vol_index_diff.add(tmpv71 - tmpv72)
        tmpv8 = vol_avg_diff.add(market["info"]["vol_avg_diff"])
        tmpv9 = market["info"]["vol_diff"]
        tmpv = int(tmpv1 * tmpv2 > 0) * int(tmpv1 * tmpv3 > 0) * int(
            tmpv1 * tmpv6 > 0) * int(tmpv1 * tmpv7 > 0) * int(
                tmpv1 * tmpv8 > 0) * int(tmpv1 * tmpv4 > 0) * int(
                    tmpv1 * tmpv5 > 0)  #* int(tmpv1 * tmpv9 > 0)

        signar = tmpv1 * tmp * tmpv * int(tmpv1 * tmpw > 0)
        #        signar = random.randint(-1,1)
        if signar > 0:
            one_opt = "1"
        elif signar < 0:
            one_opt = "2"
        else:
            one_opt = "0"
#            if Order.orderProfit(Order.global_deal, one[5]) < -5:
#                one_opt = "3"

#        if tmp9 == 0:
#            one_opt = "3"

        if stop_direction == Order.OP_SELL:
            if one_opt == "2":
                one_opt = "3"
#            elif one_opt == "1":
            stop_direction = 0
        elif stop_direction == Order.OP_UP:
            if one_opt == "1":
                one_opt = "3"
#            elif one_opt == "2":
            stop_direction = 0

        order_info = sendOrder(one_opt, one[5], one[0] + " " + one[1], False,
                               "")
        i += 1
        if i % 1440 == 0:
            print i, one[0] + " " + one[1]
            if Order.isDealOpen():
                print Order.global_deal[
                    "direction"], " deal(", signar, "): ", Order.orderProfit(
                        Order.global_deal, crr_price)
            else:
                print "no deal(", signar, ")"
            Order.profitInfo()
            print "---------------------"


#            TrueOrder.profitInfo()
#            testPrint([Order.global_profit_sum])
    testPrint([Order.global_profit_sum])
    DataSrc.done()
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    order_info = sendOrder("3", crr_price, "last", True, "")
    if res:
        mkCsvFileWin("test_deals_info.csv", res)
    if res_real:
        mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"
Beispiel #6
0
def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside
    global global_true_order_direction, global_true_stop_direction, global_price_chg_min
    import Analyse
    import Analyse_pool_todo as Analyse_pool
    
    test_tmp = 0
    stop_direction = 0
    crr_direction = 0
    check_i = 0
    check_max = 600000
    smooth_market_indexs = [0,0,0,0,0,0]
    Analyse_pool.initAnaType("time")
    Analyse_pool.initPoolSize(18, "time")
    long_time_direction = 0
    while(1):
        if global_data_index >= len(global_test_data):
            break
        one = mkMiniLine()
        if not one:
            continue
            
        check_info = Order.checkTick(one[6], one[7], one[5])
        if check_info:
            stop_direction = global_give_opside * check_info['direction']
            global_error_index += check_info['profit']
        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        
        Analyse.addData(one[:])
        tmp = one[:]
        tmp[2] = one[9]
        tmp[3] = one[10]
        Analyse_pool.addData(tmp)
        res = Analyse.calcPool()
        res2 = Analyse_pool.calcPool()
        if res2:
            if res2[3] != 0:
                global_give_opside = -1
                long_time_direction = res2[3]
                stop_direction = long_time_direction
#                print res[3], res2[3]
        if res:
            crr_sig = Analyse.crrSigStatus()
#            sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
##            global_give_opside= 0
#            if crr_direction == crr_sig[0]:
#                global_give_opside=0
##                if crr_sig[1] > 0 and crr_sig[0] > 0:
#                if crr_sig[1] >= 15:
#                    global_give_opside = 1
##                elif crr_sig[1] > 8 and crr_sig[0] == -1:
##                    global_give_opside = 1
#            else:
#                sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
#                global_give_opside=0
                
#                stop_direction = global_give_opside * Order.global_deal['direction']
                    

#            if Order.isDealOpen() and (crr_sig[0] == 0 or crr_sig[0] == Order.global_deal["direction"]):
#                if Order.orderProfit(Order.global_deal, one[5])  < global_price_chg_min:
#                    check_i += 1
##                else:
##                    check_i -= 1
#                if abs(check_i) > check_max:
#                    print check_i
#                    check_i = 0
#                    global_give_opside = 1
#                    sendOrder("3", one[5], one[0] + " " + one[1], True, crr_sig)
#                    global_give_opside= 0
#                    stop_direction = global_give_opside * Order.global_deal['direction']
#                    global_true_order_direction = 1
            crr_direction = crr_sig[0]
                
            market_indexs = [res[1],res[2],res[5],res[6],res[7],res[8]]
            smooth_market_indexs = smoothIndex(market_indexs, smooth_market_indexs)

            opt = Analyse.addDeal(res)
            if opt:
                for one_opt in opt:
#                    one_opt = str(random.randint(1,2))
#                    print stop_direction
                    if stop_direction == Order.OP_SELL:
#                        print stop_direction, one_opt
                        if one_opt == "2":
                            one_opt = "3"
                        elif one_opt == "1":
                            stop_direction = 0
                    elif stop_direction == Order.OP_UP:
#                        print stop_direction, one_opt
                        if one_opt == "1":
                            one_opt = "3"
                        elif one_opt == "2":
                            stop_direction = 0
#                    print global_true_order_direction
                    order_info = sendOrder(one_opt, one[5], one[0] + " " + one[1], False, crr_sig)
#            print res
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    mkCsvFileWin("test_deals_info.csv", res)
    mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"
def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside
    global global_true_order_direction, global_true_stop_direction
    import Analyse_win_60 as Analyse

    test_tmp = 0
    stop_direction = 0
    crr_direction = 0
    smooth_market_indexs = [0, 0, 0, 0, 0, 0]
    while (1):
        if global_data_index >= len(global_test_data):
            break
        one = mkMiniLine()
        if not one:
            continue

        check_info = Order.checkTick(one[6], one[7], one[5])
        if check_info:
            stop_direction = global_give_opside * check_info['direction']
            global_error_index += check_info['profit']
#            testPrint(["stop", check_info["profit"]>0, one[0] + " " + one[1], one[5], 0, 0, 0, 0, 0, 0])
        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        #        if check_info_true:
        #            global_true_stop_direction = global_give_opside * check_info_true['direction']
        #            print global_true_stop_direction

        Analyse.addData(one)

        res = Analyse.calcPool()
        #        if res:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]+res[3]*10])
        #        else:
        #            testPrint([one[0] + " " + one[1], one[5], one[5]])

        if res:
            crr_sig = Analyse.crrSigStatus()
            testPrint(crr_sig)
            if crr_sig[0] != 0:
                #                print "sig: ", crr_sig, ", opside_flag: ", global_give_opside, "crr: ", crr_direction
                if crr_direction != 0:
                    if crr_sig[1] >= 3:
                        global_true_stop_direction = -crr_sig[0]
                        global_true_order_direction = -1
                    if crr_direction != crr_sig[0]:
                        global_true_stop_direction = crr_sig[0]
                        global_true_order_direction = 1
                crr_direction = crr_sig[0]

            market_indexs = [res[1], res[2], res[5], res[6], res[7], res[8]]
            smooth_market_indexs = smoothIndex(market_indexs,
                                               smooth_market_indexs)

            opt = Analyse.addDeal(res)
            if opt:
                for one_opt in opt:
                    #                    one_opt = str(random.randint(1,2))
                    #                    print stop_direction
                    if stop_direction == Order.OP_SELL:
                        #                        print stop_direction, one_opt
                        if one_opt == "2":
                            one_opt = "3"
                        elif one_opt == "1":
                            stop_direction = 0
                    elif stop_direction == Order.OP_UP:
                        #                        print stop_direction, one_opt
                        if one_opt == "1":
                            one_opt = "3"
                        elif one_opt == "2":
                            stop_direction = 0
#                    print global_true_order_direction
                    order_info = sendOrder(one_opt, one[5],
                                           one[0] + " " + one[1], False,
                                           crr_sig)


#            print res
#            testPrint(res)
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    mkCsvFileWin("test_deals_info.csv", res)
    mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"
def main():
    global test_result, global_test_data, global_data_index, global_error_index, global_give_opside, global_chg_per
    global global_true_order_direction, global_true_stop_direction
    global stop_win, stop_lose, stop_lose_true, stop_win_true
    import Analyse_price_walk as Analyse
    import DataSrc

    test_tmp = 0
    stop_direction = 0
    crr_direction = 0
    smooth_market_indexs = [0, 0, 0, 0, 0, 0]
    zero_max = 3
    Analyse.initPriceWalk(global_chg_per)
    if global_source_file.find("IF") > 0:
        DataSrc.init(global_source_file, "IF")
    else:
        DataSrc.init(global_source_file, "MT4")

    i = 0
    down_vol = up_vol = 0
    while (1):
        one = DataSrc.getLine()
        #        print "line: ", one
        if not one:
            break

        if one[3] > 0:
            up_vol += one[4]
        elif one[3] < 0:
            down_vol += one[4]
        print i, ", ", up_vol - down_vol
        check_info = Order.checkTick(one[6], one[7], one[5], 0)
        if check_info:
            zero_max = 3
            #            if check_info['profit']< 0:
            #                stop_direction = global_give_opside * check_info['direction']
            #                if check_info['direction'] == Order.OP_UP:
            #                    sendOrder("2", one[5], one[0] + " " + one[1], False, "")
            #                elif check_info['direction'] == Order.OP_SELL:
            #                    sendOrder("1", one[5], one[0] + " " + one[1], False, "")
            #            testPrint(["0", "0", "stop", check_info["profit"]>0, one[0] + " " + one[1], one[5], check_info["profit"], 0, 0])
            global_error_index += check_info['profit']
        check_info_true = TrueOrder.checkTick(one[6], one[7], one[5])
        #        if check_info_true:
        #            global_true_stop_direction = global_give_opside * check_info_true['direction']
        #            print global_true_stop_direction

        info = Analyse.addData(one[:])
        #        sendOrder("3", one[5], one[0] + " " + one[1], True, "")
        if info:
            if info["status"] == 9:
                #                print info["info"]
                #                print info["info"]["walk"], ", ", info['info']['all_per'], ", ", info['info']['walk_p'], ", ", info['info']['updown_per'], ", ",
                #                print info["info"]["updown_vol"], ", ", info["info"]["vol"], ", ", info["info"]["updown_vol"]*100.0 / info["info"]["vol"]
                #                print info["info"]["open"],info["info"]["close"],info["info"]["walk"]
                opt = Analyse.giveSig(info)
                abs_info_walk = abs(info["info"]["walk"])
                #                print abs_info_walk
                #            stop_lose = stop_lose_true = 5
                #            stop_win = stop_win_true = 8
                if opt:
                    for one_opt in opt:
                        order_info = sendOrder(one_opt, one[5],
                                               one[0] + " " + one[1], False,
                                               one_opt)
        i += 1


#        if i % 7200 == 0:
#            print i
#            Order.profitInfo()

    DataSrc.done()
    res = Order.profitInfo()
    res_real = TrueOrder.profitInfo()
    if res:
        mkCsvFileWin("test_deals_info.csv", res)
    if res_real:
        mkCsvFileWin("test_deals_info_real.csv", res_real)
    mkCsvFileWin("test_info.csv", test_result)
    print test_tmp
    print "done res file"