이 전략의 핵심 아이디어는 ATR 지표에 의해 계산된 가격 변동 범위를 사용하여 가격 돌파구를 판단하고 EMA 지표를 사용하여 전체 트렌드 방향을 판단하여 거래 후 트렌드를 달성하는 것입니다. 가격이 ATR 범위의 상부 또는 하부 한계를 넘어서면 돌파구 방향이 EMA 방향과 일치하면 긴 또는 짧은 포지션을 취합니다. 폐쇄 조건은 가격이 다시 ATR 범위를 넘어서게하는 것입니다.
첫째, 이 전략은 ATR 지표를 사용하여 특정 기간 동안 가격 변동 범위를 계산합니다. ATR 범주의 상한은 SMA + ATR이며, 하한은 SMA-ATR입니다. 여기서 SMA는 하루 종료 가격의 간단한 이동 평균을 나타내며 ATR은 진정한 범위 평균을 나타냅니다.
가격이 ATR 범위의 상부 또는 하부 한계를 넘을 때 거래 기회가 발생합니다. 이 시점에서 방향을 판단해야합니다. 상향 돌파구라면 길게 이동하십시오. 하향 돌파구라면 짧게 이동하십시오. 돌파구 방향이 트렌드 방향과 일치하는지 확인하기 위해 전략은 전체 트렌드 방향을 결정하기 위해 EMA 지표를 사용합니다. 돌파구 방향이 EMA 방향과 일치 할 때만 위치를 잡을 수 있습니다.
마지막으로, 전략은 ATR 범위를 다시 뚫고가는 가격을 폐쇄 신호로 사용합니다. 긴 후에, 가격이 하위 한계 아래로 떨어지면 위치를 닫습니다. 짧은 후에, 가격이 상위 한계를 넘으면 위치를 닫습니다.
돌파구를 결정하기 위해 ATR 지표를 사용하면 가격 트렌드 돌파구를 효과적으로 파악 할 수 있습니다. ATR 범위는 변동성에 따라 설정되며 정상적인 변동에 너무 큰 간섭을 일으키지 않습니다.
EMA 지표를 방향 판단으로 추가하면 트렌드 방향에 반하는 거래를 피할 수 있습니다. 이는 수익률을 크게 향상시킬 수 있습니다.
ATR 범위를 넘는 가격 브레이크 백을 스톱 로스 방법으로 사용하면 위험 통제를 극대화 할 수 있습니다.
변동적인 시장에서 ATR 범위는 자주 침투될 수 있으며, 이는 과도한 무효 거래와 더 큰 손실로 쉽게 이어질 수 있습니다.
동향 방향을 판단하는 지표로서의 EMA는 약간의 지연을 가지고 있기 때문에 단기 가격 반전 기회를 놓칠 수 있습니다.
스톱 로즈 방식은 급격한 사건으로 인해 손해가 늘어날 수 있는 가격 범위를 넘어서게 하는 방식입니다.
동향 및 인하를 결정하기 위해 다른 지표를 결합하는 것을 고려하여 EMA 단일 판단 오류를 피하십시오. MACD, KDJ 등과 같이.
ATR 매개 변수를 실시간으로 시장 변동성에 따라 조정하여 ATR 범위가 실제 변동에 가깝도록 고려하십시오.
이동식 스톱 로스 방법을 적용하여 단일 손실의 위험 통제를 극대화하기 위해 스톱 로스 포인트를 지속적으로 조정하는 것을 고려하십시오.
이 전략의 전반적인 아이디어는 명확합니다. ATR 지표를 사용하여 가격 돌파구를 결정하고 EMA와 협력하여 방향을 결정하면 트렌드를 효과적으로 따라갈 수 있습니다. 스톱 로스 방법은 간단하고 작동하기가 쉽습니다. 그러나 동시에 추가 테스트와 조정이 필요한 특정 위험과 최적화 여지가 있습니다. 일반적으로이 전략은 높은 승률을 추구하는 트렌드 트레이더에게 적합합니다.
/*backtest start: 2024-01-23 00:00:00 end: 2024-02-22 00:00:00 period: 3h basePeriod: 15m 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/ // © cwagoner78 //@version=4 strategy("cATRpillar", overlay=true) //------------ //inputs lookback = input(title="Periods", type=input.integer, defval=37) atrMult = input(title="Range Multiplier", type=input.float, defval=.2) takeProfit = input(title="Take Profit", type=input.float, defval=5000) stopLoss = input(title="Stop Loss", type=input.float, defval=2500) lots = input(title="Lots to Trade", type=input.float, defval=1) //------------ //indicators atr=atr(lookback)*atrMult sma=sma(close, lookback) ema=ema(close,lookback*2) rangeLo=sma-atr rangeHi=sma+atr //------------ //draw objects p0 =plot(close, title="Close", color=#26A69A, linewidth=0, transp=80,style=plot.style_stepline) p1 =plot(rangeHi, title="High", color=color.fuchsia, linewidth=0, transp=80,style=plot.style_stepline) p2 =plot(rangeLo, title="Low", color=color.lime, linewidth=0, transp=80,style=plot.style_stepline) p3 =plot(ema, title="EMA", color=color.white, linewidth=0, transp=80, style=plot.style_stepline) fill(p1, p0, color=color.fuchsia) fill(p0, p2, color=color.lime) //------------ //Trading atrShort=open[1] > rangeHi and open < rangeLo atrLong=open[1] < rangeLo and open > rangeHi exitLong=open>rangeLo exitShort=open<rangeHi //Long longCondition=atrLong and open>ema+atr strategy.entry(id="cATRpillar-Buy", long=true, when=longCondition) longCloseCondition=exitLong strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=longCloseCondition) //Short shortCondition=atrShort and open<ema-atr strategy.entry(id="cATRpillar-Sell", long=false, when=shortCondition) shortCloseCondition=exitShort strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=shortCloseCondition) plotshape(shortCondition, title= "Short", location=location.belowbar, color=color.fuchsia, transp=80, style=shape.triangledown, size=size.tiny) plotshape(longCondition, title= "Long", location=location.abovebar, color=color.lime, transp=80, style=shape.triangleup, size=size.tiny) //------------