Strategies KB.ZH
Strategies

自适应均值通道突破交易策略基于EMA和ATR的动态波动区间交易系统-Adaptive-Mean-Channel-Breakout-Trading-Strategy-Dynamic-Volatility-Range-Trading-System-Based-on-EMA-and-ATR

ChaoZhang · PineScript · Breakout · 2025-02-10 14:50:45

All strategies →

No English write-up in the source (no author description).

Read the Chinese version →

Source code (48 lines)
/*backtest
start: 2022-02-11 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rolguergf34585

//@version=5
strategy("Grupo ROG - Cash Bands", overlay=true)

PeriodoATR = input.int(defval=14,title="Período ATR")
PeriodoMedia = input.int(defval=10,title="Período Média Móvel")
PeriodoFiltro = input.int(defval=30,title="Período Média Filtro")
Mult = input.float(defval=0.5,title="Multiplicador",step=0.1)
Casas_Decimais = input.int(defval=5,title="Casas Decimais")

ema = ta.ema(close,PeriodoMedia)
filtro = ta.ema(close,PeriodoFiltro)
atr = ta.atr(PeriodoATR)

upper = math.round(ema+atr*Mult,Casas_Decimais) 
basis = ema
lower = math.round(ema-atr*Mult,Casas_Decimais) 

tendencia = lower>filtro?1:upper<filtro?-1:0

plot(upper,color=color.red)
plot(lower,color=color.green)
//plot(filtro,color=color.white)

barcolor(tendencia==1?color.green:tendencia==-1?color.red:color.white)

longCondition = true//tendencia==1 //and close < lower[1]
shortCondition = true//tendencia==-1 //and close > upper[1]

// if (strategy.position_size>0)
//     strategy.exit("Long", limit=upper[0])
// if (strategy.position_size<0)
//     strategy.exit("Short", limit=lower[0])

if (longCondition)
    strategy.entry("Long", strategy.long, limit=lower[0])
if (shortCondition)
    strategy.entry("Short", strategy.short, limit=upper[0])