이 전략은 서로 다른 기간의 이동 평균을 계산하고, 자동화 거래를 구현하기 위해 스톱 로스 및 취리 포인트를 설정합니다. 짧은 기간 이동 평균이 긴 기간 이동 평균을 넘어서면 긴 기간 이동 평균을 넘어서면 짧은 기간 이동 평균이 긴 기간 이동 평균을 넘어서면 짧습니다. 한편, 위험을 제어하기 위해 스톱 로스 및 취리 포인트를 설정합니다.
이 전략은 이동 평균 크로스오버 원리에 기반합니다. 9일 및 55일 간 간단한 이동 평균을 동시에 계산합니다. 9일 MA가 55일 MA보다 높을 때, 단기 트렌드가 상향으로 반전되었다는 신호를 제공합니다. 9일 MA가 55일 MA보다 낮을 때, 단기 트렌드가 하향으로 반전되었다는 신호를 제공합니다.
한편, 이 전략은 ATR 지표를 이용하여 스톱 로스 및 테이크 로프트 포인트를 설정한다. ATR 지표는 시장에서의 가격 변동의 정도를 측정할 수 있다. 스톱 로스 포인트는 ATR 값을 빼고 클로즈 가격에 설정되어 있어 시장 변동성에 따라 합리적인 스톱 로스를 설정할 수 있다. 테이크 로프트 포인트는 리스크-어워드 비율을 사용하며, 여기서 2로 설정되어 있다 - 테이크 로프트 = 클로즈 가격 + 2 * ATR 값.
이것은 매우 간단하고 실용적인 단기 거래 전략이며 다음과 같은 장점이 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험은 매개 변수를 최적화하고 엄격한 스톱 로스 및 합리적인 포지션 사이즈를 통해 줄일 수 있습니다.
이 전략은 더 이상 최적화 될 수 있습니다.
이 전략의 전반적인 논리는 명확하고 구현하기 쉽고, 특히 초보자가 마스터하기에 적합합니다. 기본적인 단기 거래 전략으로서, 간단한 운영과 쉬운 최적화의 장점이 있습니다. COMPLETE 또는 다른 프레임워크와 결합하면 실용적인 양적 거래 시스템으로 더욱 향상 될 수 있습니다.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover Strategy with Stop-Loss and Take-Profit", overlay=true) // Input for selecting the length of the moving averages maShortLength = input(9, title="Short MA Length") maLongLength = input(55, title="Long MA Length") // Input for setting the risk-reward ratio riskRewardRatio = input(2, title="Risk-Reward Ratio") // Calculate moving averages maShort = ta.sma(close, maShortLength) maLong = ta.sma(close, maLongLength) // Buy condition: 9-period MA crosses above 55-period MA buyCondition = ta.crossover(maShort, maLong) // Sell condition: 9-period MA crosses below 55-period MA sellCondition = ta.crossunder(maShort, maLong) // Set stop-loss and take-profit levels atrValue = ta.atr(14) stopLossLevel = close - atrValue // Use ATR for stop-loss (adjust as needed) takeProfitLevel = close + riskRewardRatio * atrValue // Risk-reward ratio of 1:2 // Execute buy and sell orders with stop-loss and take-profit strategy.entry("Buy", strategy.long, when = buyCondition) strategy.exit("Sell", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel) // Plot moving averages on the chart plot(maShort, color=color.blue, title="Short MA") plot(maLong, color=color.red, title="Long MA")