Strategi Dagangan Kuantitatif Pembalikan Pivot Mudah


Tarikh penciptaan: 2024-01-17 15:37:33 Akhirnya diubah suai: 2024-01-17 15:37:33
Salin: 0 Bilangan klik: 659
1
fokus pada
1617
Pengikut

Strategi Dagangan Kuantitatif Pembalikan Pivot Mudah

Gambaran keseluruhan

Strategi ini berdasarkan kepada penembusan titik pivot untuk melakukan perdagangan berbalik. Ia akan mengira harga tertinggi dan harga terendah untuk tempoh yang ditetapkan untuk menentukan titik pivot tinggi dan titik pivot rendah. Apabila harga melebihi titik pivot tinggi, buat short; apabila harga lebih rendah daripada titik pivot rendah, buat lebih banyak.

Prinsip Strategi

Logik teras strategi ini adalah untuk mengira titik-titik tinggi dan titik-titik rendah. Formula untuk mengira titik-titik tinggi dan rendah adalah seperti berikut:

Puncak aksa = jumlah harga tertinggi bagi N1 garis K terkini / N1

Titik rendah aksa = jumlah harga terendah bagi N2 akar K terkini / N2

N1 dan N2 adalah dua parameter yang boleh ditetapkan yang mewakili bilangan K yang diperlukan untuk mengira titik pusat.

Setelah anda mengira titik tertinggi dan terendah, anda boleh berdagang. Peraturan perdagangan khusus adalah:

  1. Keluar dari kedudukan semasa harga berada di puncak.
  2. Tambah kedudukan apabila harga menembusi titik rendah.
  3. Tetapkan stop loss selepas memegang kedudukan

Dengan cara ini, ia mewujudkan strategi pembalikan garis pendek berdasarkan titik-titik utama.

Analisis kelebihan

Ini adalah strategi yang sangat mudah untuk membalikkan keadaan, dengan kelebihan berikut:

  1. Prinsip-prinsip yang mudah difahami dan dilaksanakan
  2. Sesuai untuk talian pendek dan sering berdagang
  3. Ia juga boleh menangkap keadaan yang berbalik selepas penembusan.
  4. Boleh dioptimumkan dengan menyesuaikan parameter

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Risiko kegagalan pembalikan. Pembalikan selepas penembusan titik pusat tidak semestinya berjaya, dan terdapat kemungkinan untuk meneruskan aliran asal.
  2. Risiko penembusan stop loss. Harga stop loss yang ditetapkan mungkin akan ditembusi dan menyebabkan kerugian yang lebih besar.
  3. Risiko daripada parameter yang tidak betul. Jika parameter yang tidak betul, ia akan menjejaskan kesan strategi.

Risiko ini boleh dikawal dengan cara seperti menyesuaikan parameter, menetapkan strategi penyingkiran.

Arah pengoptimuman

Strategi ini masih mempunyai ruang untuk pengoptimuman yang besar:

  1. Menentukan masa kemasukan yang lebih tepat, digabungkan dengan petunjuk teknikal lain
  2. Menambah syarat keluar, seperti henti bergerak, henti selepas keuntungan dan sebagainya
  3. Menyesuaikan parameter secara dinamik untuk menjadikan strategi lebih mudah disesuaikan
  4. Mengoptimumkan parameter, mencari kombinasi parameter yang optimum

ringkaskan

Strategi ini adalah strategi pembalikan sumbu garis pendek yang sangat mudah. Kelebihannya adalah mudah difahami, sesuai untuk perdagangan yang kerap, dan dapat menangkap keadaan pembalikan. Tetapi ada juga risiko tertentu yang perlu dioptimumkan lebih lanjut untuk mengurangkan risiko. Secara keseluruhan, ini adalah strategi yang sangat sesuai untuk latihan pemula, dan juga menjadi asas untuk strategi lanjutan.

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

//@version=4
strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075)

leftBars = input(4)
rightBars = input(2)

// backtesting date range
from_day = input(defval=1, title="From Day", minval=1, maxval=31)
from_month = input(defval=1, title="From Month", minval=1, maxval=12)
from_year = input(defval=2018, title="From Year", minval=1900)

to_day = input(defval=1, title="To Day", minval=1, maxval=31)
to_month = input(defval=1, title="To Month", minval=1, maxval=12)
to_year = input(defval=9999, title="To Year", minval=1900)

time_cond = true

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

middle = (swh+swl)/2

swh_cond = not na(swh)



hprice = 0.0
hprice := swh_cond ? swh : hprice[1]

le = false
le := swh_cond ? true : le[1] and high > hprice ? false : le[1]

if le and time_cond
    strategy.entry("LONG", strategy.long, comment="LONG", stop=hprice + syminfo.mintick)

swl_cond = not na(swl)

lprice = 0.0
lprice := swl_cond ? swl : lprice[1]


se = false
se := swl_cond ? true : se[1] and low < lprice ? false : se[1]

if se and time_cond
    strategy.entry("SHORT", strategy.short, comment="SHORT", stop=lprice - syminfo.mintick)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)