Strategi Pelacakan Tren Multi Timeframe

Penulis:ChaoZhang, Tanggal: 2023-11-14 14:29:39
Tag:

img

Gambaran umum

Strategi ini menggabungkan rata-rata bergerak, MACD dan RSI di beberapa kerangka waktu untuk mengidentifikasi arah tren dan memperdagangkan tren indeks S&P500.

Logika Strategi

  1. Rata-rata bergerak sederhana 10 hari menilai tren harga.

  2. MACD menilai kekuatan momentum. Hal ini menghitung perbedaan antara 12 dan 21 hari eksponensial bergerak rata-rata, dan silang antara garis MACD dan garis sinyal menghasilkan sinyal perdagangan.

  3. RSI 14 hari dan MA 50 hari dihitung. RSI yang melintasi di atas MA adalah sinyal bullish, dan melintasi di bawah adalah sinyal bearish.

  4. Kerangka waktu 1 menit, 3 menit dan 5 menit mengkonfirmasi konsistensi tren.

  5. Ketika harga melintasi di atas MA 10 hari, RSI melintasi di atas MA, dan garis MACD melintasi di atas garis sinyal, sinyal beli dihasilkan.

Keuntungan

  1. Menggabungkan indikator meningkatkan akurasi sinyal. MA 10 hari menilai tren utama, MACD menentukan kekuatan momentum, dan RSI mengkonfirmasi tingkat overbought / oversold. Kombinasi indikator saling memverifikasi dan mengurangi perdagangan yang salah.

  2. Konfirmasi beberapa kerangka waktu menghindari kebisingan pasar. Konfirmasi ganda di kerangka waktu 1 menit, 3 menit dan 5 menit memastikan penampilan sinyal serentak dan menyaring sinyal palsu.

  3. Pola grafik membantu penilaian visual untuk keandalan. Analisis pola grafis menghindari tingkat overbought / oversold yang ekstrim dan mengurangi risiko kerugian.

  4. Frekuensi perdagangan menengah cocok untuk perdagangan indeks. MA 10 hari sebagai indikator utama mencegah perdagangan yang berlebihan, menghindari biaya transaksi tambahan dari overtrading.

Risiko

  1. Kegagalan untuk mendeteksi pembalikan mendadak dalam peristiwa irasional. gejolak pasar seperti itu mengganggu model dan harus mengurangi ukuran posisi untuk pengendalian risiko.

  2. Pengaturan parameter tetap tanpa memperhitungkan perubahan kondisi pasar. Parameter harus disesuaikan secara dinamis untuk berbagai rezim pasar dalam perdagangan langsung.

  3. Sinyal masuk harus disesuaikan dengan slippage untuk meningkatkan likuiditas yang dapat dijalankan.

  4. Beberapa kerangka waktu meningkatkan keterlambatan sinyal. Pengendalian risiko yang tepat diperlukan untuk meminimalkan kerugian akibat keterlambatan selama peristiwa tiba-tiba.

Peningkatan

  1. Menggabungkan mekanisme stop loss seperti trailing stop loss dan persentase stop loss untuk mengendalikan kerugian perdagangan tunggal.

  2. Mengoptimalkan pengaturan parameter dinamis untuk beradaptasi dengan pasar yang berkembang dan meningkatkan ketahanan strategi.

  3. Pertimbangkan perubahan rezim pasar dari peristiwa penting untuk menghindari kejutan model.

  4. Menghitung biaya perdagangan seperti slippage dan menyesuaikan titik masuk/keluar untuk eksekusi yang lebih baik.

  5. Uji input harga yang berbeda seperti candlestick sebagai konfirmasi sinyal untuk mendiversifikasi validasi multi timeframe.

  6. Menggunakan algoritma pembelajaran mesin pada data besar untuk mengotomatisasi optimasi strategi.

Kesimpulan

Strategi ini memperdagangkan tren S&P500 secara efektif melalui identifikasi tren dengan beberapa indikator dan konfirmasi sinyal di seluruh kerangka waktu. Kekuatannya terletak pada akurasi sinyal yang tinggi dan ketahanan terhadap kebisingan, tetapi pengendalian risiko dan penyesuaian parameter dinamis diperlukan.


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 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/
// USE HEIEN ASHI, 1 min, SPX 500 USD OANDA
// © connor2279
//@version=5
strategy(title="SPX Strategy", shorttitle="SPXS", overlay=true)

//SMA
len1 = 10
src1 = input(close, title="SMA Source #1")
out1 = ta.sma(src1, len1)
plot(out1, title="SMA #1", color=close >= out1 ? color.lime : color.red, linewidth=2)

data_over = ta.crossover(close, out1)
dataO = close >= out1
data_under = ta.crossunder(close, out1)
dataU = close < out1

bgcolor(color=ta.crossover(close, out1) ? color.new(color.lime, 90) : na)
bgcolor(color=ta.crossunder(close, out1) ? color.new(color.red, 90) : na)     

//Norm MacD
sma = 12
lma = 21
tsp = 10
np = 50
    
sh = ta.ema(close,sma)  

lon= ta.ema(close,lma) 

ratio = math.min(sh,lon)/math.max(sh,lon)

Mac = ratio - 1
if(sh>lon)
    Mac := 2-ratio - 1
else
    Mac := ratio - 1

MacNorm = ((Mac-ta.lowest(Mac, np)) /(ta.highest(Mac, np)-ta.lowest(Mac, np)+.000001)*2)- 1

MacNorm2 = MacNorm

if(np<2)
    MacNorm2 := Mac
else
    MacNorm2 := MacNorm
    
Trigger = ta.wma(MacNorm2, tsp)

trigger_above = Trigger >= MacNorm
trigger_under = Trigger < MacNorm
plotshape(ta.crossover(Trigger, MacNorm2), style=shape.triangledown, color=color.red)
plotshape(ta.crossunder(Trigger, MacNorm2), style=shape.triangledown, color=color.lime)

//RSI / SMA RSI
swr=input(true,title="RSI")
src = close
len = 14
srs = 50
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
mr = ta.sma(rsi,srs)
rsi_above = rsi >= mr
rsi_under = rsi < mr

//All
buySignal = rsi_above and trigger_under and dataO
shortSignal = rsi_under and trigger_above and dataU
bgcolor(color=buySignal ? color.new(color.lime,97) : na)     
bgcolor(color=shortSignal ? color.new(color.red, 97) : na)     
     
sellSignal = ta.cross(close, out1) or ta.cross(Trigger, MacNorm2) or ta.cross(rsi, mr)
if (buySignal)
    strategy.entry("LONG", strategy.long, 1)

if (shortSignal)
    strategy.entry("SHORT", strategy.short, 1)

// Submit exit orders
strategy.close("LONG", when=sellSignal)
strategy.close("SHORT", when=sellSignal)

Lebih banyak