
이 전략은 EMA 34의 동력 교차를 입문 신호로 하는 트렌드 추적 전략이다. EMA 34의 동력 선의 가격 파괴 신호와 EMA 34의 평선 선의 금 교차를 결합하여 거래 신호를 생성한다.
이 전략은 먼저 close, high, low의 34주기 EMA 평균선을 계산하고, 각각 emaClose, emaHigh, emaLow로 명명한다. 그리고는 가격이 emaHigh와 emaLow을 뚫고 넘어간다면 구매 및 판매 신호를 발생시킨다.
구체적으로, 클로즈 가격이 emaHigh을 초과할 때, 구매 신호가 발생하고, 클로즈 가격이 emaLow을 초과할 때, 판매 신호가 발생한다. 일단 신호가 발생하면, 그 당시 클로즈 가격으로 진입하고, 스톱포드를 100점, 스톱로드를 50점으로 설정한다.
이 전략은 EMA 34의 역동적인 지표를 사용하여 시장의 추세를 포착하고 트렌드 추적을 수행합니다.
이 전략의 가장 큰 장점은 동선의 황금 교차 신호와 가격의 돌파 신호를 동시에 결합하여 진입 시점을 더 정확하게 만들고 가짜 신호를 효과적으로 필터링 할 수 있다는 것입니다. 또한, EMA는 트렌드 추적 도구로서 전략이 시장의 흐름을 적시에 포착하여 트렌드 추적 거래를 할 수 있도록 도와줍니다.
이 전략의 주요 위험은 여러 차례의 연쇄 손실을 초래할 수 있다는 것입니다. 시장에서 짧은 조정 충격이 발생 한 후 다시 새로운 상승 추세를 시작할 때 이 전략은 포지션 손실을 자주 줄일 수 있습니다. 또한, 트렌드 추적 전략으로, 이는 시장을 정리하는 데서 이익을 얻을 수 없습니다.
전략의 승률을 높이기 위해 스톱로드를 적절히 조정하거나 다른 지표를 추가하여 최적화 할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
다른 지표 필터링을 추가하여, 예를 들어 거래량 지표를 추가하여 가짜 돌파구에 걸리지 않도록하십시오.
EMA 주기 파라미터를 최적화하고, 이 품종에 더 적합한 주기 파라미터로 조정한다.
단순한 스톱 스톱 손실이 아닌, 이득과 손실을 비교하는 이러한 출구 메커니즘을 적용하면 전략의 안정성을 높일 수 있다.
유동성 필터를 추가하여 거래 유동성이 떨어지는 시기를 피하면 슬라이드 포인트 손실을 줄일 수 있습니다.
이 전략은 EMA 동력 지표에 기반한 트렌드 추적 전략으로서 높은 실용성을 갖는다. 그것은 가격 돌파 신호와 EMA의 골드 크로스 신호를 결합하여 새로운 트렌드 방향을 효과적으로 발견할 수 있다. 특정 파라미터와 탈퇴 메커니즘을 최적화 한 후 전략의 안정성을 더욱 강화할 수 있다.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA 34 Crossover Strategy_4", overlay=true)
length = 34
exitPoints = 50
emaClose = ta.ema(close, length)
emaHigh = ta.ema(high, length)
emaLow = ta.ema(low, length)
var float[] entryPrices = array.new_float()
var float[] exitLevels = array.new_float()
// Long entry condition: Price crosses above EMA 34 high
enterLong = ta.crossover(close, emaHigh)
// Short entry condition: Price crosses below EMA 34 low
enterShort = ta.crossunder(close, emaLow)
// Exit condition for both long and short trades
exitLong = array.size(entryPrices) > 0 ? close >= array.get(entryPrices, array.size(entryPrices) - 1) + exitPoints : false
exitShort = array.size(entryPrices) > 0 ? close <= array.get(entryPrices, array.size(entryPrices) - 1) - exitPoints : false
if (enterLong)
array.push(entryPrices, close)
array.push(exitLevels, close + exitPoints)
strategy.entry("Buy", strategy.long)
if (enterShort)
array.push(entryPrices, close)
array.push(exitLevels, close - exitPoints)
strategy.entry("Sell", strategy.short)
if (exitLong)
strategy.close("Buy")
if (exitShort)
strategy.close("Sell")
plot(emaClose, color=color.blue, title="EMA 34 Close")
plot(emaHigh, color=color.red, title="EMA 34 High")
plot(emaLow, color=color.green, title="EMA 34 Low")