Strategi Pelacakan Dual AlphaTrend

Penulis:ChaoZhang, Tanggal: 2024-02-02 15:17:01
Tag:

img

Gambaran umum

Strategi pelacakan ganda AlphaTrend berdagang berdasarkan sinyal beli dan jual yang dihasilkan oleh indikator AlphaTrend. Ini membuka posisi panjang dan pendek di daerah di mana AlphaTrend menghasilkan sinyal beli dan jual.

Logika Strategi

Inti dari strategi pelacakan ganda AlphaTrend adalah indikator AlphaTrend. Indikator AlphaTrend menghitung band atas dan bawah berdasarkan ATR adaptif dan harga (harga penutupan atau harga rata-rata tertimbang volume). Metode perhitungan spesifik adalah:

Band atas = Minimal Minimal - ATR * Multiplier Band bawah = tertinggi tertinggi + ATR * Multiplier

Di mana ATR adalah rentang rata-rata yang benar selama periode tertentu dan pengganda adalah parameter yang dapat disesuaikan. Ketika harga berada di atas band atas, garis indikator mendekati band atas. Ketika harga berada di bawah band bawah, garis indikator mendekati band bawah. Dengan demikian AlphaTrend membentuk saluran adaptif.

Strategi pelacakan ganda AlphaTrend menetapkan posisi panjang dan pendek berdasarkan sinyal yang dihasilkan oleh AlphaTrend.

  • Pergi panjang saat harga melintasi di atas AlphaTrend;
  • Pergi short saat harga melintasi di bawah AlphaTrend.

Ini menyelesaikan perdagangan pelacakan dua arah berdasarkan saluran AlphaTrend dinamis.

Analisis Keuntungan

Keuntungan terbesar dari strategi pelacakan ganda AlphaTrend adalah dapat melacak perubahan tren pasar. ATR adaptif dapat menyesuaikan rentang saluran sesuai dengan perubahan volatilitas pasar, menghindari masalah Bollinger Band tradisional kehilangan efektivitas karena ekspansi volatilitas.

Selain itu, AlphaTrend menggabungkan informasi harga dan volume (atau momentum), yang membantu menyaring beberapa breakout palsu, meningkatkan kualitas sinyal perdagangan.

Analisis Risiko

Risiko utama dari strategi pelacakan ganda AlphaTrend berasal dari fluktuasi pasar yang sangat besar yang dapat mempengaruhi titik stop loss. Ketika ada pergerakan pasar yang tidak normal, titik stop loss dapat rusak, yang menyebabkan kerugian besar. Hal ini perlu dikendalikan dengan menyesuaikan parameter ATR dan titik stop loss dengan benar.

Selain itu, ALPHA sendiri memiliki beberapa keterlambatan. Hal ini juga dapat menghasilkan sinyal yang salah di sekitar titik balik pasar. Indikator lain harus digunakan untuk mengkonfirmasi sinyal.

Arahan Optimasi

Strategi pelacakan ganda AlphaTrend dapat dioptimalkan dalam aspek berikut:

  1. Menggabungkan dengan indikator tren untuk menentukan tren pasar utama untuk menghindari perdagangan melawan tren;
  2. Meningkatkan volume filter untuk menghindari kerugian yang disebabkan oleh low volume false breakout;
  3. Mengoptimalkan parameter indikator untuk membuat rentang saluran lebih cocok untuk produk yang berbeda;
  4. Meningkatkan algoritma pembelajaran mesin untuk membuat saluran lebih cerdas.

Melalui optimalisasi di atas, stabilitas dan profitabilitas strategi AlphaTrend dapat ditingkatkan lebih lanjut.

Ringkasan

Singkatnya, strategi pelacakan ganda AlphaTrend adalah cara yang efektif untuk melacak perubahan pasar. Ini memecahkan masalah indikator teknis tradisional yang kehilangan efektivitas dan juga menggabungkan informasi volume untuk menyaring sinyal. Dengan optimasi yang tepat, strategi ini dapat menjadi alat yang kuat dalam sistem perdagangan kuantitatif.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy('AlphaTrend', shorttitle='AT', overlay=true, format=format.price, precision=2)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=true)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

//plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

//plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))



longCondition = buySignalk and showsignalsk and O1 > K2
if (longCondition)
    
    strategy.entry("BUY", strategy.long, comment = "BUY ENTRY")

shortCondition = sellSignalk and showsignalsk and O2 > K1
if (shortCondition )
    
    strategy.entry("SELL", strategy.short, comment = "SELL ENTRY")













// alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!')
// alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!')

// alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
// alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')



// alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND')
// alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!')

// alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!')
// alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')






Lebih banyak