Strategi Perdagangan Algoritma Jangka Pendek Berbilang Penunjuk

Penulis:ChaoZhang, Tarikh: 2023-09-14 19:46:55
Tag:

Artikel ini memperkenalkan secara terperinci strategi dagangan algoritma jangka pendek yang menggabungkan beberapa penunjuk. Ia menggunakan sekumpulan penunjuk teknikal yang kuat untuk menghasilkan isyarat dagangan pada jangka masa yang lebih rendah seperti carta 15 minit.

I. Logik Strategi

Inti strategi ini adalah menggunakan gabungan pelbagai penunjuk, terutamanya termasuk:

(1) Sistem purata bergerak berganda: Mengira satu purata bergerak Hull yang cepat dan perlahan dan menilai trend berdasarkan persilangan mereka.

(2) Sistem Ichimoku: Mengira penukaran dan garis asas antara lain, dan menentukan trend dan tahap sokongan / rintangan berdasarkan awan Ichimoku.

(3) Saluran Donchian: Membina saluran menggunakan harga tertinggi dan terendah untuk mengenal pasti harga harga.

(4) MACD: Mengira MACD dan garis isyarat, membuat dagangan berdasarkan persilangan mereka.

Hanya apabila penunjuk ini mencapai persetujuan mengenai penilaian trend, isyarat perdagangan yang boleh dipercayai akan dihasilkan.

Ambil kedudukan panjang apabila Hull MA yang cepat melintasi di atas Hull MA yang perlahan, DAN garisan Ichimoku melintasi di atas awan, DAN Saluran Donchian pecah, DAN MACD melintasi di atas garis isyarat.

Harga penutupan bar harian juga dimasukkan untuk mengelakkan terperangkap dalam pembalikan.

Di samping itu, strategi mengandungi logik stop loss dan mengambil keuntungan untuk mengawal risiko dan ganjaran untuk setiap perdagangan.

II. Kelebihan Strategi

Kelebihan terbesar strategi ini adalah pelengkapan gabungan penunjuk, yang meningkatkan kualiti isyarat. penunjuk yang berbeza menilai trend dari pelbagai sudut, hanya bersetuju secara bulat untuk menghasilkan isyarat, mengelakkan batasan penunjuk tunggal.

Kedua, kombinasi pelbagai jangka masa juga merupakan kelebihan yang signifikan.

Akhirnya, mekanisme stop loss dan mengambil keuntungan juga memastikan risiko yang boleh dikawal setiap perdagangan.

III. Risiko yang berpotensi

Walaupun reka bentuk strategi yang baik, risiko perdagangan juga harus diperhatikan:

Pertama, kombinasi pelbagai penunjuk meningkatkan kesukaran pengoptimuman.

Kedua, stop loss boleh dipukul dalam pergerakan trend yang kuat, yang membawa kepada kerugian yang tidak perlu.

Akhirnya, penghakiman pelbagai jangka masa juga boleh memperkenalkan situasi yang mengelirukan yang sukar difahami.

Secara keseluruhan, strategi menggabungkan penunjuk dengan cara saintifik, dan boleh menjadi sistem perdagangan algoritma jangka pendek yang berkesan melalui ujian parameter dan pengoptimuman.

IV. Ringkasan

Ringkasnya, artikel ini telah memperkenalkan secara terperinci strategi dagangan algoritma jangka pendek yang menggabungkan beberapa penunjuk. Ia menggunakan gabungan purata bergerak berganda, Ichimoku, Saluran Donchian, MACD dan banyak lagi untuk meningkatkan kualiti isyarat. Ia juga menggunakan analisis pelbagai jangka masa dan logik stop loss / take profit untuk mengawal risiko. Dengan pengoptimuman, strategi ini boleh menjadi sistem yang cekap untuk perdagangan sistematik jangka pendek.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Custom 15m strat",overlay=true)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", step=0.0001)`
SL = input(defval=-500.00, title="Stop Loss in $", step=1)
TP = input(defval=25000.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],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
d=n1>n2?red:green
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength) //macd
aMACD = ema(MACD, MACD_Length) //signal
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
//plot(longCondition == true ? 4000:4100,title="long")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart

Lebih lanjut