Strategi perdagangan kuantitatif rata-rata geser dan Bollinger band

SMA WMA EMA
Tanggal Pembuatan: 2024-04-26 11:45:05 Akhirnya memodifikasi: 2024-04-26 11:45:05
menyalin: 4 Jumlah klik: 596
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif rata-rata geser dan Bollinger band

Ringkasan

Strategi ini menggunakan tiga jenis rata-rata bergerak yang berbeda: rata-rata bergerak sederhana (SMA), rata-rata bergerak berbobot (WMA), dan rata-rata bergerak indeks (EMA). Strategi ini menggunakan Bollinger Bands untuk menetapkan jalur harga, yang masing-masing berfungsi sebagai sinyal untuk posisi terbuka dan tenang. Strategi ini menggunakan Bollinger Bands untuk menetapkan jalur harga, yang masing-masing berfungsi sebagai sinyal untuk posisi terbuka dan tenang.

Prinsip Strategi

  1. Penghitungan rata-rata bergerak dari tiga periode yang berbeda: SMA lambat, EMA cepat, dan WMA menengah, yang masing-masing mencerminkan tren pasar jangka panjang, jangka pendek, dan jangka menengah.
  2. Berdasarkan perbedaan standar harga, dua kelompok Brin band dihitung: Brin band terbuka (lebih dekat dengan rel atas dan bawah) dan Brin band tutup (lebih luas dengan rel atas dan bawah). Brin band terbuka digunakan untuk membuka posisi, dan Brin band tutup digunakan untuk menghentikan posisi kosong.
  3. Ketika cepat EMA di atas membuka Brin berbaris, membuka posisi kosong; Ketika cepat EMA di bawah membuka Brin berbaris, membuka posisi multi kepala. Ini berarti bahwa harga lebih jauh dari rata-rata, dan mungkin terjadi tren.
  4. Setelah membuka posisi, jika harga lebih jauh ke atas melewati Bollinger Bands dan naik ke rel, maka semua posisi multihead akan dihapus. Jika harga lebih jauh ke bawah melewati Bollinger Bands dan turun ke rel, maka semua posisi kosong akan dihapus. Ini adalah untuk mengendalikan kerugian, dan jika tren berbalik maka akan berakhir.
  5. Proses di atas terus bergulir, sehingga strategi dapat menyesuaikan posisi secara fleksibel sesuai dengan tren pasar, dan menghentikan kerugian tepat waktu untuk mencapai keuntungan yang kuat.

Keunggulan Strategis

  1. Moving averages dengan tiga kecepatan berbeda dipertimbangkan untuk menangkap tren pasar secara menyeluruh di berbagai tingkatan.
  2. Pendahuluan Bollinger Bands sebagai kondisi untuk membuka posisi kosong, dapat disesuaikan dengan dinamika fluktuasi pasar, dan fleksibel dalam menanggapi situasi.
  3. Siapkan Stop Loss Brinks, kendalikan penarikan, dan tutup posisi pada saat pasar bergejolak, untuk menghindari peningkatan kerugian.
  4. Logika yang jelas, aturan yang sederhana, mudah diimplementasikan dan dioptimalkan.
  5. Aplikasi yang luas dan mungkin berlaku untuk berbagai pasar dan periode waktu.

Risiko Strategis

  1. Dalam pasar yang bergejolak, sering melakukan posisi terendah dapat menyebabkan biaya transaksi yang tinggi, sehingga mengikis keuntungan.
  2. Pada awal pergeseran tren, strategi mungkin masih berdagang di arah tren awal, menyebabkan kerugian tertentu.
  3. Untuk situasi ekstrem, seperti harga yang melonjak dengan cepat, stop loss Bollinger Bands mungkin tidak dapat mengontrol risiko dengan baik.
  4. Pilihan parameter yang tidak tepat (misalnya, periode rata-rata bergerak, bandwidth Brin) dapat membuat strategi tidak berfungsi.
  5. Jika pasar terus bergoyang, strategi mungkin tidak dapat menangkap peluang tren yang jelas untuk waktu yang lama.

Arah optimasi strategi

  1. Meningkatkan siklus rata-rata bergerak dan parameter bandwidth Brin secara tepat untuk mengurangi frekuensi dan biaya transaksi di pasar yang bergolak.
  2. Memperkenalkan lebih banyak indikator teknis atau indikator sentimen pasar sebagai filter untuk meningkatkan akurasi sinyal posisi terbuka dan menghindari perdagangan yang merugikan yang mungkin terjadi pada awal tren.
  3. Untuk mengontrol risiko, atur aturan khusus untuk situasi ekstrem, seperti penundaan pembukaan posisi baru pada saat melompat.
  4. Optimalkan parameter, temukan kombinasi parameter yang paling sesuai dengan pasar saat ini, dan tingkatkan stabilitas strategi.
  5. Menambahkan manajemen posisi dan aturan manajemen dana, seperti menyesuaikan posisi sesuai dengan kekuatan tren atau keuntungan, mengatur garis stop loss keseluruhan, dan lain-lain, untuk lebih mengontrol risiko strategi.

Meringkaskan

Robot proyek sekolah Marina Parfenova adalah strategi perdagangan kuantitatif yang didasarkan pada moving average dan Bollinger Bands. Strategi ini berusaha untuk mendapatkan keuntungan dengan menangkap tren pasar, sementara dengan Bollinger Bands mengendalikan pengunduran diri. Logika strategi sederhana, jelas, luas, dan parameter dapat disesuaikan secara fleksibel sesuai dengan karakteristik pasar. Namun, dalam aplikasi praktis, masih perlu memperhatikan masalah seperti pasar yang bergoyang, situasi ekstrem, optimasi parameter, dan lebih lanjut menyempurnakan manajemen uang dan aturan manajemen posisi.

Kode 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")