
Strategi ini adalah strategi kombinasi multi-indikator yang didasarkan pada indikator William ((%R), indikator tren rata-rata bergerak ((MACD) dan indeks rata-rata bergerak ((EMA)). Dengan menilai keadaan pasar yang terlalu terjual, menggabungkan perubahan tren indikator momentum dan dukungan rata-rata, untuk membangun sistem perdagangan yang mengikuti tren yang lengkap. Strategi ini tidak hanya mencakup pembuatan sinyal masuk, tetapi juga merancang mekanisme manajemen risiko yang sempurna.
Strategi ini didasarkan pada kolaborasi antara tiga indikator utama:
Strategi ini hanya akan membuka posisi jika memenuhi ketiga kondisi di atas secara bersamaan. Selain itu, strategi ini juga menginkorporasikan mekanisme stop loss yang didasarkan pada rasio risiko / keuntungan untuk mengendalikan risiko setiap perdagangan dengan menetapkan persentase stop loss dan rasio risiko / keuntungan yang tetap.
Strategi ini dibangun melalui kerjasama kolaboratif dari beberapa indikator teknis untuk membangun sistem perdagangan pelacakan tren yang lebih baik. Karakteristik utama dari strategi ini adalah keandalan sinyal yang tinggi, kontrol risiko yang jelas, tetapi juga ada beberapa masalah keterbelakangan dan sensitivitas parameter. Dengan arah optimasi yang disarankan, strategi ini masih memiliki ruang untuk peningkatan lebih lanjut.
/*backtest
start: 2025-02-19 00:00:00
end: 2025-02-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Williams %R & MACD Swing Strategy", overlay=true)
// INPUTS
length_wpr = input(14, title="Williams %R Length")
overbought = input(-20, title="Overbought Level")
oversold = input(-80, title="Oversold Level")
// MACD Inputs
fastLength = input(12, title="MACD Fast Length")
slowLength = input(26, title="MACD Slow Length")
signalSmoothing = input(9, title="MACD Signal Smoothing")
// EMA for Trend Confirmation
ema_length = input(55, title="EMA Length")
ema55 = ta.ema(close, ema_length)
// INDICATORS
wpr = ta.wpr(length_wpr)
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// LONG ENTRY CONDITIONS
longCondition = ta.crossover(wpr, oversold) and ta.crossover(macdLine, signalLine) and close > ema55
if longCondition
strategy.entry("Long", strategy.long)
// SHORT ENTRY CONDITIONS
shortCondition = ta.crossunder(wpr, overbought) and ta.crossunder(macdLine, signalLine) and close < ema55
if shortCondition
strategy.entry("Short", strategy.short)
// RISK MANAGEMENT
riskRewardRatio = input(1.5, title="Risk-Reward Ratio")
stopLossPerc = input(2, title="Stop Loss %") / 100
takeProfitPerc = stopLossPerc * riskRewardRatio
longSL = strategy.position_avg_price * (1 - stopLossPerc)
longTP = strategy.position_avg_price * (1 + takeProfitPerc)
shortSL = strategy.position_avg_price * (1 + stopLossPerc)
shortTP = strategy.position_avg_price * (1 - takeProfitPerc)
strategy.exit("Take Profit / Stop Loss", from_entry="Long", loss=longSL, profit=longTP)
strategy.exit("Take Profit / Stop Loss", from_entry="Short", loss=shortSL, profit=shortTP)