장기 단 3차 EMA 골든 크로스 거래 전략

저자:차오장, 날짜: 2023-09-26 16:23:53
태그:

전반적인 설명

이 전략은 각 EMA의 강점을 활용하고 더 나은 거래 성과를 달성하기 위해 서로 다른 기간의 세 EMA 라인의 황금 십자가와 죽음의 십자가를 기반으로 거래 신호를 생성합니다.

전략 논리

이 전략은 8, 50 및 200의 기간을 가진 세 개의 EMA 라인을 계산하고, 더 빠른 EMA가 느린 EMA를 넘거나 밑을 넘을 때 신호를 생성합니다. 논리는 다음과 같습니다.

  1. 8주기, 50주기 및 200주기 EMA 라인을 계산합니다.

  2. 8주기 EMA가 50주기 EMA를 넘어서면 긴 포지션 (골든 크로스), 50주기 EMA가 8주기 EMA를 넘어서면 긴 포지션 (데스 크로스)

  3. 선택적으로 가격이 200주기 EMA를 넘을 때만 롱으로 가세요.

  4. 선택적으로 수익을 취하는 EMA 라인은 가격이 이 라인을 넘을 때 포지션을 닫을 수 있습니다.

빠른 EMA는 바닥을 식별하고, 중간 EMA는 트렌드를 결정하고, 느린 EMA는 소음을 필터합니다.

장점

  1. 트리플 EMA는 트렌드를 효과적으로 결정하고 개별 강점을 활용합니다. 8 기간 EMA는 짧은 바닥을 잡습니다. 50 기간 EMA는 중장기 트렌드를 결정하고 200 기간 EMA는 소음을 필터합니다.

  2. 200주기 EMA를 훨씬 넘어서면 비프사를 피할 수 있습니다.

  3. 맞춤형 수익률 EMA는 합리적인 수익 목표를 설정합니다.

  4. 바 색상과 EMA 그래핑과 같은 시각적 커스터마이징은 유연성을 향상시킵니다.

  5. 단순한 황금/죽음 십자 논리는 이해하기 쉽습니다.

위험 및 완화

  1. EMA 지연은 출입 시기를 놓칠 수 있습니다. EMA 기간을 단축하거나 MACD와 같은 지표와 결합하십시오.

  2. 윙사브는 나쁜 신호를 생성할 수 있습니다. 더 긴 EMA를 사용하여 필터링하거나 조건을 추가합니다.

  3. 고정 수익 목표가 적응적이지 않습니다. ATR 등을 기반으로 동적 출구를 사용합니다.

  4. 정지하지 않는 것은 무제한의 위험을 의미합니다.

더 나은 기회

  1. 가장 좋은 매개 변수를 위해 EMA 기간을 최적화하십시오.

  2. MACD와 같은 지표를 추가합니다.

  3. 변동성에 기반한 동적 수익을 구현합니다.

  4. 스톱 로스 로직, 트레일링 또는 고정값을 추가합니다.

  5. 입구 조건, 예를 들어 부피 필터를 개선합니다.

결론

이 전략은 높은 확률의 움직임을 식별하기 위해 EMA의 트렌드 필터링을 활용합니다. 출구 최적화, 지표 및 필터를 추가하면 성능을 향상시킬 수 있습니다. 전반적으로 EMA 기반 트렌드 추적에 간단하고 실용적입니다.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)

// EMA 8/50/200 Cross TEST



// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))


// Calculation
bullish_cross = if bool_Long_EMA200 == true
    crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else 
    bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)

// Strategy
if bullish_cross
    strategy.entry("long", strategy.long)

strategy.close("long", when = bearish_cross )

// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)

// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")

//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')

더 많은