この戦略は,異なる期間の移動平均を計算し,自動取引を実装するためにストップ・ロストとテイク・プロフィートポイントを設定する. 短い期間の移動平均が長い期間の移動平均を上回るとロングになり,短い期間の移動平均が長い期間の移動平均を下回るとショートになります. 一方,リスクを制御するためにストップ・ロストとテイク・プロフィートポイントを設定します.
この戦略は,移動平均のクロスオーバー原理に基づいています. 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")