You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求实现15m周期下单但4小时周期内仅执行一次的交易策略

15分钟信号触发+4小时周期单次订单限制实现方案

核心逻辑

解决同一4小时K线内多次触发15分钟信号的问题,核心是跟踪当前4小时周期的唯一标识,并记录该周期内是否已执行过订单。每次15分钟信号触发时,先验证这两个条件,仅当进入新的4小时周期且未执行过订单时,才允许下单操作。

代码实现(以Pine Script为例)

//@version=5
strategy("15m Signal with 4hr Single Order Cap", overlay=true, default_qty_type=strategy.cash, default_qty_value=1000)

// 识别当前周期
is_15m_timeframe = timeframe.period == "15"
new_4hr_bar = ta.barssince(timeframe.new("D", 0, 4)) == 0

// 存储当前4小时K线的唯一标识(用开盘时间)
var float current_active_4hr_bar = na
if new_4hr_bar
    current_active_4hr_bar := ta.time

// 记录上一次执行订单的4小时周期标识
var float last_order_4hr_bar = na

// 替换为你的实际交易信号逻辑
fast_ma = ta.sma(close, 10)
slow_ma = ta.sma(close, 20)
buy_signal = ta.crossover(fast_ma, slow_ma)
sell_signal = ta.crossunder(fast_ma, slow_ma)

// 订单执行控制
if is_15m_timeframe
    // 检查:当前4小时周期未执行过订单
    if current_active_4hr_bar != last_order_4hr_bar
        if buy_signal
            strategy.entry("Long", strategy.long)
            last_order_4hr_bar := current_active_4hr_bar // 标记该周期已执行
        if sell_signal
            strategy.entry("Short", strategy.short)
            last_order_4hr_bar := current_active_4hr_bar // 标记该周期已执行

关键细节说明

  • 周期标识跟踪:通过current_active_4hr_bar记录当前4小时K线的开盘时间,每当新的4小时K线启动时更新该值,确保周期判断的准确性。
  • 订单执行标记:last_order_4hr_bar存储最近一次下单所在的4小时周期标识,只要当前周期与该标识不同,就允许新的订单触发。
  • 信号隔离:仅在15分钟周期内检查交易信号,避免其他周期的干扰。

适配其他平台的注意事项

如果使用其他交易脚本语言(如MQ4/5、Python量化框架),核心逻辑保持不变:

  1. 实现4小时周期的切换检测,生成唯一周期ID。
  2. 维护一个全局变量记录上一次下单的周期ID。
  3. 信号触发时,对比当前周期ID与记录的ID,不一致才执行下单,并更新记录ID。

内容的提问来源于stack exchange,提问作者Brad P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:45:28