
Strategi ini menggabungkan spiral dan purata bergerak untuk mengenal pasti arah dan kekuatan trend harga untuk menghasilkan isyarat jual-beli dan penyingkiran yang berpotensi. Apabila garis indikator spiral positif menembusi garis indikator spiral negatif, titik persimpangan ini akan ditandakan di carta, dan jika harga penutupan lebih tinggi daripada purata bergerak, maka akan menghasilkan isyarat penyingkiran.
Indikator spiral: terdiri daripada garis indikator spiral positif ((VI +) dan garis indikator spiral negatif ((VI -)) yang digunakan untuk mengenal pasti arah dan kekuatan trend harga.
Rata-rata bergerak: Menggunakan kaedah rata-rata bergerak pilihan anda (SMA, EMA, SMMA, WMA atau VWMA) untuk melonggarkan data harga, garis halus yang dihasilkan dikenali sebagai garis halus.
Tentukan isyarat plus dan minus: Tanda titik persimpangan apabila VI+ melintasi VI-dan menghasilkan isyarat plus jika harga tutup lebih tinggi daripada garis lurus; isyarat minus apabila VI+ melintasi VI-dan menghasilkan isyarat minus jika harga tutup lebih rendah daripada garis lurus
Gabungan dengan keunggulan pengenalan trend dan penapis licin, ia dapat menangkap trend dalam pasaran yang sedang tren dan mengelakkan isyarat yang salah dalam pasaran yang bergolak.
Indikator spiral dapat mengesan arah dan kekuatan trend dengan berkesan. Rata-rata bergerak dapat menyaring sebahagian daripada kebisingan.
Logik strategi mudah difahami dan dilaksanakan.
Parameter yang boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Dalam pasaran yang tidak jelas dan tidak mempunyai trend yang jelas, isyarat yang salah dan kemerosotan SERIAL mungkin berlaku.
Tetapan parameter yang tidak betul juga boleh mempengaruhi prestasi strategi. Contohnya, penapisan yang terlalu pendek untuk panjang purata bergerak tidak berkesan, dan terlalu panjang untuk mengiktiraf perubahan trend yang terlewat.
Tidak dapat bertindak sebagai pencegahan terhadap peristiwa yang tidak dijangka, seperti perubahan yang teruk dalam keadaan selepas peristiwa kewangan yang besar.
Ia boleh digunakan bersama-sama dengan petunjuk lain, seperti petunjuk jumlah transaksi, untuk menentukan kebolehpercayaan trend.
Tetapan parameter pengoptimuman yang mengimbangi trend tracking dan penapisan bunyi pada purata bergerak.
Menambah strategi henti kerugian untuk mengawal kerugian.
Mengoptimumkan parameter secara automatik menggunakan kaedah pembelajaran mesin dan sebagainya.
Modul pengurusan risiko untuk menyesuaikan kedudukan.
Strategi ini mencapai kesan tangkapan trend yang sangat baik dengan menggabungkan indikator spiral dan purata bergerak dengan mudah dan berkesan. Ia mempunyai kebolehan penapisan bunyi tertentu sambil mengenal pasti arah trend, yang dapat mengurangkan isyarat yang salah. Secara keseluruhan, logik strategi ringkas, penggunaan fleksibel, dan prestasi yang lebih baik dalam pasaran yang sedang tren. Dengan memperkenalkan lebih banyak kaedah penapisan, pengaturan parameter yang dioptimumkan dengan sewajarnya, kawalan risiko dapat ditingkatkan lagi.
/*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