Strategi silang SMMA dan SMA yang dinamik

Penulis:ChaoZhang, Tarikh: 2024-02-02 11:38:08
Tag:

img

Ringkasan

Strategi ini menggunakan isyarat persilangan antara purata bergerak halus (SMMA) 50 tempoh dan purata bergerak mudah (SMA) 20 tempoh untuk menentukan kemasukan dan keluar. Ia menghasilkan isyarat beli apabila garis SMA pantas melintasi di atas garis SMMA perlahan, dan isyarat jual apabila SMA melintasi di bawah SMMA. Pada masa yang sama, strategi menetapkan semula tahap keuntungan tetap dan stop loss dinamik untuk mengunci keuntungan dan mengawal risiko.

Logika Strategi

  1. Mengira dan merangka SMMA 50 tempoh dan SMA 20 tempoh.
  2. Apabila SMA melintasi di atas SMMA dari bawah, isyarat beli dihasilkan. Sebaliknya, apabila SMA melintasi di bawah SMMA dari atas, isyarat jual dihasilkan.
  3. Pada kejadian isyarat beli dan jual, tetapkan kedudukan Buy dan Sell masing-masing.
  4. Tetapkan tahap mengambil keuntungan tetap sebanyak 150 tik untuk setiap kedudukan.
  5. Tetapkan paras stop loss dinamik pada harga penutupan bar seterusnya selepas bar isyarat.
  6. Jika harga mencapai tahap mengambil keuntungan, mengambil keuntungan berlaku.

Kelebihan

  1. Strategi purata bergerak berganda mudah dikendalikan dengan prinsip mudah dan mudah difahami.
  2. SMMA adalah peningkatan berbanding SMA untuk menangkap trend dengan lebih baik.
  3. Menggabungkan SMA dan SMMA dari tempoh yang berbeza membantu menapis bunyi bising sambil menangkap trend.
  4. Menggunakan stop loss dinamik boleh menyesuaikan tahap stop berdasarkan perubahan pasaran untuk mengawal risiko dengan berkesan.
  5. Tahap mengambil keuntungan yang telah ditetapkan membantu mengunci keuntungan dengan tepat pada masanya.

Risiko

  1. Strategi purata bergerak berganda cenderung menghasilkan isyarat palsu dan disapu. penapisan isyarat boleh digunakan untuk mengelakkan perdagangan berlebihan.
  2. Keuntungan tetap boleh terlepas trend yang kuat.
  3. Stop loss dinamik boleh menjadi terlalu dekat dengan harga pasaran dalam keadaan tidak menentu.
  4. Perbezaan antara produk dan jangka masa memerlukan perhatian.

Arahan pengoptimuman

  1. Uji kombinasi parameter yang berbeza ( tempoh kitaran, kriteria penapis, dll) untuk mencari yang optimum.

  2. Sertakan faktor lain seperti lonjakan jumlah untuk menapis isyarat.

  3. Menggunakan alat pengoptimuman parameter untuk mencari parameter optimum.

  4. Pertimbangkan untuk mengintegrasikan kaedah mengambil keuntungan lain seperti hentian atau keluar berasaskan nisbah keuntungan.

  5. Mengira julat stop loss dinamik berdasarkan turun naik pasaran.

Kesimpulan

Strategi ini mempunyai logik yang agak mudah, menangkap arah trend melalui purata bergerak berganda. Penggunaan keuntungan tetap dan kehilangan berhenti dinamik untuk mengambil keuntungan dan kawalan risiko mencapai keseimbangan antara risiko dan ganjaran. Pengoptimuman parameter dan logik lanjut dapat menyesuaikan strategi ini dengan pelbagai keadaan pasaran.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true)

// Define 50 SMMA
smma50 = sma(close, 50)

// Define 20 SMA
sma20 = sma(close, 20)

// Plotting the SMMA and SMA
plot(smma50, color=color.blue, title="50 SMMA")
plot(sma20, color=color.red, title="20 SMA")

// Initialize TP and SL variables
tp = 150
var float sl_price = na

// Buy Signal
buySignal = crossover(sma20, smma50)
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price)

// Sell Signal
sellSignal = crossunder(sma20, smma50)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price)

// Update stop loss level on every crossover
if (buySignal or sellSignal)
    sl_price := close[bar_index + 1]

// Plot Stop Loss level
plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


Lebih lanjut