【发布时间】:2022-10-31 09:59:27
【问题描述】:
我开始研究“回测”,在测试过程中遇到了一个难以理解的情况。
class MyCandlesStrat(Strategy):
def init(self):
super().init()
self.signal1 = self.I(SIGNAL)
def next(self):
super().next()
if self.signal1==1:
self.buy()
elif self.signal1==-1:
self.sell()
上面是策略测试代码,但是我不知道怎么表示信号=0,是不是关闭了订单?
UPD:信号列包含信号。在上面的代码中,只有交易被打开而不被关闭。
0
0
0
1
1
1
1
1
0
-1
-1
-1
-1
-1
-1
0
0
0
1
1
1
1
在网上稍微挖掘之后,我添加了代码 MyCandlesStrat 类(策略): 定义初始化(自我): 超级().init() self.signal1 = self.I(信号)
def next(self):
super().next()
if self.signal1 ==1:
self.position.close()
self.buy()
elif self.signal1 ==-1:
self.position.close()
self.sell()
else:
self.signal1 == 0
self.position.close()
但这仍然不是我想要的。此代码关闭处理相同的信号并且不
我想了解如何实现“买入并持有,直到信号相同” 或者 “信号相同时卖出并持有” ??
【问题讨论】:
-
您的查询不够清楚。如果信号来自某个地方,并且有值为 0 的信号,那么另一个
elif语句不起作用,elif self.signal==0`? -
更新我的问题
标签: python python-3.x pandas back-testing