def sim_ema_trend_follow(cls, stdata, ac): print('sim length:' + str(stdata.dt[0]) + str(stdata.dt[-1])) for i in range(len(stdata.prediction) - 1): dd = Strategy.ema_trend_follow(stdata, i, ac) if dd.side != '': ac.entry_order(dd.side, dd.price, dd.size, dd.type, dd.expire, i, stdata.dt[i], stdata.ut[i], stdata.price[i]) ac.move_to_next(i, stdata.dt[i], stdata.ut[i], stdata.price[i]) ac.last_day_operation(len(stdata.prediction) - 1, stdata.dt[len(stdata.prediction) - 1], stdata.ut[len(stdata.prediction) - 1], stdata.price[len(stdata.prediction) - 1]) return ac
def sim_ema_tftc_switch(cls, stdata, ac, pl_sma_term): print('sim length:' + str(stdata.dt[0]) + str(stdata.dt[-1])) tf_ac = SimAccount() tc_ac = SimAccount() tf_pl_sma = [] tc_pl_sma = [] tf_pl_sum = 0 tc_pl_sum = 0 sim_min_count = 60 switch_flg = 0 # 0:tf, 1:tc for i in range(len(stdata.prediction) - 1): # sim for tf dd = Strategy.ema_trend_follow(stdata, i, tf_ac) if dd.side != '': tf_ac.entry_order(dd.side, dd.price, dd.size, dd.type, dd.expire, i, stdata.dt[i], stdata.ut[i], stdata.price[i]) tf_ac.move_to_next(i, stdata.dt[i], stdata.ut[i], stdata.price[i]) # sim for tc dd = Strategy.ema_trend_contrarian(stdata, i, tc_ac) if dd.side != '': tc_ac.entry_order(dd.side, dd.price, dd.size, dd.type, dd.expire, i, stdata.dt[i], stdata.ut[i], stdata.price[i]) tc_ac.move_to_next(i, stdata.dt[i], stdata.ut[i], stdata.price[i]) return ac