4.36K 浏览
0

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = ‘chengzhi’

from tqsdk import TqApi, TqAccount

”’
如果当前价格大于5分钟K线的MA20则开多仓
如果小于则平仓
”’
api = TqApi()
# 获得 m1909 10秒K线的引用
klines = api.get_kline_serial(“SHFE.rb2005”, 60*1)

# 判断开仓条件
while True:
api.wait_update()
if api.is_changing(klines):
ma = sum(klines.close.iloc[-20:])/20
print(“最新价”, klines.close.iloc[-1], “MA”, ma)
if klines.close.iloc[-1] > ma:
print(“最新价大于MA: 市价开仓”)
api.insert_order(symbol=”SHFE.rb2005″, direction=”BUY”, offset=”OPEN”, volume=5)
break
# 判断平仓条件
while True:
api.wait_update()
if api.is_changing(klines):
ma = sum(klines.close.iloc[-20:])/20
print(“最新价”, klines.close.iloc[-1], “MA”, ma)
if klines.close.iloc[-1] < ma:
print(“最新价小于MA: 市价平仓”)
api.insert_order(symbol=”SHFE.rb2005″, direction=”SELL”, offset=”CLOSE”, volume=5)
break
# 关闭api,释放相应资源
api.close()

这是终端上的实例,有没有办法,同时一个程序操作两个以上的标的。该怎么改

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

1 最简单的办法是直接将程序复制为N个文件, 手工修改每个文件中的参数值, 再把N个程序分别启动运行即可达到目的

2 单进程中多线程, 每个线程执行一个策略实例

3 TqSdk 内核支持以异步方式实现多任务. 如果用户策略代码实现为一个异步任务, 即可在单线程内执行多个策略

文档中有这几种方法的示例:https://doc.shinnytech.com/pysdk/latest/advanced/multi_strategy.html#

west 编辑答案 2020年1月2日
您正在查看2个答案中的1个,单击此处查看所有答案。