Rata-rata pergerakan melintasi strategi panjang dan pendek


Tanggal Pembuatan: 2023-10-24 11:02:52 Akhirnya memodifikasi: 2023-10-24 11:02:52
menyalin: 0 Jumlah klik: 607
1
fokus pada
1617
Pengikut

Rata-rata pergerakan melintasi strategi panjang dan pendek

Ringkasan

Strategi ini terutama menggunakan garpu emas dan garpu mati dari garis rata-rata bergerak dan garis K untuk membuat keputusan berlubang. Lakukan lebih banyak ketika melewati rata-rata bergerak jangka pendek dari rata-rata bergerak jangka panjang, dan kosong ketika melewati rata-rata bergerak jangka pendek dari rata-rata bergerak jangka panjang.

Prinsip Strategi

  1. Hitung rata-rata bergerak dari dua periode yang berbeda EMA1 dan EMA2. EMA1 adalah periode pendek, EMA2 adalah periode panjang.

  2. Periksa apakah EMA1 memakai EMA2, dan jika demikian, lakukan lebih banyak.

  3. Tentukan apakah EMA1 memakai EMA2 dan, jika demikian, kosongkan.

  4. Untuk menentukan apakah harga close out akan menembus EMA1, sebagai sinyal masuk.

  5. Stop loss exit mechanism: mengatur stop loss melalui Donchian channel.

Fungsi-fungsi yang digunakan adalah:

  • ema ((): menghitung rata-rata bergerak indeks
  • crossover: menentukan apakah EMA1 memakai EMA2
  • crossunder: menentukan apakah EMA1 melewati EMA2
  • rising) /falling): menentukan apakah harga naik/turun
  • valuewhen(): Mengembalikan nilai yang berbeda berdasarkan kondisi

Analisis Keunggulan

  1. Strategi ini sederhana dan mudah dipahami.

  2. Menggunakan fitur pelacakan tren dari sistem garis rata, dapat secara efektif melacak tren.

  3. Sebuah terobosan yang digabungkan dengan harga penutupan K sebagai waktu masuk, dapat mencegah terobosan palsu.

  4. Kombinasi linear dengan parameter yang berbeda dapat digunakan secara fleksibel, sesuai dengan siklus yang berbeda.

  5. Pengendalian risiko dari Stop Loss Mechanism dapat diatur.

Analisis risiko

  1. Ketika pasar berada dalam kondisi goyah, garis rata akan menghasilkan sinyal golden fork yang sering terjadi, yang mudah dihentikan.

  2. Stop loss tetap mungkin terlalu kaku dan tidak dapat disesuaikan dengan perubahan pasar.

  3. Sistem garis rata-rata lebih terbelakang, dan pada titik perubahan tren mudah untuk melewatkan sinyal pembalikan.

  4. Penetapan yang tepat dari kemiringan garis rata diperlukan untuk memfilter terobosan palsu.

  5. Pilihlah parameter dengan hati-hati, karena kombinasi parameter yang terlalu sering atau terlambat akan mempengaruhi efektivitas strategi.

Arah optimasi

  1. Pembelahan nol dari indikator MACD dapat digunakan untuk menentukan tren, memfilter getaran.

  2. Anda dapat bergabung dengan saluran Donchian untuk mengatur garis stop loss dinamis dan memperbaiki masalah stop loss tetap.

  3. Anda dapat menggunakan indikator BRI untuk menilai tren yang kuat dan lemah, dan menghindari perdagangan yang tidak efektif di pasar yang bergoyang.

  4. Mengoptimalkan kombinasi parameter rata-rata, menguji efektivitas praktis dari berbagai strategi siklus.

  5. Pertimbangan untuk menambahkan rata-rata bergerak tetap untuk menghindari keterlambatan.

Meringkaskan

Strategi ini memiliki konsep yang sederhana dan jelas, menggunakan strategi perdagangan forks dan dead forks yang biasa, dan menggabungkan K-line breakthrough untuk masuk ke dalam, untuk memfilter sinyal palsu secara efektif. Ruang optimasi terletak pada penggunaan indikator lain untuk menilai kekuatan dan kelemahan tren, mengatur stop loss dinamis, dll. Secara keseluruhan, strategi pelacakan tren klasik yang didasarkan pada garis sejajar mudah dipahami, layak untuk mengeksplorasi ruang optimasi.

Kode 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)

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