Strategi turun naik adaptif berdasarkan pecahan julat kuantitatif


Tarikh penciptaan: 2024-02-22 16:50:46 Akhirnya diubah suai: 2024-02-22 16:50:46
Salin: 0 Bilangan klik: 563
1
fokus pada
1617
Pengikut

Strategi turun naik adaptif berdasarkan pecahan julat kuantitatif

Gambaran keseluruhan

Strategi ini dengan mengira nilai tertinggi dan terendah jumlah transaksi dalam tempoh tertentu terakhir, membentuk julat turun naik yang beradaptasi, menghasilkan isyarat perdagangan apabila jumlah transaksi dalam tempoh semasa menembusi julat ini. Arah isyarat, berdasarkan penilaian sia-sia, adalah strategi yang mudah dan berkesan untuk menjejaki pasaran yang tiba-tiba besar.

Prinsip Strategi

Logik teras adalah untuk mengira nilai tertinggi dan terendah dari jumlah transaksi positif dan negatif dalam tempoh N kitaran terakhir, membentuk julat turun naik yang menyesuaikan diri. Berdasarkan julat ini, anda dapat menentukan sama ada terdapat penembusan pada masa itu.

Proses pengiraan adalah seperti berikut:

  1. Highest dan Lowest dalam N kitaran terakhir
  2. Menentukan sama ada jumlah transaksi dalam kitaran semasa lebih tinggi daripada jumlah transaksi dalam kitaran semasa.
  3. Gabungan semasa adalah yang negatif atau yang positif, menyelesaikan keputusan isyarat penembusan
  4. Menjana lebih banyak isyarat kosong

Analisis kelebihan

Strategi ini mempunyai kelebihan utama:

  1. Beradaptasi dan peka terhadap perubahan pasaran
  2. Menangkap keadaan kecemasan yang berfluktuasi tinggi, mengurangkan kadar kebocoran
  3. Penghakiman yang tidak tepat untuk mengelakkan penembusan palsu
  4. Mudah, mudah difahami dan diubah suai
  5. Parameter yang boleh disesuaikan secara fleksibel untuk pelbagai jenis

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Mudah mengejar tinggi dan rendah, perlu menyesuaikan kawalan parameter
  2. Isyarat salah yang sering berlaku dalam pasaran yang bergolak
  3. Tidak dapat membezakan antara penembusan normal dan tidak normal, perlu digabungkan dengan petunjuk atau model penilaian lain
  4. Hanya satu peluang untuk masuk dalam setiap terobosan, tidak dapat mengesan trend

Ia boleh dioptimumkan dengan menyesuaikan kitaran parameter, digabungkan dengan penapisan petunjuk lain.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Menambah parameter untuk menyesuaikan panjang selang untuk menyesuaikan diri dengan kitaran pasaran yang berbeza
  2. Tambah penunjuk seperti garis rata-rata, Brinks, dan penapis isyarat
  3. Mengoptimumkan gabungan K-Line untuk mengelakkan kesalahan penembusan palsu
  4. Tambah modul kemasukan semula dan hentikan kerugian supaya strategi dapat menjejaki trend

ringkaskan

Strategi ini secara keseluruhannya mudah dan praktikal, dan dapat menangkap keadaan unilateral yang tiba-tiba dengan pengukuran dan pengukuran, tetapi terdapat risiko salah maklumat, perlu menyesuaikan parameter dengan betul dan menggunakan alat lain untuk mencapai kesan maksimum.

Kod sumber strategi
/*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)