
Strategi ini adalah strategi arbitrage beradaptasi tinggi yang menggabungkan garis rata-rata (EMA), area penawaran dan volume transaksi. Strategi ini mengidentifikasi tren pasar melalui konfirmasi silang dari beberapa indikator teknis, dan melakukan perdagangan di sekitar area penawaran dan permintaan yang penting. Strategi ini menggunakan stop loss dan profit target yang dinamis untuk menyesuaikan diri dengan volatilitas pasar melalui indikator ATR.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Secara khusus, ketika 9 siklus EMA naik 3 siklus berturut-turut, 15 siklus EMA juga mengalami tren naik, dan harga berada di atas daerah permintaan, sementara 20 siklus volume rata-rata perdagangan lebih besar dari 50 siklus volume rata-rata perdagangan, sistem akan mengirim sinyal untuk melakukan lebih banyak. Logika sinyal kosong adalah sebaliknya.
Tindakan pengendalian risiko:
Ini adalah sistem perdagangan lengkap yang menggabungkan beberapa alat analisis teknis untuk meningkatkan keandalan perdagangan melalui mekanisme konfirmasi ganda. Keunggulan strategi adalah kemampuan beradaptasi dan manajemen risiko, tetapi juga perlu memperhatikan perbedaan kinerja dalam berbagai lingkungan pasar.
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Scalping Strategy with EMA & Supply/Demand Zones", overlay=true)
// Inputs
ema9_length = input(9, title="EMA 9 Length")
ema15_length = input(15, title="EMA 15 Length")
higher_tf = input.timeframe("15", title="Higher Timeframe for Zones")
atr_mult = input(1.5, title="ATR Multiplier for Stop Loss")
risk_reward = input.float(1.2, title="Risk-Reward Ratio", options=[1.2, 1.3, 1.4])
// Calculating EMAs
ema9 = ta.ema(close, ema9_length)
ema15 = ta.ema(close, ema15_length)
// Function to detect supply & demand zones
get_zone(tf) =>
high_tf_high = request.security(syminfo.tickerid, tf, ta.highest(high, 50))
high_tf_low = request.security(syminfo.tickerid, tf, ta.lowest(low, 50))
[high_tf_high, high_tf_low]
[supply_zone, demand_zone] = get_zone(higher_tf)
// ATR-based Stop Loss and Take Profit
atr = ta.atr(14)
long_sl = close - (atr * atr_mult)
long_tp = close + (atr * atr_mult * risk_reward)
short_sl = close + (atr * atr_mult)
short_tp = close - (atr * atr_mult * risk_reward)
// Entry conditions with volume and trend confirmation
longCondition = ta.rising(ema9, 3) and ta.rising(ema15, 3) and close > demand_zone and ta.sma(volume, 20) > ta.sma(volume, 50)
shortCondition = ta.falling(ema9, 3) and ta.falling(ema15, 3) and close < supply_zone and ta.sma(volume, 20) > ta.sma(volume, 50)
// Exit conditions using ATR-based SL/TP with additional trend confirmation
exitLong = (close >= long_tp or close <= long_sl) and ta.falling(ema9, 2)
exitShort = (close <= short_tp or close >= short_sl) and ta.rising(ema9, 2)
// Executing trades with improved risk management
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=long_sl, limit=long_tp)
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=short_sl, limit=short_tp)
// Plotting
plot(ema9, color=color.blue, title="EMA 9")
plot(ema15, color=color.red, title="EMA 15")
plot(supply_zone, color=color.orange, title="Supply Zone")
plot(demand_zone, color=color.green, title="Demand Zone")