请问CTA策略运行起来后,是以哪个时间周期算的?tick?1分钟?还有,止盈和止损,在哪设置?还有交易算法用的是哪个?
请问CTA策略运行起来后,是以哪个时间周期算的?tick?1分钟?还有,止盈和止损,在哪设置?还有交易算法用的是哪个?
在VeighNa的CTA策略中,策略的运行时间周期取决于策略的具体实现方式。以下是相关细节:
CTA策略可以基于不同的时间周期运行,具体取决于策略的设计:
on_tick
回调函数。BarGenerator
将Tick数据合成1分钟K线,并在每次生成新的1分钟K线时触发on_bar
回调函数。BarGenerator
将1分钟K线进一步合成为更长周期的K线,并在相应的回调函数(如on_15min_bar
)中处理。止盈和止损通常在策略的逻辑中实现,具体位置取决于策略的设计。例如:
on_bar
或on_15min_bar
等回调函数中,根据当前价格与入场价格的差值,判断是否触发止盈或止损。self.long_stop
或self.short_stop
等变量来跟踪止损价格,并在价格达到止损点时调用self.sell
或self.cover
函数平仓。CTA策略的交易算法由策略逻辑决定,常见的交易算法包括:
具体实现可以参考VeighNa的示例策略,如BollChannelStrategy
,其中包含了基于布林带通道和ATR指标的止损逻辑。
def on_15min_bar(self, bar: BarData):
# 计算止损价格
self.long_stop = self.intra_trade_high - self.atr_value * self.sl_multiplier
self.short_stop = self.intra_trade_low + self.atr_value * self.sl_multiplier
# 触发止损
if self.pos > 0 and bar.low_price <= self.long_stop:
self.sell(self.long_stop, abs(self.pos), True)
elif self.pos < 0 and bar.high_price >= self.short_stop:
self.cover(self.short_stop, abs(self.pos), True)
总结: