Strategi ini menggabungkan indikator pusaran dan garis rata-rata bergerak untuk mengidentifikasi arah dan kekuatan tren harga untuk menghasilkan sinyal panjang dan pendek potensial. Ketika garis positif pusaran (VI +) melintasi di atas garis negatif pusaran (VI-), setiap silang disorot pada grafik. Jika harga penutupan di atas garis rata-rata bergerak, sinyal panjang dihasilkan. Ketika VI- melintasi di atas VI +, jika harga penutupan di bawah garis rata-rata bergerak, sinyal pendek dihasilkan.
Indikator Vortex: Terdiri dari dua garis - Vortex Positive (VI+) dan Vortex Negative (VI-).
Moving Average (MA): Menggunakan metode Moving Average yang dipilih (SMA, EMA, SMMA, WMA atau VWMA) untuk meratakan data harga.
Menentukan sinyal panjang dan pendek: Ketika VI + melintasi di atas VI-, setiap crossover disorot. Jika penutupan di atas Garis Smoothing, sinyal panjang dihasilkan. Ketika VI- melintasi di atas VI+, jika penutupan di bawah Garis Smoothing, sinyal pendek dihasilkan.
Menggabungkan identifikasi tren dan smoothing untuk menangkap tren di pasar tren, menghindari sinyal palsu di pasar bergolak.
Indikator pusaran secara efektif mengidentifikasi arah tren dan kekuatan.
Logika strategi yang sederhana dan jelas, mudah dipahami dan diimplementasikan.
Parameter disesuaikan, beradaptasi dengan lingkungan pasar yang berbeda.
Dapat menghasilkan sinyal palsu dan whipsaws di pasar yang terikat rentang atau tanpa tren.
Pengaturan parameter yang tidak tepat dapat mempengaruhi kinerja strategi. Misalnya, moving average yang terlalu pendek memiliki kemampuan pelusukan yang buruk dan yang lebih lama tertinggal dalam mengenali perubahan tren.
Tidak dapat melindungi terhadap perubahan harga yang ekstrim dari peristiwa besar yang tidak terduga.
Sertakan indikator lain seperti volume untuk menentukan keandalan tren.
Mengoptimalkan parameter untuk menyeimbangkan trend-mengikuti dan filter kebisingan dari Moving Averages.
Tambahkan stop loss ke kontrol loss.
Menggunakan pembelajaran mesin untuk optimasi parameter otomatis.
Menggabungkan modul manajemen risiko untuk menyesuaikan ukuran posisi.
Strategi ini secara efektif menggabungkan Indikator Vortex dan Moving Averages untuk menangkap tren. Ini mengidentifikasi arah tren sambil memiliki beberapa kemampuan penyaringan kebisingan untuk mengurangi sinyal palsu. Logika sederhana dan fleksibel untuk digunakan, berkinerja baik di pasar tren. Perbaikan lebih lanjut dalam pengendalian risiko dapat dicapai dengan menggabungkan lebih banyak filter, mengoptimalkan parameter, dan menambahkan stop loss.
/*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