Strategi Dagangan Pecahan Julat Kemeruapan Sejarah


Tarikh penciptaan: 2023-09-21 20:38:29 Akhirnya diubah suai: 2023-09-21 20:38:29
Salin: 1 Bilangan klik: 677
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menentukan isyarat perdagangan berdasarkan julat pergerakan sejarah harga. Ia mengira perbezaan antara harga tertinggi dan terendah dalam tempoh tertentu, dan membentuk julat pergerakan melalui purata bergerak. Isyarat perdagangan dihasilkan apabila harga menembusi ke atas dan ke bawah julat tersebut.

Prinsip Strategi

Indikator utama strategi ini adalah kadar turun naik harga bersejarah.

  1. HAL adalah perbezaan antara harga tertinggi dan terendah pada masa lalu N root Bar.

  2. Mengira purata harga tertinggi dan terendah pada N akar Bar yang lalu (avg ((H, L))

  3. Kadar turun naik = HL / avg (H, L)

N ialah parameter “Volatility Length”.

Setelah mendapat kadar turun naik, kiralah:

Uptrend = kini dekat + kini dekat * kadar turun naik

Laluan bawah = kini dekat - kini dekat * kadar turun naik

Laluan atas dan bawah kemudian dihaluskan melalui garis rata WMA, dengan parameter “Average Length”.

Apabila harga menembusi garisan atas, lakukan lebih banyak; apabila harga menembusi garisan bawah, lakukan lebih sedikit.

Isyarat simpanan terhad diberikan berdasarkan parameter “Exit Type”:

  1. Apabila Exit Type adalah Volatility MA, harga kembali menembusi kedudukan rata-rata rata-rata WMA;

  2. Exit Type adalah Range Crossover, apabila harga kembali menembusi kedudukan rata di atas dan di bawah.

Kelebihan Strategik

  • Menggunakan kadar turun naik harga untuk menangkap trend
  • Pengurusan linear WMA menjadikan jarak lebih stabil dan boleh dipercayai
  • Masuk dengan mudah untuk memahami titik perubahan trend
  • Pelanggaran pada garis rata-rata atau di atas dan di bawah landasan boleh berhenti pada masa yang tepat
  • Ruang untuk mengoptimumkan parameter yang boleh disesuaikan untuk pasaran yang berbeza

Risiko Strategik

  • Kemerosotan rentang berisiko terbalik
  • Keadaan ini boleh menyebabkan kerugian yang lebih besar jika trend berbalik.
  • WMA rata-rata kadang-kadang tidak cukup sensitif untuk mengenal pasti perubahan trend
  • Tidak mudah untuk mengoptimumkan parameter, memerlukan banyak percubaan dan kesilapan
  • Risiko penarikan balik lebih tinggi, perlu menguruskan dana dengan teliti

Anda boleh mengurangkan risiko dengan mengambil langkah-langkah berikut:

  • Optimumkan parameter untuk menjadikan jarak lebih stabil dan boleh dipercayai
  • Menambah penilaian lain untuk mengelakkan kenaikan
  • SIZE yang lebih kecil, fokus pada pengurusan wang
  • Mempertimbangkan untuk menyertai mekanisme kemasukan semula

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan parameter

Mencari kombinasi parameter terbaik dengan menguji pelbagai parameter Length.

  1. Menambah penilaian lain

Sebagai contoh, apabila harga menembusi landasan, masuk lebih banyak jika MACD juga bergolek pada masa yang sama.

  1. Pengoptimuman Hentikan Kerosakan

Boleh dioptimumkan untuk tracking stop loss yang elastis, dan bukan hanya untuk break-through stop loss.

  1. Menambah mekanisme kemasukan semula

Selepas berhenti keluar, jika trend berterusan, anda boleh menetapkan syarat masuk semula dan menjejaki trend sekali lagi.

  1. Optimumkan pengurusan kedudukan

Anda boleh mengubah kedudukan dagangan anda secara dinamik mengikut turun naik dan turun naik pasaran.

ringkaskan

Strategi ini secara keseluruhan lebih sesuai untuk keadaan trend, menilai arah dan kekuatan trend melalui lintasan dan lintasan turun naik pada kadar turun naik, dan bekerjasama dengan garis rata-rata WMA untuk membentuk kawasan perdagangan yang lebih dipercayai, sehingga menghasilkan titik jual beli yang pecah. Tetapi ada juga beberapa masalah, seperti penilaian trend yang terlewat, cara menghentikan kerugian dapat diperbaiki, dan lain-lain.

Kod sumber strategi
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
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/
// © wbburgin

//@version=5
strategy("Volatility Range Breakout Strategy [wbburgin]", shorttitle = "VRB Strategy [wbburgin]", overlay=true,
 pyramiding=20,max_bars_back=2000,initial_capital=10000)

wma(float priceType,int length,float weight) =>
    norm = 0.0
    sum = 0.0
    for i = 0 to length - 1
        norm := norm + weight
        sum := sum + priceType[i] * weight
    sum / norm

// This definition of volatility uses the high-low range divided by the average of that range.
volatility(source,length) =>
    h = ta.highest(source,length)
    l = ta.lowest(source,length)
    vx = 2 * (h - l) / (h + l)
    vx

vm1 = input.int(100,"Average Length")
volLen = input.int(100,"Volatility Length")
vsrc = input.source(close,"Volatility Source")
cross_type = input.source(close,"Exit Source")
exit_type = input.string("Volatility MA",options=["Volatility MA","Range Crossover"],title="Exit Type")

volatility = volatility(vsrc,volLen)

highband1 = close + (close * volatility)
lowband1 = close - (close * volatility)
hb1 = wma(highband1,vm1,volatility)
lb1 = wma(lowband1,vm1,volatility)
hlavg = math.avg(hb1,lb1)

upcross = ta.crossover(high,hb1)    //Crossing over the high band of historical volatility signifies a bullish breakout
dncross = ta.crossunder(low,lb1)    //Crossing under the low band of historical volatility signifies a bearish breakout

vlong = upcross
vshort = dncross
vlong_exit = switch
    exit_type == "Volatility MA" => ta.crossunder(cross_type,hlavg)
    exit_type == "Range Crossover" => ta.crossunder(cross_type,hb1)
vshort_exit = switch
    exit_type == "Volatility MA" => ta.crossover(cross_type,hlavg)
    exit_type == "Range Crossover" => ta.crossover(cross_type,lb1)

if vlong
    strategy.entry("Long",strategy.long)
if vlong_exit
    strategy.close("Long")
if vshort
    strategy.entry("Short",strategy.short)
if vshort_exit
    strategy.close("Short")

plot(hlavg,color=color.white,title="Weighted Volatility Moving Average")
t = plot(hb1,color=color.new(color.red,50),title="Volatility Reversal Band - Top")
b = plot(lb1,color=color.new(color.green,50),title="Volatility Reversal Band - Bottom")

alertcondition(vlong,"Volatility Long Entry Signal")
alertcondition(vlong_exit,"Volatility Long Exit Signal")
alertcondition(vshort,"Volatility Short Entry Signal")
alertcondition(vshort_exit,"Volatility Short Exit Signal")

fill(t,b,color=color.new(color.aqua,90))