Strategi Saluran Purata Bergerak Bertiga untuk Tambang Bersabar Maklumat Bernilai dari Garis Candlestick

Penulis:ChaoZhang, Tarikh: 2024-02-01 11:12:47
Tag:

img

Ringkasan

Strategi saluran purata bergerak berganda menggunakan beberapa penunjuk purata bergerak untuk menganalisis carta lilin dengan mendalam dan menggali peraturan tersembunyi di sebalik turun naik harga, dengan itu mencapai perdagangan arbitraj berisiko rendah.

Prinsip-prinsip

Strategi ini menumpuk pelbagai metrik EMA di atas Bollinger Bands untuk membina saluran harga dan menemui corak dalam turun naik harga.

  1. Penunjuk BodyResistanceChannel digunakan untuk merangka tahap rintangan badan lilin.
  2. Indikator Sokongan/Rintangan digunakan untuk menarik tahap sokongan dan rintangan berbilang hari.
  3. Sistem EMA berganda membantu menentukan arah trend.
  4. Indikator Hull MA meluruskan lengkung harga.

Atas asas ini, peluang pembalikan dikenal pasti melalui pengenalan corak untuk merumuskan strategi arbitrase.

Kelebihan

Kelebihan strategi ini termasuk:

  1. Membina saluran harga dengan pelbagai EMAS membantu menentukan trend harga dengan jelas.
  2. Indikator Hull MA secara berkesan merata keluar harga pecah.
  3. Menggabungkan corak pembalikan dan penunjuk saluran membolehkan perdagangan yang berkemungkinan tinggi dan berisiko rendah.
  4. Membina sistem penunjuk pelbagai lapisan memastikan isyarat perdagangan yang stabil dan boleh dipercayai.

Analisis Risiko

Risiko berpotensi strategi ini juga wujud:

  1. Risiko kerugian besar apabila saluran harga dilanggar.
  2. Risiko isyarat yang salah apabila pengenalan corak pembalikan salah.
  3. Risiko merosot kualiti isyarat apabila parameter penunjuk tidak sesuai.

Arahan pengoptimuman

Arah pengoptimuman utama termasuk:

  1. Mengoptimumkan kombinasi parameter tempoh EMA untuk menyesuaikan diri dengan keadaan pasaran.
  2. Sesuaikan tahap stop loss untuk memaksimumkan pulangan setiap perdagangan sambil meminimumkan risiko kerugian setiap perdagangan.
  3. Memperkenalkan modul ukuran kedudukan dinamik berdasarkan turun naik untuk menguruskan risiko dengan berkesan.
  4. Menggunakan teknologi pembelajaran mendalam untuk menemui lebih banyak corak harga dan meningkatkan kualiti isyarat.

Kesimpulan

Strategi saluran purata bergerak berganda menggali secara mendalam keteraturan pergerakan harga dengan kestabilan dan kecekapan, layak untuk aplikasi jangka panjang dan pengoptimuman berterusan.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//╭╮╱╱╭╮╭╮╱╱╭╮
//┃╰╮╭╯┃┃┃╱╱┃┃
//╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮
//╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫
//╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃
//╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯
//╭━━━┳╮╱╱╱╱╱╱╱╭╮
//┃╭━╮┃┃╱╱╱╱╱╱╱┃┃
//┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃
//┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃
//┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮
//╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯
//━╯
// http://www.vdubus.co.uk/
strategy(title='Vdub FX SniperVX3 / Strategy  v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:', defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = request.security(syminfo.tickerid, Piriod, open)
ch2 = request.security(syminfo.tickerid, Piriod, close)
longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

Lebih lanjut