Strategi Pengesanan Trend Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-01-29 11:46:15
Tag:

img

Ringkasan

Ini adalah strategi perdagangan kuantitatif berdasarkan trend. Ia terutamanya menggunakan tiga garis purata bergerak dengan tempoh yang berbeza, digabungkan dengan penunjuk ATR, untuk mengesan trend pasaran dan membantu menentukan masa masuk dan keluar.

Prinsip

Strategi ini menggunakan tiga garis purata bergerak 9 hari (jangka pendek), 15 hari (jangka sederhana), dan 24 hari (jangka panjang). Di antara mereka, garis 9 hari dan 15 hari digunakan untuk menentukan arah trend dan masa kemasukan, sementara garis 24 hari digunakan untuk menentukan mengambil keuntungan dan stop-loss. Pada masa yang sama, strategi ini juga menggabungkan penunjuk ATR untuk menyesuaikan secara dinamik garis purata bergerak untuk menyesuaikan diri dengan lebih baik dengan turun naik pasaran.

Secara khusus, apabila garis purata bergerak jangka pendek melintasi di atas garis purata bergerak jangka sederhana, dan harga penutupan lebih besar daripada garis purata bergerak jangka pendek, ia menunjukkan bahawa trend itu mula muncul, dan kedudukan panjang boleh ditubuhkan pada ketika ini.

Di samping itu, strategi ini juga menggunakan warna bar untuk secara intuitif memaparkan arah trend. Bar berwarna hijau apabila garis jangka pendek berada di atas garis jangka sederhana, dan merah apabila di bawah garis jangka panjang.

Kelebihan

  1. Menggunakan gabungan tiga garis purata bergerak dengan tempoh yang berbeza boleh menilai arah trend dengan lebih tepat
  2. Menggunakan penyesuaian dinamik garis purata bergerak berasaskan ATR menyesuaikan diri dengan lebih baik dengan pasaran yang tidak menentu
  3. Menetapkan mekanisme stop-loss / mengambil keuntungan yang panjang dan pendek menguruskan risiko dengan berkesan
  4. Kesan visual warna bar membentuk isyarat corak yang berkesan, menjadikan tindakan perdagangan lebih jelas

Risiko dan Pengoptimuman

  1. Cenderung menghasilkan isyarat palsu di pasaran terhad julat
  2. Tetapan parameter yang tidak betul (contohnya parameter tempoh) boleh membawa kepada perdagangan berlebihan atau kehilangan peluang kemasukan yang baik
  3. Pertimbangkan untuk menggabungkan penapis lain untuk isyarat kemasukan, seperti jumlah, MACD dll.
  4. Kombinasi parameter yang berbeza boleh diuji untuk mencari parameter optimum

Kesimpulan

Secara keseluruhan, ini adalah strategi trend yang agak kukuh. Ia dapat menangkap trend jangka menengah hingga panjang dengan berkesan, sambil menetapkan mekanisme berhenti kerugian / mengambil keuntungan untuk mengawal risiko. Tetapi strategi ini sensitif terhadap parameter dan keadaan pasaran, yang memerlukan pengoptimuman lanjut untuk menyesuaikan diri dengan lebih banyak persekitaran pasaran.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © ceyhun

//@version=4
strategy("Chaloke System Strategy",overlay=true)

P1=input(9,title="ShortTerm Period")
P2=input(15,title="MidTerm Period")
P3=input(24,title="LongTerm Period")
P4=input(5,title="Invesment Term")
P5=input(5,title="ATR Period")
Barcolor=input(true,title="Barcolor")

Sm=2*P5/10
ATRX=Sm*atr(P4)
S=ema(close,P1)-ATRX
M=ema(close,P2)-ATRX
Lg=ema(close,P3)-ATRX

Sht=iff(close==highest(close,3),S,ema(close[1],P1)-ATRX)
Mid=iff(close==highest(close,3),M,ema(close[1],P2)-ATRX)
Lng=iff(close==highest(close,3),Lg,ema(close[1],P3)-ATRX)

colors=iff(Sht>Mid and close > Sht ,color.green,iff(close < Lng or Sht<Lng,color.red,color.black))

plot(Sht,"Short",color=color.green,linewidth=2)
plot(Mid,"Middle",color=color.black,linewidth=2)
plot(Lng,"Long",color=color.red,linewidth=2)

barcolor(Barcolor ? colors :na)
   
long =  crossover(Sht,Mid) and close > Sht
short = crossunder(Sht,Lng) or close < Lng

if long
    strategy.entry("Long", strategy.long, comment="Long")
    
if short
    strategy.entry("Short", strategy.short, comment="Short")

alertcondition(long, title='Long', message='Chaloke System Alert Long')
alertcondition(short, title='Short', message='Chaloke System Alert Short')

Lebih lanjut