Strategi Perdagangan Algoritma Pembalikan Pivot Sederhana

Penulis:ChaoZhang, Tarikh: 2024-01-17 15:37:33
Tag:

img

Ringkasan

Strategi ini menjalankan perdagangan pembalikan berdasarkan penembusan titik pusingan. Ia mengira tinggi pusingan dan rendah pusingan dalam tempoh tertentu untuk menentukan tahap pusingan. Ia pergi pendek apabila harga memecahkan di atas tinggi pusingan, dan pergi panjang apabila harga memecahkan di bawah rendah pusingan. Ini adalah strategi pembalikan purata jangka pendek yang biasa.

Logika Strategi

Logik teras strategi ini adalah untuk mengira titik tinggi dan rendah pusingan. Rumusnya adalah:

Pivot High = Jumlah tertinggi tertinggi sepanjang bar N1 yang lalu / N1

Pivot Low = Jumlah rendah terendah sepanjang bar N2 yang lalu / N2

Di mana N1 dan N2 adalah parameter yang menentukan bilangan bar yang digunakan untuk mengira titik pivot.

Selepas mendapatkan tahap tinggi / rendah pivot, peraturan perdagangan adalah:

  1. Pendek apabila harga pecah di atas tinggi pusat
  2. Lama apabila harga pecah di bawah titik rendah
  3. Tetapkan stop loss selepas masuk

Jadi ia merealisasikan strategi pembalikan jangka pendek berdasarkan titik pusingan.

Analisis Kelebihan

Kelebihan strategi mudah ini adalah:

  1. Logik yang mudah, mudah difahami dan dilaksanakan
  2. Sesuai untuk perdagangan jangka pendek frekuensi tinggi
  3. Mencatatkan pembalikan selepas pecah pivot
  4. Boleh dioptimumkan melalui penyesuaian parameter

Analisis Risiko

Terdapat beberapa risiko:

  1. Risiko pembalikan yang gagal - Pembalikan selepas pecah pusingan mungkin gagal dan trend berterusan
  2. Risiko Stop Loss - Stop loss yang telah ditetapkan boleh dipukul sehingga mengakibatkan kerugian besar
  3. Risiko parameter - Parameter yang tidak sesuai memberi kesan besar kepada keputusan

Risiko ini boleh dikendalikan dengan menyesuaikan parameter, menggunakan peraturan keluar dan lain-lain.

Arahan pengoptimuman

Terdapat ruang yang besar untuk pengoptimuman:

  1. Gabungkan dengan penunjuk teknikal lain untuk meningkatkan masa kemasukan
  2. Tambahkan peraturan keluar seperti penghentian kerugian, mengambil keuntungan dan lain-lain
  3. Penyesuaian dinamik parameter untuk meningkatkan kesesuaian
  4. Pengoptimuman parameter untuk mencari kombinasi parameter terbaik

Ringkasan

Ringkasnya, ini adalah strategi pembalikan pivot jangka pendek yang sangat mudah. Kelebihannya adalah kesederhanaan dan keupayaan untuk menangkap pembalikan. Tetapi terdapat beberapa risiko yang perlu ditangani melalui pengoptimuman. Secara keseluruhan ini berfungsi sebagai strategi amalan yang baik untuk pemula dan membina asas untuk strategi lanjutan.


/*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)


Lebih lanjut