
Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan beberapa indikator teknis. Strategi ini terutama menggunakan moving average (MA), relative strength index (RSI) dan average directional index (ADX) untuk mengidentifikasi tren dan momentum pasar. Advanced True Range (ATR) Indikator digunakan untuk menetapkan posisi stop loss dan take profit secara dinamis. Sistem ini mengadopsi metode analisis multi-periode untuk mengonfirmasi sinyal perdagangan melalui persilangan indikator dalam periode waktu berbeda, yang tidak hanya memastikan keakuratan transaksi tetapi juga mengendalikan risiko secara efektif.
Strategi ini menggunakan mekanisme verifikasi tiga lapis untuk mengonfirmasi sinyal perdagangan:
Pada saat yang sama, strategi ini menggunakan sistem stop loss dan take profit dinamis berdasarkan ATR:
Strategi ini membangun sistem perdagangan yang relatif lengkap melalui sinergi beberapa indikator teknis. Keuntungan inti dari strategi ini terletak pada mekanisme verifikasi berlapis-lapis dan sistem manajemen risiko yang dinamis, tetapi perhatian juga harus diberikan pada kemampuan beradaptasinya di berbagai lingkungan pasar. Melalui pengoptimalan dan perbaikan berkelanjutan, strategi ini diharapkan dapat mencapai hasil yang stabil dalam transaksi aktual.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=6
strategy("Daily Trading Strategy", overlay=true)
// --- Indikator ---
// Kombinasi MA untuk trend
fastMA = ta.sma(close, 20)
slowMA = ta.sma(close, 50)
// RSI untuk momentum
rsi = ta.rsi(close, 14)
// --- Fungsi untuk menghitung ADX ---
adx(length) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, length)
plus = fixnan(100 * ta.rma(plusDM, length) / trur)
minus = fixnan(100 * ta.rma(minusDM, length) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length)
// ADX untuk kekuatan trend
adxValue = adx(14)
// --- Kondisi Entry Long ---
longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25
// --- Kondisi Entry Short ---
shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25
// --- Stop Loss dan Take Profit ---
// Fungsi untuk menghitung stop loss dan take profit
getSLTP(entryPrice, isLong) =>
atr = ta.atr(14)
sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2
tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4
[sl, tp]
// Hitung SL dan TP untuk posisi Long
[longSL, longTP] = getSLTP(close, true)
// Hitung SL dan TP untuk posisi Short
[shortSL, shortTP] = getSLTP(close, false)
// --- Eksekusi Order ---
if (longEntry)
strategy.entry("Long", strategy.long, stop=longSL, limit=longTP)
if (shortEntry)
strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP)
// --- Plot Indikator ---
// MA
plot(fastMA, color=color.blue)
plot(slowMA, color=color.red)
// RSI
plot(rsi, color=color.orange)
hline(50, color=color.gray)
// ADX
plot(adxValue, color=color.purple)
hline(25, color=color.gray)
// --- Alert ---
alertcondition(longEntry, title="Long Entry", message="Long Entry")
alertcondition(shortEntry, title="Short Entry", message="Short Entry")