
Strategi ini adalah strategi simpulan moving average crossover. Ia melakukan lebih banyak ketika melintasi EMA perlahan pada EMA cepat dan kosong ketika melintasi EMA perlahan di bawah EMA cepat. Strategi ini menggabungkan stop loss, stop loss dan stop loss bergerak untuk mengawal risiko dengan berkesan.
Strategi ini berdasarkan purata bergerak pantas dan perlahan. Garis pantas adalah EMA 9 hari, garis perlahan adalah EMA 21 hari. Apabila garis pantas melintasi garis perlahan dari bawah, lakukan lebih banyak. Apabila garis pantas melintasi garis perlahan dari atas, lakukan kosong.
Hentikan berdasarkan persentasyen tertentu untuk menutup, berhenti berdasarkan persentasyen tertentu untuk menutup. Hentikan bergerak berdasarkan persentasyen tertentu untuk menutup, apabila harga mencapai tahap itu, hentikan bergerak ke harga pembukaan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Penyelesaian:
Strategi ini boleh dioptimumkan dengan:
Strategi moving average crossover ini logiknya jelas dan mudah dilaksanakan secara keseluruhan, dan ia mengawal risiko dengan menggabungkan hentian, hentian dan hentian bergerak. Dengan menetapkan parameter yang munasabah dan melakukan penyesuaian optimum untuk pasaran yang berbeza, strategi ini dapat memperoleh kesan yang lebih baik.
/*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)