EMA策略需求:买入条件生效后保持直至做空条件触发
双EMA策略:维持买入状态至止损触发的实现
问题描述
你需要让买入条件触发后保持为真,只有当收盘价跌破止损EMA(maSmall)时才转为假,而非价格回到两个EMA之间就失效,以此控制EMA绘图颜色。
实现代码
//@version=5 indicator("双EMA止损策略", overlay=true) maSmall = ta.ema(low, 50) // 以low为数据源的50周期止损EMA maLarge = ta.ema(high, 50) // 以high为数据源的50周期EMA // 初始化持续买入状态,仅在脚本启动时赋值一次 var bool isInBuy = false // 更新状态逻辑:突破maLarge则进入买入状态,跌破maSmall则退出,否则维持当前状态 isInBuy := close > maLarge ? true : (close < maSmall ? false : isInBuy) // 绘制止损EMA,根据买入状态切换颜色 plot(maSmall, color=isInBuy ? color.green : color.red, title="止损EMA", linewidth=2)
关键说明
var关键字:确保isInBuy变量不会在每根K线重置,仅初始化一次,这是维持状态的核心- 状态更新规则:
- 当收盘价上穿maLarge时,
isInBuy设为true - 当收盘价下穿maSmall时,
isInBuy设为false - 价格处于两个EMA之间时,保持之前的状态不变
- 当收盘价上穿maLarge时,
- 绘图颜色直接绑定
isInBuy状态,满足你的需求
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

