Trend Mengikut Strategi Crossover Purata Bergerak Maksimum

Penulis:ChaoZhang, Tarikh: 2023-10-17 13:05:29
Tag:

img

Ringkasan

Strategi ini menggunakan persilangan dua purata bergerak dengan tempoh yang berbeza untuk menjana isyarat perdagangan. Ia tergolong dalam strategi trend berikut. Strategi ini menangkap peluang trend dengan menggunakan isyarat apabila MA tempoh yang lebih pendek melintasi MA tempoh yang lebih lama.

Logika Strategi

Strategi ini menggunakan MA jangka pendek 9 tempoh (SMA) dan MA jangka panjang 50 tempoh (LMA). Apabila SMA melintasi di atas LMA, isyarat beli dihasilkan. Apabila SMA melintasi di bawah LMA, isyarat jual dihasilkan.

Strategi ini juga menggabungkan penunjuk RSI untuk mengukur kekuatan trend. Isyarat perdagangan hanya dihasilkan apabila RSI melebihi ambang (default 55). Ini mengelakkan isyarat yang salah apabila RSI berada di zon overbought.

Strategi ini memperdagangkan 30% daripada jumlah modal setiap kali, dengan hanya satu kedudukan terbuka pada satu masa. 0.1% komisen dipertanggungjawabkan.

Analisis Kelebihan

  • Mengambil peluang trend dengan berkesan menggunakan isyarat trend silang MA.
  • Menggabungkan RSI mengelakkan isyarat yang salah apabila trend berhenti.
  • Parameter lalai dioptimumkan dan menghasilkan pulangan yang stabil di pelbagai pasaran.
  • Pengurusan modal yang munasabah mengelakkan saiz kedudukan yang terlalu besar.

Analisis Risiko

  • Rendah kepada whipsaws dan isyarat yang salah semasa pasaran yang terikat dengan julat tanpa trend.
  • Tidak ada keuntungan tanpa trend yang signifikan sebagai strategi trend berikut.
  • Perdagangan berlebihan dan komisen jika parameter tidak disesuaikan dengan betul.
  • Kekurangan stop loss mendedahkan strategi kepada risiko kejadian.

Risiko boleh dikurangkan melalui pengoptimuman parameter, menggunakan penunjuk lain, pengurusan modal yang ketat, dan stop loss.

Peluang Peningkatan

  • Uji gabungan MA yang berbeza untuk mencari parameter optimum.
  • Masukkan penunjuk lain seperti MACD untuk mengesahkan trend.
  • Melaksanakan stop loss dinamik untuk mengawal kerugian setiap perdagangan.
  • Sesuaikan saiz kedudukan berdasarkan pasaran yang berbeza.
  • Gunakan penunjuk jumlah untuk mengukur kekuatan trend.

Kesimpulan

Strategi ini menangkap peluang trend menggunakan sistem crossover MA yang mudah. Parameter lalai dioptimumkan dengan pulangan yang stabil, sesuai untuk perdagangan algoritma. Penambahbaikan lanjut boleh dibuat dengan menambah penunjuk lain, mengoptimumkan parameter, dan melaksanakan stop loss. Secara keseluruhan, ia adalah strategi trend berikut yang berkesan untuk pasaran trend menggunakan isyarat crossover.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 2h
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/
// © relevantLeader16058

//@version=4
strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
inlong=input(50, title='MA long period')
inshort=input(9, title='MA short period')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = (14)

RSI = rsi(close, lengthRSI)
RSI_Signal = input(55, title = 'RSI Trigger', minval=1)

//Entry and Exit
bullish = crossover(MAshort, MAlong)
bearish = crossunder(MAshort, MAlong)

strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window())
strategy.close(id="long", when = bearish and window())

 
plot(MAshort, color=color.purple, linewidth=2)
plot(MAlong, color=color.red, linewidth=2)

Lebih lanjut