
이 전략은 사용자가 선택한 EMA와 정의한 비율 채널에 기반한다. 가격이 상반도를 넘어서면 전략이 더 많이 하고, 가격이 하반도를 넘어서면 전략이 빈다. 가격이 트렌드 트레이딩을 시작하고 채널을 뚫면 손실을 막기 위해 모든 포지션을 평형한다.
트렌딩 시장의 경우, EMA 퍼센티지 채널과 부린띠 트렌딩 트레이딩 전략의 보조를 사용하는 것이 좋습니다.
200주기의 EMA를 기준 EMA로 계산한다.
사용자 설정된 비율을 기준으로 계산합니다. EMA * (1 + %) EMA * (1 - 퍼센트)
20주기의 브린 띠를 계산하고, 통로 범위를 묘사한다.
종결 가격이 아래로 올라서 부린을 부수면 더 많이 하고, 종결 가격이 위로 내려서 부린을 부수면 더 많이 한다.
ATR을 사용하여 스톱로스를 계산하여 너무 큰 손실을 피하십시오.
만약 가격이 설정된 퍼센티지 통로 범위를 넘어간다면, 모든 포지션을 청산하여 더 이상의 손실을 방지한다.
EMA를 기준으로 사용하면 트렌드 전환점을 더 잘 잡을 수 있습니다.
비율 채널은 합리적인 거래 범위를 설정하고 너무 자주 거래하는 것을 피합니다.
브린 벨트는 경기 시기를 판단하는 데 도움을 주는 보조 저항을 제공한다.
ATR trailing stopdynamically를 사용하여 단편 거래의 위험을 효과적으로 제어합니다.
통로를 넘어서면 모두 청산하여 손실을 빠르게 조절할 수 있다.
사용자 정의 가능한 매개 변수 설정은 유연하며, 다른 시장에 맞게 조정할 수 있다.
만약 퍼센티지 채널의 범위가 너무 넓다면, 트렌드를 놓치거나 손실을 막기 위해 너무 늦을 수 있다.
만약 그 비율이 너무 좁다면 거래가 너무 빈번하게 이루어지고 거래비용이 증가할 수 있다.
부린밴드 파라미터를 잘못 설정하면 놓친 거래 기회도 발생할 수 있다.
너무 느슨하게 설정된 정지점은 단일 손실이 너무 커질 수 있다.
최적의 거래 범위를 찾기 위해 적절한 최적화 매개 변수가 필요합니다.
다양한 EMA 주기 변수를 테스트하여 가장 적합한 평균선 주기 를 찾습니다.
% 통로 파라미터를 최적화하여 최적의 통로 범위를 찾습니다.
브린 벨트 주기 파라미터를 조정하여 변동을 포착하는 효과를 최적화한다.
ATR 주기와 배수를 조정하여 손해 중지 전략을 더욱 최적화하십시오.
위쪽을 더 많이 하거나 아래쪽을 공허하게 하는 조건만 테스트하면 성공률을 높일 수 있다.
트렌드 지표와 함께 조기 평준화가 필요한지 판단한다.
이 전략은 평균선, 통로, 변동율과 같은 여러 지표의 장점을 종합적으로 활용하여 비교적 안정적인 간격 거래 전략을 구현한다. 중요한 것은 특정 시장에 가장 적합한 다양한 파라미터 설정을 찾아서 위험과 수익의 균형을 달성하는 것이다. 향후 파라미터와 전략 규칙을 계속 최적화하거나 트렌드 거래 전략 조합과 함께 사용할 수 있다.
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="[mdeacey] EMA% Channel + BB Range Strategy", shorttitle="[mdeacey] EMA% Channel + BB Range Strategy", overlay=true)
//EMA 200
len = input(title="EMA Length", type=input.integer, defval=200)
srce = input(title="EMA Source", type=input.source, defval=close)
ema1= ema(srce,len)
percent = input(title="Channel Percentage (%)", type=input.float, defval= 1)
valuee = (percent*ema1)/100
upperbande = ema1 + valuee
lowerbande = ema1 - valuee
plot(ema1, title='EMA200', color=color.gray, linewidth=1, style=plot.style_line )
plot(upperbande, title='EMA Upper Band', color=color.gray, linewidth=1, style=plot.style_line )
plot(lowerbande, title='EMA Lower Band', color=color.gray, linewidth=1, style=plot.style_line )
length = input(20, minval=2)
src = input(close, title="Close price")
mult = input(2.0, minval=0.001, maxval=50)
MA2 = sma(src, length)
dev = mult * stdev(src, length)
upper = MA2 + dev
lower = MA2 - dev
signalColor = crossunder(close, upper) ? color.red : crossover(close, lower) ? color.green : color.white
barcolor(color=signalColor)
upperBand = plot(upper, color=color.gray, linewidth=1)
lowerBand = plot(lower, color=color.gray, linewidth=1)
fill(upperBand, lowerBand,color=color.gray)
strategy.entry("Long",true,when = crossover(close,lower) and close <upperbande and close>lowerbande)
strategy.close("Long",when = crossunder(close,lowerbande))
strategy.entry("Short",false,when = crossunder(close,upper) and close <upperbande and close>lowerbande)
strategy.close("Short",when = crossover(close,upperbande))
//Inputs
atrPeriod = input(defval=14, title="ATR Period",group='ATR Settings', type=input.integer) // Adjust this to change the ATR calculation length
multiplierPeriod = input(defval=1.75, title="ATR Multiplier Period",group='ATR Settings', type=input.float)// Adjust this to change the distance between your candles and the line
//ATR Calculation
pine_rma(x, y) =>
alpha = y
sum = 0.0
sum := (x + (alpha - 1) * nz(sum[1])) / alpha
true_range() =>
max(high - low, max(abs(high - close[1]), abs(low - close[1])))
//Long SL
plot(low - pine_rma(true_range() * multiplierPeriod, atrPeriod), "Long Stop", color=color.red, offset = 1)
// Short SL
plot(high +pine_rma(true_range() * multiplierPeriod, atrPeriod), "Short Stop", color=color.red, offset = 1)
strategy.exit("Exit Long","Long",limit=upper ,stop = low - pine_rma(true_range() * multiplierPeriod, atrPeriod) )
strategy.exit("eExit Short","Short",limit=lower ,stop =high +pine_rma(true_range() * multiplierPeriod, atrPeriod) )