Strategi volatilitas jangka panjang berdasarkan identifikasi titik tinggi dan rendah


Tanggal Pembuatan: 2024-02-18 09:57:11 Akhirnya memodifikasi: 2024-02-18 09:57:11
menyalin: 0 Jumlah klik: 617
1
fokus pada
1617
Pengikut

Strategi volatilitas jangka panjang berdasarkan identifikasi titik tinggi dan rendah

Ringkasan

Strategi High/Low Breakout adalah strategi long-term volatility yang didasarkan pada identifikasi High/Low. Strategi ini berorientasi pada arah parameter strategi, melakukan over saat harga tertinggi di periode jendela tertentu baru-baru ini terobos, dan melakukan short saat harga terendah di periode jendela tertentu baru-baru ini terobos.

Prinsip Strategi

Strategi ini melihat harga tertinggi dan terendah dari garis N-root K terdekat dengan pengaturan parameter masukan, yaitu titik tinggi dan rendah dari pergerakan, dan menentukan arah strategi berdasarkan parameter arah. Dalam overdoing, masuk ke pasar dengan cara stop win ketika harga menerobos titik tertinggi dalam garis N-root K terdekat; masuk ke pasar dengan cara stop loss ketika harga jatuh dari titik terendah dalam garis N-root K terdekat.

Selain itu, strategi ini juga menetapkan posisi stop loss. Setelah membuka posisi, garis stop loss ditetapkan di dekat harga terendah; Setelah melakukan shorting, garis stop loss ditetapkan di dekat harga tertinggi. Ini dapat secara efektif menghindari kerugian besar yang disebabkan oleh tindakan unilateral.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah dapat menangkap fluktuasi penting di dekat titik tinggi dan rendah, dan dengan demikian, menghasilkan keuntungan. Selain itu, pengaturan garis stop loss secara efektif mengendalikan risiko.

Keuntungan spesifiknya adalah:

  1. Strategi berpikir yang jelas, masuk dan keluar dinilai dengan melewati titik tinggi dan rendah.

  2. Menggunakan swing high dan low untuk mencari peluang reversal adalah praktik klasik dalam analisis teknis.

  3. Ada pengaturan stop loss untuk mengendalikan risiko dan menghindari kerugian besar yang disebabkan oleh tindakan sepihak.

  4. Struktur kodenya jelas, mudah dipahami dan dimodifikasi.

  5. Anda dapat mengimpor parameter yang berbeda untuk mengoptimalkan strategi, seperti mengadaptasi periode tertinggi dan terendah.

Analisis risiko

Risiko utama dari strategi ini adalah perdagangan yang salah yang disebabkan oleh penilaian tinggi dan rendah. Risiko spesifik meliputi:

  1. Pada titik tertinggi dan terendah mungkin terjadi kesalahan penembusan yang menyebabkan kesalahan masuk.

  2. “Bagi saya, ini adalah titik awal dari pergeseran”, katanya.

  3. Varietas yang sedang tren mudah terbentuk dengan biaya yang sangat besar untuk menentukan titik tinggi dan rendah.

  4. Peraturan parameter yang tidak tepat juga dapat mempengaruhi kinerja kebijakan.

Solusi yang sesuai meliputi:

  1. Parameter optimasi, jumlah siklus untuk menyesuaikan penilaian titik tertinggi dan terendah.

  2. Meningkatkan Stop Loss

  3. Untuk membedakan karakteristik varietas, hindari penggunaan varietas tren.

  4. Parameter pengoptimalan dinamis menggunakan metode pembelajaran mesin.

Arah optimasi strategi

Strategi ini dapat dioptimalkan dengan cara:

  1. Optimasi siklus maksimum dan minimum: jumlah siklus tetap saat ini, dapat diubah menjadi optimasi dinamis untuk menghindari overoptimasi yang disebabkan oleh mode tetap.

  2. Optimalisasi Stop Loss: Anda dapat menyesuaikan stop loss berdasarkan ATR, volatilitas, dan indikator lainnya.

  3. Kombinasi beberapa siklus waktu: Anda dapat menentukan tren pada siklus waktu yang lebih tinggi, dan periode waktu yang lebih rendah menentukan masuk.

  4. Meningkatkan pembelajaran mesin: Menggunakan metode seperti jaringan saraf untuk memprediksi probabilitas terobosan potensi tinggi dan rendah, meningkatkan efektivitas.

  5. Optimalkan algoritma stop loss: memperbaiki algoritma untuk meminimalkan keadaan di mana stop loss yang tidak efektif dipicu dengan asumsi jaminan stop loss.

Meringkaskan

Strategi penembusan titik tinggi rendah secara keseluruhan adalah strategi kuantitatif garis panjang yang sangat praktis. Ini menghasilkan keuntungan dengan menangkap peluang berbalik di dekat titik tinggi rendah, dan mengatur stop loss untuk mengendalikan risiko, sehingga pengunduran diri dapat dikendalikan sambil menjamin keuntungan. Pengaturan parameter strategi ini fleksibel, ide yang jelas, dan merupakan strategi yang disarankan.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)