Strategi perdagangan jalur turun naik berbilang lapisan

SMA EMA SMMA WMA VWMA ATR
Tarikh penciptaan: 2024-07-31 14:08:36 Akhirnya diubah suai: 2024-07-31 14:08:36
Salin: 1 Bilangan klik: 583
1
fokus pada
1617
Pengikut

Strategi perdagangan jalur turun naik berbilang lapisan

Gambaran keseluruhan

Strategi perdagangan pita gelombang bertingkat adalah kaedah perdagangan kuantitatif yang berdasarkan pada turun naik harga. Strategi ini menggunakan pelbagai turun naik untuk mengenal pasti kawasan yang terlalu banyak dibeli dan terlalu banyak dijual di pasaran, dan melakukan perdagangan apabila harga menyentuh kawasan tersebut.

Prinsip Strategi

  1. Pengiraan garis purata: Kaedah menggunakan jenis garis purata pilihan (SMA, EMA, SMMA, WMA, VWMA) untuk mengira garis asas.

  2. Tetapan pita gelombang: Berdasarkan garis asas, menggunakan perbezaan piawai kali ganda untuk menetapkan pelbagai lapisan pita gelombang.

  3. Tahap Fibonacci: Menggunakan tahap pengunduran Fibonacci ((23.6%, 38.2%, 50%, 61.8%) untuk membahagikan zon turun naik dan mewujudkan lebih banyak peluang perdagangan.

  4. Penyesuaian dinamik: boleh memilih untuk menggunakan pembolehubah dinamik, menyesuaikan bandwidth gelombang secara automatik mengikut ATR (Average True Range).

  5. Logik masuk: apabila harga menyentuh atau melintasi satu band turun naik, strategi itu membina kedudukan ke arah itu.

  6. Mekanisme Pemasaran: Jika harga terus bergerak ke arah yang tidak menguntungkan, strategi ini akan meningkatkan kedudukan di tahap yang lebih jauh dari band turun naik, yang mencerminkan pemikiran strategi Martingale.

  7. Logik Keluar: Apabila harga kembali ke garis asas, anda boleh memilih untuk mendapatkan keuntungan dari kedudukan rata. Anda juga boleh menetapkan kedudukan rata apabila harga melintasi garis asas.

Kelebihan Strategik

  1. Masuk bertingkat: Dengan menetapkan pelbagai jalur turun naik dan tahap Fibonacci, strategi ini memberikan lebih banyak peluang perdagangan yang dapat menangkap turun naik pasaran pada tahap harga yang berbeza.

  2. Fleksibiliti: Strategi membolehkan pengguna memilih jenis garis rata, kitaran dan parameter yang berbeza untuk menyesuaikan diri dengan keadaan pasaran dan jenis perdagangan yang berbeza.

  3. Penyesuaian dinamik: Fungsi kelipatan dinamik yang boleh dipilih membolehkan strategi menyesuaikan diri secara automatik dengan turun naik pasaran, meningkatkan penyesuaian strategi.

  4. Pengurusan risiko: Strategi ini cuba menurunkan harga kemasukan purata dan meningkatkan kemungkinan keuntungan akhir dengan meningkatkan kedudukan dalam trend yang tidak menguntungkan.

  5. Idea Kembalikan Nilai Rata-Rata: Strategi berdasarkan kepada idea bahawa harga akhirnya akan kembali kepada nilai rata-rata, yang berfungsi dengan baik di banyak pasaran dan jangka masa.

  6. Sesuaikan: Pengguna boleh menyesuaikan parameter mengikut pilihan risiko dan gaya dagangan mereka, seperti bilangan saham, Fibonacci.

Risiko Strategik

  1. Risiko kerugian berturut-turut: Dalam pasaran yang kuat, harga mungkin terus menerus menembusi beberapa zon turun naik, yang menyebabkan kenaikan harga berturut-turut dan kerugian yang besar.

  2. Tekanan untuk menguruskan dana: Strategi pembiayaan seperti Martin Gill boleh menyebabkan permintaan dana meningkat secara mendadak melebihi kemampuan akaun.

  3. Overtrading: Multi-layered bands of fluctuation boleh menghasilkan terlalu banyak isyarat perdagangan dalam pasaran yang bergolak, meningkatkan kos perdagangan.

  4. Sensitiviti parameter: prestasi strategi sangat bergantung kepada tetapan parameter, parameter yang tidak betul boleh menyebabkan prestasi strategi yang buruk.

  5. Penarikan dan risiko kecairan: Dalam pasaran yang bergolak, penarikan yang serius mungkin berlaku, terutamanya apabila anda meletakkan saham.

  6. Risiko penarikan balik: Walaupun strategi ini bertujuan untuk menurunkan kos purata melalui penambahan, penarikan balik yang besar mungkin berlaku dalam keadaan pasaran yang melampau.

Arah pengoptimuman strategi

  1. Memperkenalkan penapis trend: anda boleh menambah indikator trend jangka panjang, hanya membuka kedudukan di arah trend, dan mengelakkan perdagangan berlawanan yang kerap dalam trend yang kuat.

  2. Pengurusan kedudukan dinamik: jumlah saham yang disesuaikan setiap kali berdagang mengikut saiz akaun dan pergerakan turun naik pasaran, untuk mengawal risiko dengan lebih baik.

  3. Optimumkan mekanisme keluar: Anda boleh mempertimbangkan untuk memperkenalkan trailing stop atau stop loss dinamik berdasarkan kadar turun naik untuk lebih mengunci keuntungan dan mengawal risiko.

  4. Menambah penapisan masa: Tambah sekatan pada tetingkap masa dagangan untuk mengelakkan pergerakan yang lebih besar atau kurang.

  5. Mengintegrasikan penunjuk sentimen pasaran: menggabungkan penunjuk kadar turun naik seperti VIX untuk menyesuaikan parameter strategi atau menangguhkan perdagangan semasa turun naik yang tinggi.

  6. Memperkenalkan pembelajaran mesin: menggunakan parameter pengoptimuman dinamik algoritma pembelajaran mesin untuk meningkatkan adaptasi strategi terhadap perubahan pasaran.

  7. Menambah penapisan asas: Menggabungkan data asas untuk membenarkan transaksi hanya dengan syarat asas tertentu, meningkatkan kualiti transaksi.

ringkaskan

Strategi perdagangan multi-lapisan gelombang adalah sistem perdagangan yang kompleks yang menggabungkan analisis teknikal, teori kebarangkalian dan pengurusan risiko. Ia cuba menangkap keuntungan dalam turun naik harga melalui titik masuk bertingkat dan kaedah penambahan marjin seperti Martin Angle. Kelebihan strategi adalah fleksibiliti dan penggunaan pulangan ke arah nilai rata-rata, tetapi juga menghadapi risiko dalam pasaran yang sedang tren kuat.

Untuk berjaya menggunakan strategi ini, peniaga perlu memahami ciri-ciri pasaran dengan mendalam, menetapkan parameter dengan berhati-hati, dan melaksanakan pengurusan risiko yang ketat. Dengan pengoptimuman dan pengulangan berterusan, digabungkan dengan wawasan pasaran, strategi ini berpotensi menjadi alat perdagangan yang berkesan.

Secara keseluruhannya, strategi perdagangan multi-lapisan ribut memberikan kerangka yang menarik dan mencabar bagi pedagang kuantitatif, dan penerapannya yang berjaya memerlukan kebolehan analisis teknikal, kemahiran pengurusan risiko, dan pengoptimuman strategi yang berterusan.

Kod sumber strategi
/*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")