
이 전략은 이중 EMA 평균선의 황금포크, 죽은포크 형성 신호를 사용하며, ATR 지표와 함께 시장 변동률을 판단하여, 낮은 가격과 높은 가격의 추세를 달성하기 위해 전략을 따른다. 빠른 선의 황금포크 느린 선과 ATR 지표가 전날보다 낮으면 다단 신호로 간주되며, 빠른 선의 죽은포크 느린 선과 ATR 지표가 전날보다 높으면 공백 신호로 간주됩니다.
길이가 20과 55인 이중 EMA 평균선을 사용한다. 빠른 선에서 느린 선을 통과하면 황금 포크가 생기고, 다단계 신호로 간주된다. 빠른 선 아래의 느린 선을 통과하면 죽은 포크가 생기고, 공백 신호로 간주된다.
길이 14의 ATR 지표를 사용한다. ATR 지표는 시장의 변동률과 위험 정도를 반영한다. ATR이 전날보다 낮으면 시장의 변동이 약화되어 더 많은 개입이 적합하다는 것을 나타냅니다. ATR이 전날보다 높으면 시장의 변동이 증가하여 더 많은 개입이 적합하다는 것을 나타냅니다.
빠른 선 금포 느린 선과 ATR이 전날보다 낮을 때만 더 많이 한다. 빠른 선 죽은 포 느린 선과 ATR이 전날보다 높을 때만 공백한다. 시장의 변동이 큰 경우 쉽게 개입하는 것을 피한다.
ATR 지표는 또한 스톱로스 및 스톱로스를 설정하는 데 사용됩니다. 스톱로스는 현재 가격에 ATR 곱하기 스톱로스 배수를 빼고; 스톱로스는 현재 가격에 ATR 곱하기 스톱로스 배수를 더합니다.
3배의 ATR을 기본으로 설정하고, 3배의 ATR을 기본으로 설정합니다. 이것은 시장의 변동에 동적으로 대응할 수 있습니다.
이중평선 시스템을 사용하면, 공백 상태 판단에 강력한 확인을 제공할 수 있다. 시장에서 흔히 볼 수 있는 가짜 돌파구에 착각하는 것을 피한다.
ATR 지표의 도입으로, 전략은 낮은 변동에만 개입할 수 있게 되었고, 많은 가짜 신호를 필터링하여 시스템 위험을 줄일 수 있게 되었다.
ATR 다이내믹 스톱 스톱은 스톱 스톱을 시장의 변동 수준에 따라 설정할 수 있다. 스톱 스톱이 너무 가깝거나 스톱 스톱이 너무 은 것을 피한다.
추가적인 탈퇴 메커니즘으로 평행선 교차를 사용할 수 있습니다. 시스템의 손실 결과를 더 최적화 할 수 있습니다.
ATR에 따라 동적인 중지 및 중지 수준을 설정할 수 있으며, 트렌드 거래 논리에 더 적합하며, 중지 손실이 너무 민감하지 않으며, 중지 중지도 너무 느슨하지 않습니다.
쌍평선 시스템은 신호가 다소 지연되어 있다고 판단한다. 강한 단기 트렌드를 놓칠 수 있다.
높은 변동이 있을 때, ATR이 상승하여 개입 시기를 놓칠 수 있다. ATR 파라미터를 적절히 조정해야 한다.
장기간 포지션을 보유할 때, 정지점은 너무 가깝게 될 수 있으며, 트렌드 강도를 적절히 완화시켜야 한다.
평선 시스템은 구부러진 디스크 전체 장면을 판단하는 효과가 좋지 않다. 다른 지표와 함께 확인해야 한다.
ATR 매개 변수는 다른 품종의 다른 주기에 따라 조정되어야 한다. 매개 변수를 잘못 선택하면 시스템 손실에 영향을 줄 수 있다.
다양한 길이 변수들의 평균선 조합을 테스트하여 그 품종의 추세 특성에 더 잘 맞는 평균선 변수를 찾습니다.
MACD, KD 등의 다른 지표가 도입될 수 있으며, 평평선 교차 신호를 확인하여 Entscheidungssicherheit를 향상시킨다.
ATR 매개 변수를 추적하여 그 품종의 변동 평형 특성에 더 적합하도록 최적화 할 수 있습니다.
ATR 배수 인자를 조정 가능한 변수로 설정할 수 있으며, 트렌드 강도에 따라 스톱 로즈 위치를 동적으로 조정한다.
트렌드 강도 지표와 결합하여, 트렌드가 강하지 않을 때 손실을 줄이고, 트렌드가 강할 때 중지 요구 사항을 증가시킬 수 있습니다.
이 전략은 이중 EMA 평균선의 추세 판단과 ATR 변동률 지표의 위험 제어를 통합하여 더 완전한 추세 추적 시스템을 형성한다. 전략 최적화의 핵심은 평균선과 ATR 파라미터를 품종 특성에 더 적합하게 조정하고, 동적 스톱 손실 메커니즘을 설계하여 추세 강도의 변화를 따라한다. 파라미터 최적화와 논리 최적화를 통해 이 전략은 우수한 추세 추적 전략이 될 수 있다.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// **********************************************
// PtahX EMA/ATR Strategy Public Release
// EMA Strategy with ATR & "Fear Factor" built in
// written by PtahX October 2019
// * modifications welcome
// * please let me know if you improve it so I can continue to learn :)
// * use at your own risk - I'm a new programmer and still learning
// * Best of luck on your trades!!
// Take Profit (TP) option based on ATR or MA Crossover
//***********************************************
strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2)
//*****************************
// Global Inputs
//*****************************
fastMA = input(title="Fast Moving Average", defval=20, step=1)
slowMA = input(title="Slow Moving Average", defval=55, step=1)
source = input(close, title="Source")
atrLength = input(title="ATR Length", defval=14, minval=7, step=1)
slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2)
tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2)
maPlot = input(true, title="Plot EMA?")
maCrossoverExit = input(false, title="Exit with Slow MA Crossover?")
atrExit = input(true, title="Exit with ATR?")
//***********************************
// ATR
//***********************************
atr = atr(atrLength)
//***********************************
// Volatility Filter
//**********************************
// During uptrends the ATR indicator tends to post lower volatility.
// During downtrends, the ATR indicator tends to post higher volatility
volatilityBullish = atr < atr[1]
volatilityBearish = atr > atr[1]
//***********************************
// Moving Averages
//***********************************
// Double Line Plot Code (used for Entries & Exits not plotted by default)
fast = ema(source, fastMA)
slow = ema(source, slowMA)
maLong = crossover(fast, slow)
maShort = crossunder(fast, slow)
// Single Line Plot Code
bullish = slow > slow[1]
bearish = slow < slow[1]
barColor = bullish ? color.green : bearish ? color.red : color.blue
//*****************************
// Entries
//*****************************
entryLong = maLong and volatilityBullish
entryShort = maShort and volatilityBearish
if entryLong
sLoss = source - atr * slMultiplier
strategy.entry("Long", strategy.long, qty=10)
strategy.exit("Long Exit", "Long", stop=sLoss)
if entryShort
sLoss = source + atr * slMultiplier
tProfit = close > slowMA
strategy.entry("Short", strategy.short, qty=10)
strategy.exit("Short Exit", "Short", stop=sLoss)
//*****************************
// Exits
//*****************************
exitLong = 0
exitShort = 0
if maCrossoverExit
exitLong = maShort
exitShort = maLong
strategy.exit("Long Exit", "Long", when = exitLong)
strategy.exit("Short Exit", "Short", when = exitShort)
if atrExit
exitLong = source + atr * tpMultiplier
exitShort = source - atr * tpMultiplier
strategy.exit("Long Exit", "Long", limit = exitLong)
strategy.exit("Short Exit", "Short", limit = exitShort)
//******************************
// ATR Based Exit/ Stop Plotting
//******************************
// Stop Loss Calculations
longStopLoss = source - atr(atrLength) * slMultiplier
shortStopLoss = source + atr(atrLength) * slMultiplier
longTakeProfit = source - atr(atrLength) * slMultiplier
shortTakeProfit = source + atr(atrLength) * slMultiplier
//*********************************
//Chart Plotting
//*********************************
//ATR Based Stop Losses
plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss")
plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss")
// Single Slow EMA Option
plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)