이 전략의 목적은 20주기 기하급수적 이동 평균 (EMA) 과 20주기 단순 이동 평균 (SMA) 사이의 교차점을 관찰하여 잠재적 인 트렌드 반전 지점을 식별하는 것입니다. 교차 방향에 따라 길게 또는 짧게 가기로 결정합니다.
이 전략은 ta 라이브러리에서 크로스오버와 크로스온더 함수를 사용하여 이동 평균 크로스오버를 감지합니다.
이 전략은 유동 평균의 추세 다음 능력과 크로스오버 이벤트의 신호 생성 기능을 결합하고 다음과 같은 장점을 가지고 있습니다.
이 전략은 또한 다음과 같은 위험을 가지고 있습니다.
해결책:
이 전략은 또한 다음과 같은 측면에서도 개선될 수 있습니다.
이 전략은 상대적으로 간단하고 실용적이며, 이동 평균 크로스오버 이론을 통해 잠재적 인 트렌드 역전 지점을 식별합니다. 그러나 전략이 더 견고하고 신뢰할 수 있고 자동화되도록 추가 지표, 동적 매개 변수, 스톱 손실, 알고리즘 거래 등을 통해 개선 할 여지가 있습니다. 요약하면 양적 거래에 시작하는 좋은 템플릿을 제공합니다.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true) // Define the length of the moving averages emaLength = 20 smaLength = 20 // Calculate moving averages emaValue = ta.ema(close, emaLength) smaValue = ta.sma(close, smaLength) // Buy condition buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue // Short sell condition sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue // Exit conditions for both Buy and Short sell exitBuyCondition = ta.crossunder(emaValue, smaValue) exitSellCondition = ta.crossover(emaValue, smaValue) // Strategy logic if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) if (exitBuyCondition) strategy.close("Buy") if (exitSellCondition) strategy.close("Sell") // Plot the moving averages plot(emaValue, color=color.blue, title="20 EMA") plot(smaValue, color=color.red, title="20 SMA")