Strategi Mengikuti Trend Rangka Berbilang Masa


Tarikh penciptaan: 2023-11-14 14:29:39 Akhirnya diubah suai: 2023-11-14 14:29:39
Salin: 1 Bilangan klik: 667
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Rangka Berbilang Masa

Gambaran keseluruhan

Strategi ini menggunakan gabungan garis rata-rata, MACD dan RSI untuk mengenal pasti arah trend dalam pelbagai jangka masa, dan membolehkan SPX500 untuk mengikuti trend.

Prinsip Strategi

  1. Menggunakan purata bergerak mudah 10 hari untuk menentukan arah trend harga. Apabila harga naik melalui garis 10 hari, naik, turun melalui penurunan.

  2. Menggunakan MACD untuk menentukan pergerakan. Mengira perbezaan purata bergerak indeks pada 12 dan 21, kemudian mengenal pasti isyarat beli dan beli melalui perbezaan garis laju dan perlahan melalui garis laju.

  3. Hitung RSI 14 hari dan garis purata 50 hari, RSI di atas garis purata sebagai isyarat bullish dan di bawah sebagai isyarat bearish.

  4. Pengesahan keserasian trend melalui timeframe 1 minit, 3 minit dan 5 minit

  5. Sinyal beli dihasilkan apabila harga di atas melintasi garis 10 hari, RSI melintasi garis rata-rata, MACD melintasi garis pendek; apabila harga di bawah melintasi garis 10 hari, RSI melintasi garis rata-rata, MACD melintasi garis pendek menghasilkan isyarat jual.

Kelebihan Strategik

  1. Kumpulan pelbagai petunjuk mengenal pasti trend, meningkatkan ketepatan isyarat. Garis purata 10 hari menentukan arah trend utama, MACD menentukan momentum yang kuat, RSI mengesahkan overbought dan oversold.

  2. Pengesahan jangka masa berbilang untuk mengelakkan gangguan pasaran. Pengesahan jangka masa 1 minit, 3 minit, 5 minit untuk memastikan sinkronisasi isyarat dan penapisan isyarat palsu.

  3. Grafik membantu menentukan ciri-ciri bentuk harga, mengelakkan kawasan ekstrem tempat membeli dan menjual, mengurangkan risiko kerugian.

  4. Frekuensi dagangan adalah sederhana, sesuai dengan ciri dagangan indeks. Menggunakan garis purata 10 hari sebagai penunjuk penghakiman utama, frekuensi dagangan tidak terlalu tinggi, mengelakkan kos dagangan yang berlebihan dengan melakukan dagangan berulang.

Risiko Strategik

  1. Kegagalan untuk mengenal pasti kejadian yang disebabkan oleh kejadian yang tidak dijangka. Kejadian yang tidak rasional dapat mengganggu penilaian model, dan risiko penghindaran kedudukan harus dikurangkan.

  2. Tetapan parameter tetap, tidak mempertimbangkan perubahan persekitaran pasaran. Dalam pertempuran sebenar, parameter harus disesuaikan dengan dinamik persekitaran bandar besar, supaya strategi menyesuaikan diri dengan pelbagai keadaan.

  3. Titik jual beli terlalu ideal, pelaksanaan sebenar sukar. Faktor-faktor seperti kos titik geser harus disesuaikan dengan baik untuk menjadikan isyarat lebih dapat dilaksanakan.

  4. Kerangka masa berbilang meningkatkan kelewatan dalam membuat keputusan. Pengendalian angin harus dilakukan untuk keadaan yang tidak dijangka dan mengurangkan kerugian akibat kelewatan.

Arah pengoptimuman strategi

  1. Menambah mekanisme penangguhan kerugian, seperti penangguhan bergerak, penangguhan peratusan, dan lain-lain, untuk mengawal kerugian tunggal.

  2. Mengoptimumkan parameter untuk menyesuaikan parameter dinamik dengan keadaan pasaran dan meningkatkan kestabilan strategi.

  3. Dalam kombinasi dengan kawalan angin peristiwa panas pasaran, mengelakkan peristiwa besar yang memberi kesan kepada strategi.

  4. Mengambil kira kos transaksi sebenar seperti slippage, menyesuaikan titik jual beli untuk membolehkan isyarat dilaksanakan.

  5. Uji kaedah penilaian yang berbeza, seperti K-line, dan lain-lain, sebagai sumber pengesahan isyarat, yang kaya dengan kaedah pengesahan pelbagai kerangka masa.

  6. Menambah algoritma pembelajaran mesin, model latihan data besar, parameter strategi pengoptimuman automatik.

ringkaskan

Strategi ini membolehkan perdagangan untuk mengesan trend SPX500 dengan cara mengenal pasti trend pelbagai petunjuk, dan mengesahkan isyarat pelbagai jangka masa. Kelebihan strategi ini adalah ketepatan isyarat yang tinggi, dan keupayaan gangguan bunyi yang kuat, tetapi perlu berhati-hati dalam mengawal risiko dan mengekalkan optimasi dinamik parameter strategi. Sebagai percubaan yang berkesan untuk mengoptimumkan strategi purata bergerak sederhana, strategi ini memberikan permulaan dan pengajaran yang berguna untuk mengoptimumkan strategi perdagangan kuantitatif.

Kod sumber strategi
/*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)