LXLCEILING 2022-08-15 17:22 采纳率: 0%
浏览 179
已结题

使用Backtrader做期货跨品种套利回测的问题

使用Backtrader做期货跨品种套利回测时策略编写出现问题。

class SmaCross(bt.Strategy):
params = dict(
pfast=10,
pslow=30,
)
def init(self):
# 指定策略的参数
# 计算两条数据(data1,data2)close的差值
self.diff = (self.data1.close - self.data0.close)
# 计算差值的percentrank
self.pdiff = self.diff.Mathematics_score.rank(pct=True)
df['Percentile_rank'] =self.diff.Mathematics_score.rank(pct=True)
print(type((self.diff))
def next(self):
if not self.position:
if self.pdiff > 0.8:
# 买入assets1,卖出Assets2
self.buy(data0, size=1)
self.sell(data1, size=1)
else:
买入assets2, 卖出Assets1
self.buy(data1, size=1)
self.sell(data0, size=1)
else:
if self.pdiff > 0.8:
# 买入assets1,卖出Assets2
self.buy(data1, size=1)
self.sell(data0, size=1)
else:
买入assets2, 卖出Assets1
self.buy(data0, size=1)
self.sell(data1, size=1)

def next(self):
^

SyntaxError: invalid syntax

比如说HC.SHF&RB.SHF 这两个品种,我希望能够达到的效果是当HC-RB的差值的历史排位高于80%时,则买入RB,卖出HC。当差值的历史排位小于30%时,则买入HC,卖出RB。
代码中的ASSET0=RB.SHF ASSET1=HC.SHF

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 修改了问题 8月16日
  • 修改了问题 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用