Sumber dimuat naik... memuat...

Strategi Perdagangan Band Volatiliti Berbilang Lapisan

Penulis:ChaoZhang, Tarikh: 2024-07-31 14:08:36
Tag:SMAEMASMMAWMAVWMAATR

img

Ringkasan

Strategi perdagangan pelbagai lapisan adalah pendekatan perdagangan kuantitatif berdasarkan turun naik harga. Strategi ini menggunakan pelbagai band turun naik untuk mengenal pasti kawasan yang terlalu banyak dibeli dan terlalu banyak dijual di pasaran, memulakan perdagangan apabila harga menyentuh kawasan ini. Idea terasnya adalah untuk menubuhkan kedudukan apabila harga menyimpang dari purata dan keuntungan apabila mereka kembali.

Prinsip Strategi

  1. Pengiraan purata bergerak: Strategi menggunakan jenis purata bergerak yang boleh dipilih (SMA, EMA, SMMA, WMA, VWMA) untuk mengira garis asas.

  2. Setup Band Volatiliti: Pelbagai band volatiliti ditubuhkan berdasarkan garis asas, menggunakan penyimpangan piawai didarabkan dengan faktor.

  3. Tahap Fibonacci: Tahap retracement Fibonacci (23.6%, 38.2%, 50%, 61.8%) digunakan untuk membahagikan rentang turun naik, mewujudkan lebih banyak peluang perdagangan.

  4. Penyesuaian Dinamik: Pilihan untuk menggunakan pengganda dinamik berdasarkan ATR (Rentang Benar Purata) untuk menyesuaikan lebar jalur turun naik secara automatik.

  5. Logik Masuk: Posisi ditubuhkan apabila harga menyentuh atau melintasi jalur turun naik dalam arah yang sesuai.

  6. Scaling Kedudukan: Jika harga terus bergerak tidak menguntungkan, strategi menambah kedudukan pada tahap rentang turun naik yang lebih lanjut, mewujudkan konsep strategi Martingale.

  7. Logik Keluar: Keuntungan diambil apabila harga kembali ke garis asas. Pilihan untuk menutup kedudukan apabila harga melintasi garis asas juga tersedia.

Kelebihan Strategi

  1. Masuk Multi-Level: Dengan menetapkan pelbagai jalur turun naik dan tahap Fibonacci, strategi ini menyediakan lebih banyak peluang perdagangan, menangkap turun naik pasaran pada tahap harga yang berbeza.

  2. Kemudahan yang tinggi: Strategi ini membolehkan pengguna memilih pelbagai jenis purata bergerak, tempoh, dan parameter untuk menyesuaikan diri dengan pelbagai persekitaran pasaran dan instrumen perdagangan.

  3. Penyesuaian Dinamik: Ciri pengganda dinamik pilihan membolehkan strategi menyesuaikan diri secara automatik mengikut turun naik pasaran, meningkatkan kesesuaian.

  4. Pengurusan Risiko: Dengan meningkatkan kedudukan semasa pergerakan harga yang tidak baik, strategi ini cuba menurunkan harga masuk purata, meningkatkan kebarangkalian keuntungan akhir.

  5. Konsep Pembalikan Purata: Strategi ini berdasarkan idea bahawa harga akhirnya akan kembali ke purata, yang berfungsi dengan baik di banyak pasaran dan jangka masa.

  6. Kebolehsesuaian: Pengguna boleh menyesuaikan parameter seperti saiz saham dan tahap Fibonacci mengikut pilihan risiko dan gaya perdagangan mereka.

Risiko Strategi

  1. Risiko Kerugian Berturut-turut: Dalam pasaran yang mempunyai trend yang kuat, harga boleh terus menerus menembusi pelbagai rentang turun naik, yang membawa kepada peningkatan kedudukan berturut-turut dan mengumpulkan kerugian yang ketara.

  2. Tekanan Pengurusan Modal: Peningkatan kedudukan gaya Martingale boleh membawa kepada peningkatan keperluan modal yang pesat, berpotensi melebihi kapasiti akaun.

  3. Overtrading: Pelbagai rentang turun naik boleh menghasilkan isyarat dagangan yang berlebihan di pasaran yang terikat julat, meningkatkan kos transaksi.

  4. Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada tetapan parameter; parameter yang tidak sesuai boleh menyebabkan prestasi yang buruk.

  5. Risiko slippage dan kecairan: Di pasaran yang sangat tidak menentu, slippage yang ketara boleh berlaku, terutamanya apabila skala kedudukan.

  6. Risiko pengurangan: Walaupun strategi ini bertujuan untuk menurunkan kos purata melalui skala kedudukan, ia masih boleh menghadapi pengurangan yang besar dalam keadaan pasaran yang melampau.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan Penapis Trend: Tambah penunjuk trend jangka panjang untuk membuka kedudukan hanya dalam arah trend, mengelakkan perdagangan yang sering bertentangan dengan trend dalam trend yang kuat.

  2. Pengukuran Posisi Dinamik: Sesuaikan bilangan saham yang didagangkan berdasarkan saiz akaun dan turun naik pasaran untuk mengawal risiko dengan lebih baik.

  3. Mengoptimumkan Mekanisme Keluar: Pertimbangkan untuk memperkenalkan penangguhan trailing atau stop-loss dinamik berdasarkan turun naik untuk mengunci keuntungan dan mengawal risiko dengan lebih baik.

  4. Tambah Penapis Masa: Melaksanakan sekatan tetingkap masa dagangan untuk mengelakkan tempoh turun naik yang tinggi atau kecairan yang lemah.

  5. Mengintegrasikan Penunjuk Sentimen Pasaran: Menggabungkan penunjuk turun naik seperti VIX untuk menyesuaikan parameter strategi atau menghentikan perdagangan semasa tempoh turun naik yang tinggi.

  6. Memperkenalkan Pembelajaran Mesin: Gunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara dinamik, meningkatkan kemampuan strategi untuk menyesuaikan diri dengan perubahan pasaran.

  7. Tambah Penapis Dasar: Sertakan data asas untuk membenarkan perdagangan hanya di bawah syarat asas tertentu, meningkatkan kualiti perdagangan.

Kesimpulan

Strategi Perdagangan Band Volatiliti Multi-Layer adalah sistem perdagangan yang kompleks yang menggabungkan analisis teknikal, teori kebarangkalian, dan pengurusan risiko. Ia cuba menangkap keuntungan dari turun naik harga melalui titik kemasukan pelbagai peringkat dan skala kedudukan gaya Martingale.

Untuk berjaya menggunakan strategi ini, peniaga memerlukan pemahaman yang mendalam mengenai ciri pasaran, penetapan parameter yang teliti, dan pelaksanaan pengurusan risiko yang ketat. Melalui pengoptimuman dan pengujian balik yang berterusan, digabungkan dengan wawasan pasaran, strategi ini berpotensi menjadi alat perdagangan yang berkesan. Walau bagaimanapun, memandangkan kerumitan dan risiko yang berpotensi, adalah dinasihatkan untuk menjalankan ujian simulasi dan penilaian risiko yang menyeluruh sebelum perdagangan langsung.

Secara keseluruhannya, Strategi Dagangan Band Volatiliti Multi-Layer menyediakan kerangka kerja yang menarik dan mencabar untuk peniaga kuantitatif.


/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abtov

//@version=5
strategy("Spider Strategy", overlay=true)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

stdev = input.int(56, "STDEV", group="Stdev")
mult = input.float(2.3, "Multiplier", group="Stdev")
ma_len = input.int(230, "Basis Length", group="Stdev")
ma_type = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Stdev")
auto_mult = input.bool(true, "Dynamic Mult.", group="Stdev")
basis_exit = input.bool(false, "Basis Exit", group="Stdev")

col_int = input.int(12, "Collective Value", group="Collective")
col_input = input.bool(true, "Collective Input", group="Collective")


fib1 = input.float(0.236, "Fibonacci Level 1", group = "Fibonacci")
fib2 = input.float(0.382, "Fibonacci Level 2", group = "Fibonacci")
fib3 = input.float(0.5, "Fibonacci Level 3", group = "Fibonacci")
fib4 = input.float(0.618, "Fibonacci Level 4", group = "Fibonacci")

atr_len = input.int(30, "ATR", group="ATR")
atr_bias = input.float(0.72, "Bias", group="ATR")

shares = input.int(1, "Shares Amount", group="Strategy")

if(col_input == true)
    stdev := col_int
    ma_len := col_int
    atr_len := col_int

if(auto_mult == true)
    mult := ma(ta.tr(true), atr_len, ma_type) * atr_bias


basis = ma(close, ma_len, ma_type)
lower = basis - stdev * mult
upper = basis + stdev * mult

lower2 = basis - stdev * mult * fib1
upper2 = basis + stdev * mult * fib1

lower3 = basis - stdev * mult * fib2
upper3 = basis + stdev * mult * fib2

lower4 = basis - stdev * mult * fib3
upper4 = basis + stdev * mult * fib3

lower5 = basis - stdev * mult * fib4
upper5 = basis + stdev * mult * fib4


var lowerAct = false
var lower2Act = false
var lower3Act = false
var lower4Act = false
var lower5Act = false

var upperAct = false
var upper2Act = false
var upper3Act = false
var upper4Act = false
var upper5Act = false


plot(upper, "limit short", color.red)
plot(upper2, "limit 1 short", color.red)
plot(upper3, "limit 2 short", color.red)
plot(upper4, "limit 3 short", color.red)
plot(upper5, "limit 4 short", color.red)
plot(basis, "basis", color.white)
plot(lower, "limit long", color.green)
plot(lower2, "limit 1 long", color.green)
plot(lower3, "limit 2 long", color.green)
plot(lower4, "limit 3 long", color.green)
plot(lower5, "limit 4 long", color.green)


if(lowerAct == false)
    if(close < lower)
        strategy.entry("long", strategy.long, shares)
        lowerAct := true
else
    if(low > basis)
        lowerAct := false


if(lower2Act == false)
    if(close < lower2)
        strategy.entry("long", strategy.long, shares)
        lower2Act := true
else
    if(low > basis)
        lower2Act := false


if(lower3Act == false)
    if(close < lower3)
        strategy.entry("long", strategy.long, shares)
        lower3Act := true
else
    if(low > basis)
        lower3Act := false


if(lower4Act == false)
    if(close < lower4)
        strategy.entry("long", strategy.long, shares)
        lower4Act := true
else
    if(low > basis)
        lower4Act := false


if(lower5Act == false)
    if(close < lower5)
        strategy.entry("long", strategy.long, shares)
        lower5Act := true
else
    if(low > basis)
        lower5Act := false





if(upperAct == false)
    if(close > upper)
        strategy.entry("short", strategy.short, shares)
        upperAct := true
else
    if(high < basis)
        upperAct := false


if(upper2Act == false)
    if(close > upper2)
        strategy.entry("short", strategy.short, shares)
        upper2Act := true
else
    if(high < basis)
        upper2Act := false


if(upper3Act == false)
    if(close > upper3)
        strategy.entry("short", strategy.short, shares)
        upper3Act := true
else
    if(high < basis)
        upper3Act := false


if(upper4Act == false)
    if(close > upper4)
        strategy.entry("short", strategy.short, shares)
        upper4Act := true
else
    if(high < basis)
        upper4Act := false


if(upper5Act == false)
    if(close > upper5)
        strategy.entry("short", strategy.short, shares)
        upper5Act := true
else
    if(high < basis)
        upper5Act := false


if((ta.crossover(close, basis) and basis_exit == true))
    strategy.close("short")
    strategy.close("long")

Berkaitan

Lebih lanjut