日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()
