Strategi Trend Beradaptasi Gabungan Pelbagai Penunjuk

Penulis:ChaoZhang, Tarikh: 2023-12-19 11:01:05
Tag:

img

Ringkasan

Strategi ini menilai trend dengan tepat dengan menggabungkan penunjuk purata bergerak Hull berganda, penunjuk purata bergerak berwajaran volum, penunjuk MACD dan penunjuk indeks kekuatan sebenar.

Prinsip Strategi

Indikator teras strategi ini adalah purata bergerak Hull berganda, yang dikawal oleh dua parameter keh dan teh. Kedua-dua parameter ini menentukan kitaran garis pantas dan garis perlahan masing-masing. Salib emas dan salib mati yang dibentuk oleh garis pantas dan garis perlahan menilai trend semasa.

Penunjuk penilaian tambahan adalah purata bergerak berwajaran volum meh1. Apabila harga lebih tinggi daripada meh1, ia adalah trend menaik; apabila harga lebih rendah daripada meh1, ia adalah trend menurun.

Satu lagi penunjuk penilaian tambahan ialah MACD. Ia diperolehi dengan mengurangkan purata bergerak pantas dari purata bergerak perlahan untuk mendapatkan MACD, dan kemudian menggunakan purata bergerak MACD untuk mendapatkan garis isyarat. Apabila MACD lebih tinggi daripada garis isyarat, ia adalah trend menaik.

Indikator penilaian tambahan terakhir adalah TSI, yang dikira dengan menyamakan dua kali kadar perubahan harga. Kebesaran nilai mutlaknya mewakili momentum perubahan harga. Dalam keadaan membeli dan menjual, garis isyarat TSI dinilai mengawal masa Masuk dan Keluar.

Dengan menggabungkan isyarat penunjuk ini, trend boleh dinilai dengan tepat, dan parameter boleh diselaraskan secara automatik untuk menyelaraskan dengan pasaran.

Kelebihan

  1. Menggunakan purata bergerak Hull berganda sebagai penunjuk penilaian utama, digabungkan dengan beberapa penunjuk lain, boleh meningkatkan ketepatan penilaian dan mengurangkan isyarat palsu.

  2. Menggunakan penunjuk STI untuk menentukan masa kemasukan dan keluar pasaran boleh mengawal risiko.

  3. Pelbagai parameter yang boleh disesuaikan untuk kebolehsesuaian yang kuat yang boleh menyesuaikan diri dengan perubahan pasaran secara automatik.

  4. Idea gabungan penunjuk dan penyesuaian parameter menjadikan strategi stabil dengan keuntungan berterusan yang kuat.

Analisis Risiko

  1. Walaupun penunjuk TSI digunakan untuk menentukan masa, penunjuk yang digunakan dalam algoritma masih jenis trend.

  2. Tetapan parameter yang tidak betul boleh menyebabkan kegagalan strategi. Parameter perlu ditetapkan dengan munasabah berdasarkan pengalaman.

  3. Gabungan pelbagai penunjuk meningkatkan jumlah pengiraan, yang meningkatkan kemungkinan kesilapan dalam stok data dan tempoh masa yang besar.

  4. Perlu memantau kesan pengiraan penunjuk untuk mengelakkan gangguan data yang tidak normal.

Arah pengoptimuman

  1. Penunjuk tambahan lain seperti BOLL boleh diuji untuk membuat isyarat lebih tepat dan boleh dipercayai.

  2. Mengoptimumkan logik masuk dan keluar, menetapkan stop loss dan mengambil syarat keuntungan untuk mengawal keuntungan dan kerugian tunggal.

  3. Latih dan optimumkan parameter untuk pelbagai jenis untuk menjadikannya lebih sesuai untuk pelbagai jenis.

  4. Meningkatkan modul penyesuaian parameter untuk menyesuaikan parameter strategi secara automatik berdasarkan kesan transaksi baru-baru ini.

Ringkasan

Strategi ini mengintegrasikan kelebihan pelbagai penunjuk dan menggunakan kombinasi penunjuk untuk menilai arah trend. Semasa mengawal risiko, ia meningkatkan ketepatan penghakiman. Melalui pengoptimuman parameter dan pengoptimuman logik, strategi dapat disesuaikan dengan perubahan pasaran, sambil mengurangkan kerugian berturut-turut dan memperoleh keuntungan yang lebih besar. Strategi ini stabil dan boleh digunakan untuk saham, cryptocurrency dan jenis lain untuk jangka panjang.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                                                    Quad-HullMA-cross & VWMA & MacD & TSI combination  <<<<< by SeaSide420 >>>>>>
strategy("MultiCross420", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
keh=input(title="Double HullMA 1",defval=7, minval=1)
teh=input(title="Double HullMA 2",defval=14, minval=1)
meh=input(title="VWMA",defval=1, minval=1)
meh1=vwma(close,round(meh))
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
n2ma3=2*wma(close,round(teh/2))
nma2=wma(close,teh)
diff2=n2ma3-nma2,sqn2=round(sqrt(teh))
n2ma4=2*wma(close[2],round(teh/2))
nma3=wma(close[2],teh)
diff3=n2ma4-nma3,sqn3=round(sqrt(teh))
n3=wma(diff2,sqn2)
n4=wma(diff3,sqn3)
fastLength = input(title="MacD fastLength", defval=7)
slowlength = input(title="MacD slowlength", defval=14)
MACDLength = input(title="MacD Length", defval=3)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
a1=plot(n1,color=c),a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = cross, color=b, linewidth = 3)
a3=plot(n3,color=c),a4=plot(n4,color=c)
plot(cross(n3, n4) ? n1 : na, style = cross, color=b, linewidth = 3)
//a5=plot(meh1,color=c)
long = input(title="TSI Long Length",  defval=5)
short = input(title="TSI Short Length",  defval=3)
signal = input(title="TSI Signal Length",  defval=2)
linebuy = input(title="TSI Upper Line",  defval=4)
linesell = input(title="TSI Lower Line",  defval=-4)
price = close
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
closelong = n1<n2 and n3<n4 and n1>meh1
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n3>n4 and n1<meh1
if (closeshort)
    strategy.close("Short") 
longCondition = strategy.opentrades<1 and n1>n2 and MACD>aMACD and n1<meh1 and n3>n4 and ema(tsi_value, signal)>linesell
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = strategy.opentrades<1  and n1<n2 and MACD<aMACD and n1>meh1 and n3<n4 and ema(tsi_value, signal)<linebuy
if (shortCondition)
    strategy.entry("Short",strategy.short)

Lebih lanjut