Strategi silang spiral dengan pengesahan purata bergerak

Penulis:ChaoZhang, Tarikh: 2024-02-02 14:50:08
Tag:

img

Ringkasan

Strategi ini menggabungkan petunjuk pusaran dan garis purata bergerak untuk mengenal pasti hala tuju dan kekuatan trend harga untuk menjana isyarat panjang dan pendek yang berpotensi. Apabila garis pusaran positif (VI +) melintasi di atas garis pusaran negatif (VI-), setiap persimpangan disorot pada carta. Jika harga penutupan di atas garis purata bergerak, isyarat panjang dihasilkan. Apabila VI- melintasi di atas VI +, jika harga penutupan di bawah garis purata bergerak, isyarat pendek dihasilkan.

Logika Strategi

  1. Indikator Vortex: terdiri daripada dua garis - Vortex Positive (VI+) dan Vortex Negative (VI-).

  2. Moving Average (MA): Menggunakan kaedah Moving Average yang dipilih (SMA, EMA, SMMA, WMA atau VWMA) untuk meluruskan data harga.

  3. Menentukan Isyarat Panjang dan Singkat: Apabila VI + melintasi di atas VI-, setiap persimpangan disorot. Jika penutupan di atas Garis Smoothing, isyarat panjang dihasilkan. Apabila VI- melintasi di atas VI+, jika penutupan di bawah Garis Smoothing, isyarat pendek dihasilkan.

Kelebihan

  1. Menggabungkan pengenalan trend dan penyelarasan untuk menangkap trend di pasaran trend, mengelakkan isyarat palsu di pasaran bergelora.

  2. Indikator Vortex secara berkesan mengenal pasti arah trend dan kekuatan.

  3. Logik strategi yang mudah dan jelas, mudah difahami dan dilaksanakan.

  4. Parameter yang boleh disesuaikan, menyesuaikan diri dengan persekitaran pasaran yang berbeza.

Risiko

  1. Boleh menghasilkan isyarat palsu dan whipsaws di pasaran yang terhad atau tanpa trend.

  2. Tetapan parameter yang tidak sesuai boleh memberi kesan kepada prestasi strategi. Sebagai contoh, Purata Bergerak yang terlalu pendek mempunyai keupayaan pelusukan yang lemah dan yang lebih lama tertinggal dalam mengenali perubahan trend.

  3. Tidak dapat melindungi daripada turun naik harga yang melampau daripada peristiwa besar yang tidak dijangka.

Peningkatan

  1. Sertakan penunjuk lain seperti jumlah untuk menentukan kebolehpercayaan trend.

  2. Mengoptimumkan parameter untuk mengimbangi trend-mengikuti dan penapisan bunyi bising purata bergerak.

  3. Tambah stop loss kepada loss kawalan.

  4. Menggunakan pembelajaran mesin untuk pengoptimuman parameter automatik.

  5. Memasukkan modul pengurusan risiko untuk menyesuaikan saiz kedudukan.

Kesimpulan

Strategi ini menggabungkan dengan berkesan Indikator Vortex dan Purata Bergerak untuk menangkap trend. Ia mengenal pasti arah trend sambil mempunyai beberapa keupayaan penapisan bunyi untuk mengurangkan isyarat palsu. Logiknya mudah dan fleksibel untuk digunakan, berfungsi dengan baik di pasaran trend. Penambahbaikan lanjut dalam kawalan risiko dapat dicapai dengan menggabungkan lebih banyak penapisan, mengoptimumkan parameter, dan menambah kerugian berhenti.


/*backtest
start: 2023-02-01 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © DraftVenture

//@version=5
strategy("Vortex + Moving Average Strategy", overlay=true)

//Vortex settings
period_ = input.int(14, title="Vortex Length", minval=2)
VMP = math.sum( math.abs( high - low[1]), period_ )
VMM = math.sum( math.abs( low - high[1]), period_ )
STR = math.sum( ta.atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR
plot(VIP, title="VI +", color=color.white)
plot(VIM, title="VI -", color=color.white)

len = input.int(9, minval=1, title="MA Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.sma(src, len)
plot(out, color=color.blue, title="MA", offset=offset)

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")

smoothingLine = ma(out, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)

// Determine long and short conditions
longCondition = ta.crossover(VIP, VIM) and close > smoothingLine
shortCondition = ta.crossunder(VIP, VIM) and close < smoothingLine
crossCondition = ta.crossunder(VIP, VIM) or ta.crossunder(VIM, VIP)

// Strategy entry and exit logic
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

bgcolor(crossCondition ? color.new(color.white, 80) : na)

// Strategy by KP

Lebih lanjut