1.41K 浏览
0
from datetime import date
from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask, BacktestFinished, TqSim
import talib as ta
import pandas as pd
import datetime
 # 创建模拟账户
acc = TqSim()
# 进行回测的初始化
api = TqApi(account=acc, backtest=TqBacktest(start_dt=date(2022, 3, 1), end_dt=date(2022, 5, 21)),
            auth=TqAuth("***", "***"), web_gui=":9876")
 klines = api.get_kline_serial("DCE.p2206", 5*60, data_length=100)
# 创建 m1901 的目标持仓 task,该 task 负责调整 m1901 的仓位到指定的目标仓位
target_pos = TargetPosTask(api, "DCE.p2206")
 while True:
    # if api.is_changing(klines):
    ma_short = ta.MA(klines['close'], timeperiod=5)
    klines['ma_short'] = ma_short
    # klines['ma_short.board'] = "MA_short"
    ma_long = ta.MA(klines['close'], timeperiod=20)
    klines['ma_long'] = ma_long
    # klines['ma_long.board'] = "MA_long"
    klines['ma_long.color'] = "green"
    a = klines.set_index("datetime")
    a.index = pd.to_datetime(a.index/1000000000, unit='s')
    if ma_short.iloc[-1] > ma_long.iloc[-1]:
        if acc.get_position("DCE.p2206").pos_long != 500:
            # 设置目标持仓为多头5手
            target_pos.set_target_volume(500)
    elif ma_short.iloc[-1] < ma_long.iloc[-1]:
        # 设置目标持仓为空仓
        if acc.get_position("DCE.p2206").pos_short != 5:
            target_pos.set_target_volume(-500)
    api.wait_update()
李思恒 已回答的问题 2022年5月26日
0
from datetime import date
from tqsdk import TqApi, TqAuth, TqBacktest, TargetPosTask, BacktestFinished, TqSim
from tqsdk.tafunc import ma

import datetime
 # 创建模拟账户
acc = TqSim()
# 进行回测的初始化
api = TqApi(account=acc, backtest=TqBacktest(start_dt=date(2022, 3, 1), end_dt=date(2022, 5, 21)),
            auth=TqAuth("xxx", "xxx"), web_gui=True)
klines = api.get_kline_serial("DCE.p2206", 5*60, data_length=100)

while True:
# if api.is_changing(klines):
    ma_short = ma(klines['close'], 5)
    klines['ma_short'] = ma_short
    # klines['ma_short.board'] = "MA_short"
    ma_long = ma(klines['close'], 20)
    klines['ma_long'] = ma_long
    # klines['ma_long.board'] = "MA_long"
    klines['ma_long.color'] = "green"
    a = klines.set_index("datetime")
    api.wait_update()
李思恒 已回答的问题 2022年5月26日
您正在查看2个答案中的1个,单击此处查看所有答案。