Strategi Perdagangan Pelbagai Penunjuk Adaptif Vishal

MACD SAR ST EMA ATR TF
Tarikh penciptaan: 2025-03-28 17:17:56 Akhirnya diubah suai: 2025-03-28 17:17:56
Salin: 0 Bilangan klik: 407
2
fokus pada
319
Pengikut

Strategi Perdagangan Pelbagai Penunjuk Adaptif Vishal Strategi Perdagangan Pelbagai Penunjuk Adaptif Vishal

Gambaran keseluruhan

Strategi ini adalah kaedah perdagangan kuantitatif yang komprehensif untuk mengenal pasti trend pasaran dan isyarat perdagangan dengan mengintegrasikan beberapa petunjuk teknikal (MACD, Supertrend dan Parabolic SAR). Strategi ini bertujuan untuk menyediakan kerangka keputusan perdagangan yang fleksibel dan ketat yang dapat disesuaikan dengan keadaan pasaran yang berbeza.

Prinsip Strategi

Prinsip strategi ini berdasarkan kepada gabungan dinamik tiga petunjuk teknikal utama:

  1. Indeks MACD: menilai pergerakan harga dan arah trend
  2. Penunjuk Supertrend: menilai trend dominan pasaran (berbentuk lebih banyak atau lebih kosong)
  3. Parabolic SAR: memberi isyarat masuk dan keluar yang tepat

Strategi membuat keputusan perdagangan dengan logik berikut:

  • Syarat kemasukan untuk pelaburan lama:
    • Garis MACD lebih tinggi daripada garis isyarat
    • Supertrend berwarna hijau (berbentuk pelbagai)
    • Harga penutupan melebihi Parabolic SAR
  • Syarat kemasukan:
    • Garis MACD lebih rendah daripada garis isyarat
    • Supertrend berwarna merah (tanpa tajuk)
    • Harga penutupan lebih rendah daripada Parabolic SAR

Kelebihan Strategik

  1. Pengesahan komprehensif pelbagai indikator: mengurangkan risiko isyarat palsu
  2. Trigger isyarat yang fleksibel: tidak memerlukan urutan isyarat yang ketat
  3. Strategi perdagangan penuh: memaksimumkan potensi keuntungan setiap dagangan
  4. Logik dagangan simetri: berprestasi sama dalam pasaran berbilang dan kosong
  5. Mekanisme keluar yang dinamik: mengelakkan keluar awal dengan mengesahkan dua garis K berturut-turut

Risiko Strategik

  1. Risiko ketinggalan indikator: Indeks teknikal berdasarkan data sejarah, mungkin terdapat kelewatan
  2. Risiko perdagangan penuh: Stop loss yang tidak ditetapkan boleh menyebabkan turun naik dana yang lebih besar
  3. Risiko turun naik pasaran: keadaan pasaran yang rumit mungkin mempengaruhi prestasi strategi
  4. Sensitiviti parameter: Pilihan parameter penunjuk mempengaruhi kesan strategi secara langsung

Arah pengoptimuman strategi

  1. Memperkenalkan pengurusan kedudukan dinamik: menyesuaikan saiz kedudukan mengikut turun naik pasaran
  2. Peningkatan kawalan kerugian: mengurangkan kerugian maksimum dalam satu transaksi
  3. Optimumkan parameter penunjuk: cari kombinasi parameter terbaik melalui pengukuran semula
  4. Memperkenalkan syarat penapisan tambahan: seperti jumlah dagangan, indikator kadar turun naik
  5. Menambah pengesahan pelbagai kerangka masa: meningkatkan kebolehpercayaan isyarat

ringkaskan

Vishal Adaptive Multi Indicator Trading Strategy adalah kaedah perdagangan kuantitatif yang inovatif yang menyediakan kerangka keputusan perdagangan yang komprehensif dan fleksibel melalui sinergi MACD, Supertrend, dan Parabolic SAR. Walaupun terdapat risiko tertentu, verifikasi dan logik perdagangan simetri multiindicator memberikan model perdagangan yang layak untuk dipelajari oleh pelabur.

Kod sumber strategi
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-27 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Vishal Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// **MACD Inputs & Calculation**
fast_length  = input.int(13, title="MACD Fast Length")
slow_length  = input.int(27, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Smoothing")

fast_ma  = ta.ema(close, fast_length)
slow_ma  = ta.ema(close, slow_length)
macd     = fast_ma - slow_ma
signal   = ta.ema(macd, signal_length)
hist     = macd - signal

// **Supertrend Inputs & Calculation**
atrPeriod = input.int(11,    "ATR Length", minval = 1)
factor    = input.float(3.0, "Factor",     minval = 0.01, step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bullTrend  = direction < 0   // Uptrend Condition
bearTrend  = direction > 0   // Downtrend Condition

// **Parabolic SAR Inputs & Calculation**
sarStep = input.float(0.02, "Parabolic SAR Step")
sarMax  = input.float(0.2, "Parabolic SAR Max")
sar = ta.sar(sarStep, sarStep, sarMax)

// **Trade Entry Conditions**
macdBullish = macd > signal // MACD in Bullish Mode
macdBearish = macd < signal // MACD in Bearish Mode
priceAboveSAR = close > sar // Price above SAR (Bullish)
priceBelowSAR = close < sar // Price below SAR (Bearish)

// **Boolean Flags to Track Conditions Being Met**
var bool macdConditionMet = false
var bool sarConditionMet = false
var bool trendConditionMet = false

// **Track if Each Condition is Met in Any Order**
if (macdBullish)
    macdConditionMet := true
if (macdBearish)
    macdConditionMet := false

if (priceAboveSAR)
    sarConditionMet := true
if (priceBelowSAR)
    sarConditionMet := false

if (bullTrend)
    trendConditionMet := true
if (bearTrend)
    trendConditionMet := false

// **Final Long Entry Signal (Triggers When All Three Flags Are True)**
longSignal = macdConditionMet and sarConditionMet and trendConditionMet

// **Final Short Entry Signal (Triggers When All Three Flags Are False)**
shortSignal = not macdConditionMet and not sarConditionMet and not trendConditionMet

// **Execute Full Equity Trades**
if (longSignal)
    strategy.entry("Long", strategy.long)

if (shortSignal)
    strategy.entry("Short", strategy.short)

// **Exit Logic - Requires 2 Consecutive Candle Closes Below/Above SAR**
var int belowSARCount = 0
var int aboveSARCount = 0

if (strategy.position_size > 0)  // Long position is active
    belowSARCount := close < sar ? belowSARCount + 1 : 0
    if (belowSARCount >= 1)
        strategy.close("Long")

if (strategy.position_size < 0)  // Short position is active
    aboveSARCount := close > sar ? aboveSARCount + 1 : 0
    if (aboveSARCount >= 1)
        strategy.close("Short")

// **Plot Indicators**
plot(supertrend, title="Supertrend", color=bullTrend ? color.green : color.red, linewidth=2, style=plot.style_linebr)
plot(sar, title="Parabolic SAR", color=color.blue, style=plot.style_cross, linewidth=2)
plot(macd, title="MACD Line", color=color.blue, linewidth=2)
plot(signal, title="MACD Signal", color=color.orange, linewidth=2)
plot(hist, title="MACD Histogram", style=plot.style_columns, color=hist >= 0 ? color.green : color.red)