Strategi Pengesanan Dual AlphaTrend

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

img

Ringkasan

Strategi pengesanan berganda AlphaTrend berdagang berdasarkan isyarat beli dan jual yang dihasilkan oleh penunjuk AlphaTrend. Ia membuka kedudukan panjang dan pendek di kawasan di mana AlphaTrend menghasilkan isyarat beli dan jual.

Logika Strategi

Inti dari strategi penjejakan berganda AlphaTrend adalah penunjuk AlphaTrend. Penunjuk AlphaTrend mengira jalur atas dan bawah berdasarkan ATR dan harga adaptif (harga penutupan atau harga purata berat volum). Kaedah pengiraan khusus adalah:

Band Atas = Rendah Terendah - ATR * Pengganda Band bawah = Tinggi tertinggi + ATR * Pengganda

Di mana ATR adalah julat sebenar purata dalam tempoh tertentu dan pengganda adalah parameter yang boleh disesuaikan. Apabila harga berada di atas band atas, garis penunjuk mendekati band atas. Apabila harga berada di bawah band bawah, garis penunjuk mendekati band bawah. Oleh itu AlphaTrend membentuk saluran adaptif.

Strategi pengesanan berganda AlphaTrend menubuhkan kedudukan panjang dan pendek berdasarkan isyarat yang dihasilkan oleh AlphaTrend. Logik tertentu adalah:

  • Pergi panjang apabila harga melintasi di atas AlphaTrend;
  • Pergi pendek apabila harga melintasi di bawah AlphaTrend.

Ini melengkapkan perdagangan pengesanan dua arah berdasarkan saluran AlphaTrend dinamik.

Analisis Kelebihan

Kelebihan terbesar strategi penjejakan berganda AlphaTrend adalah bahawa ia dapat mengesan perubahan dalam trend pasaran. ATR adaptif dapat menyesuaikan julat saluran mengikut perubahan dalam turun naik pasaran, mengelakkan masalah Bollinger Band tradisional kehilangan keberkesanan kerana pengembangan turun naik.

Di samping itu, AlphaTrend menggabungkan kedua-dua maklumat harga dan jumlah (atau momentum), yang membantu menapis beberapa pecah palsu, meningkatkan kualiti isyarat perdagangan.

Analisis Risiko

Risiko utama strategi penjejakan berganda AlphaTrend berasal dari turun naik pasaran yang besar yang boleh memukul titik kehilangan berhenti. Apabila terdapat pergerakan pasaran yang tidak normal, titik kehilangan berhenti boleh dipecahkan, yang membawa kepada kerugian besar. Ini perlu dikawal dengan betul menyesuaikan parameter ATR dan titik kehilangan berhenti.

Di samping itu, ALPHA sendiri mempunyai beberapa kelewatan. Ia juga boleh menghasilkan isyarat yang salah di sekitar titik perubahan pasaran. Indikator lain harus digunakan untuk mengesahkan isyarat.

Arahan pengoptimuman

Strategi pengesanan berganda AlphaTrend boleh dioptimumkan dalam aspek berikut:

  1. Menggabungkan dengan penunjuk trend untuk menentukan trend pasaran utama untuk mengelakkan perdagangan terhadap trend;
  2. Meningkatkan penapis volum untuk mengelakkan kerugian yang disebabkan oleh pecah palsu bervolume rendah;
  3. Mengoptimumkan parameter penunjuk untuk menjadikan julat saluran lebih sesuai untuk produk yang berbeza;
  4. Tingkatkan algoritma pembelajaran mesin untuk menjadikan saluran lebih pintar.

Melalui pengoptimuman di atas, kestabilan dan keuntungan strategi AlphaTrend dapat ditingkatkan lagi.

Ringkasan

Ringkasnya, strategi pelacakan berganda AlphaTrend adalah cara yang berkesan untuk mengesan perubahan pasaran. Ia menyelesaikan masalah penunjuk teknikal tradisional kehilangan keberkesanan dan juga menggabungkan maklumat jumlah untuk menapis isyarat. Dengan pengoptimuman yang betul, strategi ini boleh 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 lanjut