Purata bergerak melintasi strategi panjang dan pendek


Tarikh penciptaan: 2023-10-24 11:02:52 Akhirnya diubah suai: 2023-10-24 11:02:52
Salin: 0 Bilangan klik: 607
1
fokus pada
1617
Pengikut

Purata bergerak melintasi strategi panjang dan pendek

Gambaran keseluruhan

Strategi ini terutamanya menggunakan garpu mati garpu bergerak rata-rata dan garpu mati garpu K garisan untuk membuat keputusan berlubang. Apabila garpu bergerak rata-rata jangka pendek lebih banyak daripada garpu bergerak rata-rata jangka panjang, apabila garpu bergerak rata-rata jangka pendek lebih rendah daripada garpu bergerak jangka panjang, garpu kosong.

Prinsip Strategi

  1. Hitung purata bergerak EMA1 dan EMA2 dari dua kitaran yang berbeza. EMA1 adalah kitaran pendek, EMA2 adalah kitaran panjang.

  2. Tentukan sama ada EMA1 memakai EMA2, dan jika ya, lakukan lebih banyak.

  3. Tentukan sama ada EMA1 memakai EMA2, dan jika ya, kosongkan.

  4. Menentukan sama ada harga penutupan akan menembusi EMA1 sebagai isyarat masuk.

  5. Mekanisme penarikan diri dari stop loss: menetapkan titik stop loss tetap atau menetapkan stop loss melalui saluran Donchian.

Fungsi utama yang digunakan ialah:

  • ema ((): mengira purata bergerak indeks
  • crossover (((): menentukan sama ada EMA1 memakai EMA2
  • crossunder (((): menentukan sama ada EMA1 menembusi EMA2
  • rising (() /falling ((): menentukan sama ada harga naik atau turun
  • valuewhen(): Mengembalikan nilai yang berbeza mengikut keadaan

Analisis kelebihan

  1. Strategi ini mudah difahami dan dilaksanakan dengan mudah.

  2. Menggunakan ciri-ciri trend pengesanan sistem garis rata, trend dapat dikesan dengan berkesan.

  3. Berpasangan dengan harga penutupan K sebagai masa masuk, anda boleh mengelakkan penembusan palsu.

  4. Kombinasi linear yang fleksibel dengan parameter yang berbeza, sesuai dengan kitaran yang berbeza.

  5. Anda boleh menetapkan mekanisme kawalan risiko untuk menghentikan kerugian.

Analisis risiko

  1. Apabila pasaran berada dalam keadaan goyah, garis rata akan menghasilkan isyarat goyah yang sering, mudah untuk berhenti.

  2. Titik hentian tetap mungkin terlalu kaku dan tidak dapat disesuaikan dengan perubahan pasaran.

  3. Sistem garis rata lebih ketinggalan dan mudah terlepas isyarat pembalikan pada titik perubahan trend.

  4. Keadaan ini memerlukan penilaian yang tepat mengenai kemiringan garis rata untuk mengesan penembusan palsu.

  5. Pilih parameter dengan berhati-hati, kerana kombinasi parameter yang terlalu kerap atau terlewat akan menjejaskan kesan strategi.

Arah pengoptimuman

  1. Anda boleh menggunakan penyambung nol MACD untuk menentukan trend, menapis getaran.

  2. Anda boleh menyertai saluran Donchian untuk menetapkan garis hentian dinamik dan memperbaiki masalah hentian tetap.

  3. Anda boleh menggunakan indikator BRI untuk menilai trend yang kuat dan lemah untuk mengelakkan perdagangan yang tidak berkesan dalam pasaran yang bergolak.

  4. Mengoptimumkan kombinasi parameter rata-rata, menguji keberkesanan sebenar strategi kitaran yang berbeza.

  5. Ia boleh dipertimbangkan untuk menambah purata bergerak tetap untuk mengelakkan kelewatan.

ringkaskan

Strategi ini secara keseluruhan adalah mudah dan jelas, menggunakan strategi perdagangan garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata wang garpu mata

Kod sumber strategi
/*backtest
start: 2023-09-01 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='Mega crypto bot strategy', shorttitle='megacryptobot_Strategy', overlay=true, pyramiding=0, initial_capital=10000, 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 ==================================//
period = input('720')
ch1 = request.security(syminfo.tickerid, period, open)
ch2 = request.security(syminfo.tickerid, period, close)
longCondition = crossover(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, period, close),request.security(syminfo.tickerid, period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

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