Aliran Alpha Mengikuti Strategi Henti Kerugian


Tarikh penciptaan: 2023-11-27 15:25:35 Akhirnya diubah suai: 2023-11-27 15:25:35
Salin: 0 Bilangan klik: 835
1
fokus pada
1617
Pengikut

Aliran Alpha Mengikuti Strategi Henti Kerugian

Gambaran keseluruhan

Strategi penarikan trend Alpha adalah strategi penarikan trend Alpha yang dilengkapi dengan mekanisme penarikan dan penarikan, yang dapat mengawal risiko dengan lebih berkesan dan meningkatkan kadar pulangan keseluruhan.

Prinsip Strategi

Strategi ini mula menggunakan indikator Alpha untuk menentukan trend harga, sebagai isyarat bullish apabila indikator Alpha naik, dan sebagai isyarat bearish apabila indikator Alpha turun. Strategi ini menghasilkan isyarat beli dan jual berdasarkan garpu mati garpu indikator Alpha.

Pada masa yang sama, strategi ini mengaktifkan mekanisme tracking stop loss. Tracking stop loss default 10% dari harga penutupan hari, apabila memegang kedudukan multihead, jika harga turun melebihi nilai stop loss, stop loss keluar; apabila memegang kedudukan kosong, jika harga naik melebihi nilai stop loss keluar.

Analisis kelebihan

  1. Trend Alpha mempunyai keupayaan yang lebih baik untuk menentukan trend harga, lebih berkesan daripada rata-rata bergerak biasa.

  2. Mengaktifkan mekanisme tracking stop loss, anda boleh mengawal kerugian tunggal dengan berkesan, mengurangkan risiko.

  3. Strategi ini mempunyai kawalan risiko yang kuat dan dapat mengurangkan kerugian walaupun dalam keadaan buruk.

  4. Strategi ini mempunyai sedikit rujukan dan kecekapan pengiraan yang tinggi, sesuai untuk perdagangan frekuensi tinggi.

Analisis risiko

  1. Strategi ini akan menghasilkan lebih banyak isyarat perdagangan yang tidak perlu apabila diselaraskan secara mendatar, yang akan meningkatkan kos perdagangan dan kehilangan slippage.

  2. Untuk mengaktifkan Tracking Stop, anda perlu menetapkan nisbah stop yang munasabah. Nisbah yang terlalu besar atau terlalu kecil tidak menguntungkan strategi.

  3. Apabila harga token bergelombang secara mendadak, ia akan menyebabkan kemungkinan besar penutupan akan dicetuskan, meningkatkan risiko penjarahan.

  4. Untuk mengoptimumkan parameter berhenti kerugian, anda perlu mempertimbangkan pelbagai faktor seperti sifat parameter, kekerapan perdagangan, dan lain-lain. Anda tidak boleh hanya berusaha untuk memaksimumkan keuntungan.

Risiko di atas boleh dikurangkan dengan cara seperti menyesuaikan parameter penunjuk Alpha, menetapkan Hentian DYNAMIC, memendekkan kitaran perdagangan.

Arah pengoptimuman

  1. Anda boleh menguji parameter penunjuk yang berbeza untuk mencari kombinasi parameter penunjuk Alpha yang lebih sesuai.

  2. Cuba untuk menetapkan stop loss berdasarkan ATR dinamik, supaya ia lebih sesuai dengan turun naik pasaran.

  3. Ia boleh digabungkan dengan isyarat penapisan penunjuk lain, seperti MACD, KD dan lain-lain, untuk menapis beberapa isyarat palsu.

  4. Parameter yang boleh dioptimumkan secara automatik berdasarkan keputusan cakera dan pengukuran semula, menggunakan teknologi pembelajaran mesin untuk meningkatkan pilihan parameter.

ringkaskan

Strategi berhenti kehilangan trend Alpha menggabungkan penghakiman trend dengan kawalan risiko, yang dapat menentukan trend harga dengan berkesan, dan mengunci keuntungan untuk mengurangkan risiko. Berbanding dengan strategi mengikuti trend yang mudah, strategi ini dapat memperoleh keuntungan yang lebih tinggi dan stabil. Dengan pengoptimuman pelbagai aspek, diharapkan untuk mencapai prestasi yang lebih baik.

Kod sumber strategi
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 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 Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
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=false)
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[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #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))


// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
//     strategy.entry('My Long Entry Id', strategy.long)

// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
//     strategy.entry('My Short Entry Id', strategy.short)



longCondition = buySignalk
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = sellSignalk
if (shortCondition)
    strategy.entry("Short", strategy.short)
    

enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01



longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - trailStop)
    math.max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + trailStop)
    math.min(stopValue, shortStopPrice[1])
else
    999999

//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')

    
if enableTrailing
    //EXIT TRADE @ TSL
    if strategy.position_size > 0
        strategy.exit(id='Close Long', stop=longStopPrice)
    if strategy.position_size < 0
        strategy.exit(id='Close Short', stop=shortStopPrice)