VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 3
声望: 0

请问CTA策略运行起来后,是以哪个时间周期算的?tick?1分钟?还有,止盈和止损,在哪设置?还有交易算法用的是哪个?

Super Moderator
avatar
加入于:
帖子: 66
声望: 7

在VeighNa的CTA策略中,策略的运行时间周期取决于策略的具体实现方式。以下是相关细节:

1. 时间周期

CTA策略可以基于不同的时间周期运行,具体取决于策略的设计:

  • Tick数据:如果策略直接处理Tick数据,则会在每次收到新的Tick时触发on_tick回调函数。
  • 1分钟K线:默认情况下,策略会基于1分钟K线运行,通过BarGenerator将Tick数据合成1分钟K线,并在每次生成新的1分钟K线时触发on_bar回调函数。
  • 更长周期K线:如果需要基于更长周期的K线(如15分钟、1小时等),可以通过BarGenerator将1分钟K线进一步合成为更长周期的K线,并在相应的回调函数(如on_15min_bar)中处理。

2. 止盈和止损

止盈和止损通常在策略的逻辑中实现,具体位置取决于策略的设计。例如:

  • on_baron_15min_bar等回调函数中,根据当前价格与入场价格的差值,判断是否触发止盈或止损。
  • 可以使用self.long_stopself.short_stop等变量来跟踪止损价格,并在价格达到止损点时调用self.sellself.cover函数平仓。

3. 交易算法

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)

总结:

  • CTA策略的时间周期可以是Tick、1分钟K线或更长周期K线,具体取决于策略设计。
  • 止盈和止损通常在策略的回调函数中实现。
  • 交易算法包括限价单、停止单和移动止损等,具体实现由策略逻辑决定。
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】