
Strategi ini adalah strategi pengaliran beradaptasi tinggi yang menggabungkan garis rata-rata (EMA), kawasan permintaan dan jumlah transaksi. Ia mengenal pasti trend pasaran melalui pengesahan silang pelbagai petunjuk teknikal, dan berdagang di sekitar kawasan permintaan utama.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Khususnya, apabila EMA 9 kitaran meningkat 3 kitaran berturut-turut, EMA 15 kitaran juga meningkat, dan harga berada di atas kawasan permintaan, dan garis purata jumlah dagangan 20 kitaran lebih besar daripada garis purata jumlah dagangan 50 kitaran, sistem akan mengeluarkan sinyal melakukan lebih banyak. Logik isyarat kosong adalah sebaliknya.
Langkah kawalan risiko:
Ini adalah sistem perdagangan lengkap yang menggabungkan beberapa alat analisis teknikal untuk meningkatkan kebolehpercayaan perdagangan melalui mekanisme pengesahan berganda. Keunggulan strategi adalah kemampuan beradaptasi dan pengurusan risiko, tetapi juga perlu memperhatikan perbezaan prestasi dalam keadaan pasaran yang berbeza.
/*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")