
Strategi ini ialah sistem perdagangan komprehensif yang menggabungkan pelbagai penunjuk teknikal Ia terutamanya menggunakan purata bergerak (MA), indeks kekuatan relatif (RSI) dan indeks arah purata (ADX) untuk mengenal pasti arah aliran dan momentum pasaran. penunjuk digunakan untuk menetapkan kedudukan stop loss dan ambil untung secara dinamik. Sistem ini menggunakan kaedah analisis berbilang tempoh untuk mengesahkan isyarat dagangan melalui persilangan penunjuk dalam tempoh masa yang berbeza, yang bukan sahaja memastikan ketepatan urus niaga tetapi juga mengawal risiko dengan berkesan.
Strategi ini menggunakan mekanisme pengesahan tiga lapisan untuk mengesahkan isyarat dagangan:
Pada masa yang sama, strategi menggunakan sistem henti rugi dan ambil untung dinamik berdasarkan ATR:
Strategi ini membina sistem perdagangan yang agak lengkap melalui sinergi pelbagai petunjuk teknikal. Kelebihan teras strategi terletak pada mekanisme pengesahan berbilang lapisan dan sistem pengurusan risiko yang dinamik, tetapi perhatian juga harus diberikan kepada kebolehsuaiannya dalam persekitaran pasaran yang berbeza. Melalui pengoptimuman dan penambahbaikan berterusan, strategi ini dijangka mencapai pulangan yang stabil dalam urus niaga sebenar.
/*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")