この戦略は単純な移動平均クロスオーバー戦略である.速いEMAが遅いEMAを超えると長くなって,速いEMAが遅いEMAを下回ると短くなります.この戦略は,リスクを効果的に制御するためにストップ・ロスト,テイク・プロフィート,ブレイク・イブンを含む.
この戦略は,速い線と遅い移動平均線をベースにしている.速い線は9日間のEMAで,遅い線は21日間のEMAである.速い線が下の方からスローラインを越えると長い.速い線が上の方からスローラインを越えると短い.出口は逆の交差によって引き起こされる.
ストップ・ロスは閉じる割合に基づいて設定される. 利益を取ることは閉じる割合に基づいて設定される. 価格がブレイク・イブンレベルに達するとブレイク・イブンストップ・ロスはエントリー価格に移動する.
この戦略の利点は次のとおりです.
いくつかのリスクがあります:
解決策:
戦略を最適化するには
一般的に,この移動平均クロスオーバーゴールド戦略は明確な論理を持ち,実行が簡単です.ストップ損失,利益とブレイクイブンの場合,リスクは制御されます.異なる市場のための適切なパラメータチューニングと最適化により,良いパフォーマンスを達成できます.しかし,ウィップソーやパラメータ最適化の困難のリスクは注意する必要があります.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("XAUUSD Strategy with SL, TP, and BE", shorttitle="EA", overlay=true) // Define strategy parameters fastLength = input(9, title="Fast EMA Length") slowLength = input(21, title="Slow EMA Length") stopLossPercent = input(1, title="Stop Loss (%)", minval=0, maxval=5) / 100 takeProfitPercent = input(2, title="Take Profit (%)", minval=0, maxval=5) / 100 breakEvenPercent = input(1, title="Break Even (%)", minval=0, maxval=5) / 100 // Calculate EMAs fastEMA = ema(close, fastLength) slowEMA = ema(close, slowLength) // Plot EMAs on the chart plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.red, title="Slow EMA") // Strategy logic enterLong = crossover(fastEMA, slowEMA) exitLong = crossunder(fastEMA, slowEMA) enterShort = crossunder(fastEMA, slowEMA) exitShort = crossover(fastEMA, slowEMA) // Calculate stop loss, take profit, and break-even levels longStopLoss = close * (1 - stopLossPercent) longTakeProfit = close * (1 + takeProfitPercent) shortStopLoss = close * (1 + stopLossPercent) shortTakeProfit = close * (1 - takeProfitPercent) longBreakEven = close * (1 + breakEvenPercent) shortBreakEven = close * (1 - breakEvenPercent) // Execute strategy with stop loss, take profit, and break-even strategy.entry("Long", strategy.long, when = enterLong) strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", profit = longTakeProfit, loss = longStopLoss) strategy.entry("Short", strategy.short, when = enterShort) strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", profit = shortTakeProfit, loss = shortStopLoss) // Move stop loss to break even when price reaches break-even level strategy.exit("Break Even Long", from_entry="Long", loss = longBreakEven) strategy.exit("Break Even Short", from_entry="Short", loss = shortBreakEven)