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

Pine Script如何设置K线向上突破HMA49指定tick数的入场条件

Pine Script 交易策略修正方案

原有代码问题汇总

第一次代码问题

  • crossover(hma49, 4 * syminfo.mintick)逻辑完全错误:crossover函数是判断第一个参数序列是否向上穿越第二个参数序列,此处写反了穿越对象,变成判断HMA49指标上穿固定的4个tick数值,和你需要的「K线向上突破HMA49+4tick」需求完全不符
  • 未配置任何下单执行函数,就算条件正确也不会产生交易信号

第二次代码问题

  • 同时判断crossover(close,tickPrice)和crossover(close,hma49)逻辑冲突:tickPrice本身比HMA49高指定tick数,价格不可能在同一根K线同时向上穿越两个存在价差的阈值,两个条件永远无法同时满足
  • 末尾直接将CL(回溯N根K线的收盘价数值)作为布尔判断条件,属于无效逻辑,Pine Script中非0数值会被判定为永远成立,完全没有实现你要的回溯校验需求
  • 缺失Pine Script版本声明、策略基础配置,也没有下单执行函数,无法直接运行

可直接运行的完整代码

//@version=4
strategy("15MinChart400", overlay=true, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=100000)

// 指标计算
hma23 = hma(close, 23)
hma49 = hma(close, 49)
hma16 = hma(close, 16)
hma200 = hma(close, 200)
hma400 = hma(close, 400)

// 可调整参数
cross_ticks = input(4, title="突破HMA49的最小tick数")
lookback_period = input(4, title="突破前校验的回溯K线数")

// 突破阈值计算
breakout_price = hma49 + cross_ticks * syminfo.mintick

// 入场条件:1. 回溯周期内K线都在HMA49下方 2. 当前收盘价向上突破阈值
long_condition = crossover(close, breakout_price) and lowest(close, lookback_period) < hma49

// 出场条件:收盘价跌回HMA49下方
exit_long_condition = close <= hma49

// 下单执行
if (long_condition)
    strategy.entry("多单入场", strategy.long)
if (exit_long_condition)
    strategy.close("多单入场")

// 可选:绘制HMA49和突破阈值线方便可视化校验
plot(hma49, color=color.blue, title="HMA49")
plot(breakout_price, color=color.orange, title="突破阈值线", style=plot.style_dashed)

逻辑说明

  • 参数可直接在策略设置面板调整,回测优化时可以直接把cross_ticks和lookback_period加入优化参数列表
  • 入场先校验回溯周期内K线都在HMA49下方,避免假突破的无效信号,只有当收盘价确实向上穿了HMA49加指定tick的阈值才会触发多单
  • 内置了指标线绘制,你可以直接在K线图上看到HMA49和对应的突破阈值,方便排查信号是否符合预期

内容的提问来源于stack exchange,提问作者Paul Cas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:21:01