Strategi ini menilai tren harga dengan menghitung persilangan rata-rata bergerak ganda, dan mengeluarkan sinyal beli dan jual dengan pembatasan parameter tertentu.
Inti dari strategi ini terletak pada perhitungan rata-rata bergerak cepat dan lambat. Rata-rata bergerak cepat memiliki periode setengah dari total periode rata-rata bergerak, yang lebih sensitif terhadap perubahan harga; rata-rata bergerak lambat memiliki periode total periode rata-rata bergerak, yang mencerminkan perubahan harga lebih lancar.
Selain itu, strategi menetapkan parameter tertentu untuk menghindari perdagangan yang salah. Misalnya, ambang keputusan adalah untuk memastikan bahwa sinyal dikeluarkan hanya ketika perbedaan antara dua rata-rata bergerak melebihi tingkat tertentu; parameter kepercayaan digunakan untuk menyaring fluktuasi harga kecil.
Akhirnya, stop profit dan stop loss digunakan untuk mengendalikan risiko. Jika open profit kurang dari stop loss point atau lebih besar dari stop profit point, posisi akan ditutup. Hal ini secara efektif membatasi kerugian dari satu perdagangan.
Keuntungan terbesar dari strategi ini adalah menggabungkan penilaian tren harga dan karakteristik volatilitas melalui indikator rata-rata bergerak. Menyambung rata-rata bergerak ganda adalah pendekatan teknis yang efektif klasik untuk menentukan tren harga. Dengan optimasi parameter, ini dapat dengan akurat menangkap tren. Parameter kepercayaan dapat secara efektif menyaring pasar yang bergolak dan menghindari perdagangan yang sering salah.
Selain itu, parameter seperti ambang keputusan, stop profit dan stop loss juga dapat sangat mengurangi risiko perdagangan dengan menghindari mengejar tinggi dan menjual rendah.
Risiko utama dari strategi ini adalah kemungkinan sinyal yang salah dari rata-rata bergerak ganda. baik MAs cepat dan lambat adalah rata-rata bergerak tertimbang yang bereaksi lambat terhadap peristiwa mendadak, sehingga kehilangan pembalikan harga jangka pendek. pada saat ini, parameter kepercayaan dapat memberikan konfirmasi ganda.
Selain itu, pengaturan stop profit dan stop loss point yang tidak tepat juga akan meningkatkan risiko. Target profit yang terlalu tinggi dan stop loss point yang terlalu rendah dapat menyebabkan kerugian melebihi harapan. Parameter yang wajar perlu ditetapkan sesuai dengan karakteristik produk perdagangan yang berbeda dan volatilitas.
Strategi dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan periode rata-rata bergerak, menetapkan rata-rata bergerak adaptif untuk memodelkan fluktuasi harga siklus yang berbeda dengan lebih baik;
Menetapkan mekanisme pelacakan dinamis untuk stop profit dan stop loss, menghitung volatilitas secara real time berdasarkan kondisi pasar sehingga titik stop dapat berubah secara dinamis;
Meningkatkan model pembelajaran mesin untuk menilai arah tren harga, memanfaatkan data historis untuk menentukan pergerakan harga saat ini, dan mengurangi sinyal yang salah.
Secara umum, ini adalah strategi perdagangan tren klasik yang sederhana dan efektif. Ini menggunakan silang rata-rata bergerak ganda untuk menentukan tren, menetapkan parameter untuk mengendalikan risiko, dan memiliki konfigurasi yang tinggi untuk perdagangan multi-produk.
/*backtest start: 2023-12-03 00:00:00 end: 2024-01-02 00:00:00 period: 2h 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("Trade Signal", shorttitle="Trade Alert", overlay=true ) keh=input(title="Double HullMA",defval=14, minval=1) dt = input(defval=0.0010, title="Decision Threshold (0.001)", type=float, step=0.0001) SL = input(defval=-10.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=100.00, title="Target Point in $", type=float, 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=(request.security(syminfo.tickerid, '5', close[1])-request.security(syminfo.tickerid, '60', close[1]))/request.security(syminfo.tickerid, '60', 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) aMACD = ema(MACD, MACD_Length) 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) //alerts alertcondition(closelong, title='Close Buy Position', message='Close Buy Position') alertcondition(closeshort, title='Close Short Position', message='Close Short Position') alertcondition(longCondition, title='Buy Signal', message='Buy Signal Alert') alertcondition(shortCondition, title='Sell Signal', message='Sell Signal Alert') //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(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