3.15K 浏览
0

日K模式,

下单的K在print中是12月4日0点, 这个可以理解,K线没有告诉我们这个K是从12月3日21点开始的.

但是后面的”模拟交易下单时间”和”模拟成交记录”时间都是12月2日18:00,能理解是上个K的结束时间,

但是这个不太好吧, 看起来别扭. 后面分析的时候会要单独处理,如果碰到隔了周六日的就麻烦.

能改成直接在显示为当前下单时的K时间吗

from tqsdk import TqApi,TqSim,TqBacktest,TargetPosTask,tafunc,BacktestFinished
import datetime as dt
 backtest = TqBacktest(start_dt=dt.date(2019, 12, 3), end_dt=dt.date(2019, 12, 4))
api = TqApi(TqSim(100000),backtest=backtest,web_gui=True)
 sym = "SHFE.rb2005"
klines = api.get_kline_serial(sym, 24*60*60)
target_pos = TargetPosTask(api, sym, price='ACTIVE', offset_priority='昨今开')
position = api.get_position(sym)
 try:
    while True:
        api.wait_update()
         if api.is_changing(klines.iloc[-1], "datetime"):        
            if position.pos == 0:
                k1 = klines.iloc[-1]
                print('>>>空  ', tafunc.time_to_datetime(k1.datetime), '  ', k1.close)
                api.insert_order(symbol=sym, direction="SELL", offset="OPEN", volume=1, limit_price=k1.close)        
 except BacktestFinished:  
    api.close()

west 已回答的问题 2020年1月6日
0

模拟交易的下单时间是由quote的datetime而来。当前回测时quote是在K线结束时由K线数据生成,其时间为某一K线结束时的时间。这个情况将在之后优化,在K线生成时也同时生成一次quote,以保证quote和K线时间一致

west 已回答的问题 2020年1月6日