Purata gelongsor dan strategi dagangan kuantitatif jalur Bollinger

SMA WMA EMA
Tarikh penciptaan: 2024-04-26 11:45:05 Akhirnya diubah suai: 2024-04-26 11:45:05
Salin: 4 Bilangan klik: 596
1
fokus pada
1617
Pengikut

Purata gelongsor dan strategi dagangan kuantitatif jalur Bollinger

Gambaran keseluruhan

Strategi ini menggunakan tiga jenis rata-rata bergerak yang berbeza: rata-rata bergerak sederhana (SMA), rata-rata bergerak bertimbangan (WMA), dan rata-rata bergerak indeks (EMA). Strategi ini menggunakan Brin untuk menetapkan laluan harga, yang masing-masing berfungsi sebagai isyarat untuk membuka dan menutup kedudukan. Ia menggunakan Brin untuk menetapkan jalur harga yang lebih luas untuk menghentikan kerugian apabila harga menembusi Brin.

Prinsip Strategi

  1. Pengiraan purata bergerak untuk tiga kitaran yang berbeza: SMA perlahan, EMA pantas dan WMA pantas, yang masing-masing mencerminkan trend jangka panjang, jangka pendek dan jangka menengah di pasaran.
  2. Berdasarkan perbezaan piawaian harga, dua kumpulan binari dihitung: binari bukaan (berjarak lebih dekat) dan binari berhenti (berjarak lebih luas). Binari bukaan digunakan untuk membuka posisi dan binari berhenti digunakan untuk menghentikan posisi.
  3. Apabila EMA pantas di atas menembusi pembukaan Burin, kedudukan kosong dibuka; apabila EMA pantas di bawah menembusi pembukaan Burin, kedudukan berbilang dibuka. Ini bermakna harga lebih jauh dari nilai purata, dan trend mungkin berlaku.
  4. Setelah membuka kedudukan, jika harga lebih jauh ke atas menembusi kemerosotan Brin, maka semua kedudukan kepala kosong akan dipadamkan. Ini untuk mengawal kerugian, jika trend berbalik maka ia akan berakhir.
  5. Proses di atas adalah berputar, yang membolehkan strategi menyesuaikan kedudukan dengan fleksibel mengikut trend pasaran, dan menghentikan kerugian tepat pada masanya untuk mencapai keuntungan yang kukuh.

Kelebihan Strategik

  1. Ia mengambil kira tiga kadar purata bergerak yang berbeza untuk menangkap trend pasaran secara menyeluruh di pelbagai peringkat.
  2. Pengenalan Brin Belt sebagai syarat untuk membuka kedudukan kosong, boleh disesuaikan mengikut kadar turun naik pasaran yang dinamik, dan fleksibel dalam menghadapi keadaan.
  3. Setting stop loss Brinband, control withdrawal, and decide to close positions when the market is volatile to avoid loss expansion.
  4. Logiknya jelas, aturannya mudah, mudah dilaksanakan dan dioptimumkan.
  5. Ia boleh digunakan untuk pelbagai pasaran dan tempoh masa.

Risiko Strategik

  1. Dalam pasaran yang bergolak, sering membuka posisi kosong boleh menyebabkan kos dagangan yang tinggi, yang akan merosakkan keuntungan.
  2. Pada permulaan perubahan trend, strategi mungkin masih berdagang di arah trend asal, menyebabkan kerugian tertentu.
  3. Untuk keadaan yang melampau, seperti harga yang melonjak dengan cepat, penghalang Bollinger Bands mungkin tidak dapat mengawal risiko dengan baik.
  4. Pilihan parameter yang tidak betul (seperti purata bergerak, purata purata, dan lain-lain) boleh menyebabkan strategi tidak berfungsi.
  5. Jika pasaran terus bergolak, strategi mungkin tidak dapat menangkap peluang trend yang jelas dalam jangka masa yang lama.

Arah pengoptimuman strategi

  1. Meningkatkan parameter purata bergerak dan lebar lebar Brin dengan sewajarnya untuk mengurangkan frekuensi dan kos perdagangan dalam pasaran yang bergolak.
  2. Memperkenalkan lebih banyak penunjuk teknikal atau penunjuk sentimen pasaran sebagai penapis untuk meningkatkan ketepatan isyarat bukaan kedudukan dan mengelakkan perdagangan rugi yang mungkin berlaku pada awal trend.
  3. Menetapkan peraturan khas untuk keadaan yang melampau, seperti menangguhkan pembukaan kedudukan baru semasa melompat, dan sebagainya, untuk mengawal risiko.
  4. Mengoptimumkan parameter, mencari kombinasi parameter yang paling sesuai untuk pasaran semasa, meningkatkan kestabilan strategi.
  5. Menambah peraturan pengurusan kedudukan dan pengurusan wang, seperti menyesuaikan kedudukan mengikut kekuatan trend atau keuntungan, menetapkan garis berhenti keseluruhan, dan sebagainya, untuk mengawal risiko strategi lebih lanjut.

ringkaskan

Robot projek sekolah Marina Parfenova adalah strategi perdagangan kuantitatif berdasarkan purata bergerak dan Brinband. Ia cuba untuk mendapatkan keuntungan dengan menangkap trend pasaran, dan pada masa yang sama mengawal pulangan melalui Brinband Stop Loss Line. Logik strategi adalah mudah dan jelas, digunakan secara meluas, parameter boleh disesuaikan secara fleksibel mengikut ciri-ciri pasaran. Tetapi dalam aplikasi praktikal masih perlu memberi perhatian kepada isu-isu seperti pasaran yang bergolak, keadaan yang melampau, pengoptimuman parameter, dan lebih menyempurnakan peraturan pengurusan dana dan pengurusan kedudukan.

Kod sumber strategi
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy ("Marina Parfenova School Project Bot", overlay = true)

sma(price, n) =>
    result = 0.0
    for i = 0 to n - 1
        result := result + price [i] / n    
    result

wma(price, n) =>
    result = 0.0
    sum_weight = 0.0
    weight = 0.0
    for i = 0 to n - 1
        weight := n - 1
        result := result + price [i]*weight
        sum_weight := sum_weight + weight
    result/sum_weight

ema(price, n) =>
    result = 0.0
    alpha = 2/(n + 1)
    prevResult = price 
    if (na(result[1]) == false)
        prevResult := result[1]
    result := alpha * price + (1 - alpha) * prevResult

/// Настройки
n_slow = input.int(50, "Период медленной скользящей средней", step=5)
n_fast = input.int(4, "Период быстрой скользящей средней")
n_deviation = input.int(30, "Период среднеквадратического отклонения", step=5)
k_deviation_open = input.float(1.2, "Коэффициент ширины коридора покупки", step=0.1)
k_deviation_close = input.float(1.6, "Коэффициент ширины коридора продажи", step=0.1)

// ----- Линии индикаторов -----

// Медленная скользящая 
sma = sma(close, n_slow)
plot(sma, color=#d3d3d3)

// Линии Боллинджера, обозначающие коридор цены
bollinger_open = k_deviation_open * ta.stdev(close, n_deviation)
open_short_line = sma + bollinger_open
plot(open_short_line, color=#ec8383)
open_long_line = sma - bollinger_open
plot(open_long_line, color=#6dd86d)

bollinger_close = k_deviation_close * ta.stdev(close, n_deviation)
close_short_line = sma + bollinger_close
plot(close_short_line, color=#e3e3e3)
close_long_line = sma - bollinger_close
plot(close_long_line, color=#e3e3e3)

// Быстрая скользящая
ema = ema(close, n_fast)
plot(ema, color = color.aqua, linewidth = 2)

// ----- Сигналы для запуска стратегии -----

// если ema пересекает линию open_short сверху вниз - сигнал на создание ордера в short
if(ema[1] >= open_short_line[1] and ema < open_short_line)
    strategy.entry("short", strategy.short)

// если ema пересекает линию open_long снизу вверх - сигнал на создание ордера в long
if(ema[1] <= open_long_line[1] and ema > open_long_line)
    strategy.entry("long", strategy.long)

// если свеча пересекает верхнюю линию коридора продажи - закрываем все long-ордера 
if (high >= close_short_line)
    strategy.close("long")

// если свеча пересекает нижнюю линию коридора продажи - закрываем все short-ордера
if (low <= close_long_line)
    strategy.close("short")