tqsdk实盘

This commit is contained in:
2025-07-10 15:07:31 +08:00
parent 4c243a4b47
commit 5de1a43b02
26 changed files with 12462 additions and 17535 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,6 @@
from datetime import date
from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask
import pandas as pd
from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask, TqKq, TqSim
'''
如果当前价格大于5分钟K线的MA15则开多仓
@@ -7,13 +8,26 @@ from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask
回测从 2018-05-01 到 2018-10-01
'''
# 在创建 api 实例时传入 TqBacktest 就会进入回测模式
api = TqApi(backtest=TqBacktest(start_dt=date(2018, 5, 1), end_dt=date(2018, 10, 1)), auth=TqAuth("emanresu", "dfgvfgdfgg"))
api = TqApi(auth=TqAuth("emanresu", "dfgvfgdfgg"))
# 获得 m1901 5分钟K线的引用
klines = api.get_kline_serial("DCE.m1901", 60 * 60, data_length=15)
klines = api.get_kline_serial("KQ.m@CZCE.MA", 60 * 60)
# 创建 m1901 的目标持仓 task该 task 负责调整 m1901 的仓位到指定的目标仓位
target_pos = TargetPosTask(api, "DCE.m1901")
target_pos = TargetPosTask(api, "KQ.m@CZCE.MA")
BEIJING_TZ = "Asia/Shanghai"
print('-----------------')
print(pd.to_datetime(klines.iloc[-1].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ))
print(pd.to_datetime(klines.iloc[-2].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ))
print(klines.iloc[-1])
print(klines.iloc[-2])
while True:
api.wait_update()
if api.is_changing(klines) and len(klines) > 2:
target_pos.set_target_volume(5)
if api.is_changing(klines.iloc[-1], 'datetime'):
print(f'---------{pd.to_datetime(klines.iloc[-1].datetime, unit="ns", utc=True).tz_convert(BEIJING_TZ)}--------')
print(klines.iloc[-1])
print(klines.iloc[-2])
# target_pos.set_target_volume(5)

View File

@@ -236,12 +236,12 @@ if __name__ == "__main__":
# 这种方式适合获取相对较短或中等长度的历史K线数据。
df_if_backtest_daily = collect_and_save_tqsdk_data_stream(
symbol="KQ.m@SHFE.rb",
symbol="KQ.m@CZCE.MA",
# symbol='SHFE.rb2510',
# symbol='KQ.i@SHFE.bu',
freq="min60",
start_date_str="2022-01-01",
end_date_str="2025-06-22",
end_date_str="2025-07-11",
mode="backtest", # 指定为回测模式
tq_user=TQ_USER_NAME,
tq_pwd=TQ_PASSWORD,