Strategi fluktuasi penyesuaian berdasarkan Penembusan Julat Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-02-22 16:50:46
Tag:

img

Ringkasan

Strategi ini mengira jumlah urus niaga tertinggi dan terendah dalam tempoh baru-baru ini untuk membentuk julat turun naik adaptif. Apabila jumlah urus niaga kitaran semasa memecahkan julat ini, isyarat perdagangan dihasilkan. Arah isyarat ditentukan oleh lilin Yin Yang, yang merupakan strategi yang mudah dan berkesan untuk mengesan transaksi tunggal yang tiba-tiba besar di pasaran.

Logika Strategi

Logik teras adalah untuk mengira nilai tertinggi dan terendah jumlah transaksi positif dan negatif dalam kitaran N yang paling baru untuk membentuk julat fluktuasi adaptif. Tentukan sama ada terobosan berlaku dalam tempoh semasa berdasarkan julat ini sambil mengambil kira isyarat garis Yin Yang untuk melengkapkan penghakiman.

Proses pengiraan khusus ialah:

  1. Mengira jumlah urus niaga tertinggi dan jumlah urus niaga terendah Terendah dalam N kitaran yang paling baru
  2. Tentukan sama ada jumlah urus niaga Jumlah kitaran semasa adalah lebih tinggi daripada tertinggi
  3. Gabungkan sama ada lilin semasa adalah Yin atau Yang untuk melengkapkan penghakiman isyarat terobosan
  4. Menghasilkan isyarat panjang dan pendek

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Tetapan julat penyesuaian sensitif kepada perubahan pasaran
  2. Mengambil tendensi lonjakan turun naik yang tinggi, mengurangkan kadar transaksi yang hilang
  3. Gabungkan penghakiman bentuk lilin untuk mengelakkan kejayaan palsu
  4. Mudah dilaksanakan dan diubah suai
  5. Parameter boleh diselaraskan untuk memenuhi produk yang berbeza

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Cenderung untuk mengejar tinggi dan membunuh rendah, perlu menyesuaikan parameter untuk mengawal
  2. Boleh sering menghasilkan isyarat palsu di pasaran berputar kitaran besar
  3. Tidak dapat membezakan terobosan normal dan abnormal, perlu memasukkan penunjuk atau corak lain untuk penilaian
  4. Hanya satu peluang kemasukan untuk setiap terobosan, tidak dapat mengesan trend

Penyesuaian parameter kitaran dan menggabungkan penunjuk lain untuk penapisan boleh mengoptimumkan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dengan beberapa cara:

  1. Meningkatkan selang untuk menyesuaikan panjang julat untuk menyesuaikan kitaran pasaran yang berbeza
  2. Menggabungkan MA, Bollinger Bands dan lain-lain untuk menapis isyarat
  3. Mengoptimumkan kombinasi dengan corak candlestick untuk mengelakkan isyarat palsu
  4. Tambah semula masuk dan berhenti kehilangan modul supaya strategi boleh mengesan trend

Ringkasan

Strategi ini secara keseluruhannya mudah dan praktikal. Dengan menggabungkan analisis harga julat dan jumlah yang beradaptasi, ia dapat menangkap pasaran letupan satu hala secara berkesan. Walau bagaimanapun, terdapat juga risiko isyarat palsu tertentu, yang memerlukan tweak parameter yang sesuai dan alat pelengkap sebelum ia dapat mencapai kesan maksimum.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
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/
// © EvoCrypto

//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)

// INPUTS {
Range_Length    =   input(5,        title="Range Length",                       minval=1)

Heikin_Ashi     =   input(true,     title="Heikin Ashi Colors")
Display_Bars    =   input(true,     title="Show Bar Colors")
Display_Break   =   input(true,     title="Show Break-Out")
Display_Range   =   input(true,     title="Show Range")
// }

// SETTINGS {
Close           =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close)    : close
Open            =   Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open)     : open

Positive        =    volume
Negative        =   -volume

Highest         =   highest(volume, Range_Length)
Lowest          =   lowest(-volume, Range_Length)

Up              =   Highest > Highest[1] and Close > Open
Dn              =   Highest > Highest[1] and Close < Open

Volume_Color    =   
 Display_Break and Up   ? color.new(#ffeb3b, 0)     : 
 Display_Break and Dn   ? color.new(#f44336, 0)     : 
 Close > Open           ? color.new(#00c0ff, 60)    : 
 Close < Open           ? color.new(#000000, 60)    : na 
// }

//PLOTS {
plot(Positive,                      title="Positive Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)
plot(Negative,                      title="Negative Volume",    color=Volume_Color,             style=plot.style_histogram,  linewidth=4)

plot(Display_Range ? Highest : na,  title="Highest",            color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)
plot(Display_Range ? Lowest  : na,  title="Lowest",             color=color.new(#000000, 0),    style=plot.style_line,       linewidth=2)

barcolor(Display_Bars ? Volume_Color : na)
// }

if (Up)
    strategy.entry("Long Entry", strategy.long)
if (Dn)
    strategy.entry("Short Entry", strategy.short)

Lebih lanjut