Aliran Mengikuti Strategi Persilangan Purata Pergerakan Maksimum


Tarikh penciptaan: 2023-10-17 13:05:29 Akhirnya diubah suai: 2023-10-17 13:05:29
Salin: 1 Bilangan klik: 657
1
fokus pada
1617
Pengikut

Aliran Mengikuti Strategi Persilangan Purata Pergerakan Maksimum

Gambaran keseluruhan

Strategi ini menggunakan persilangan purata bergerak dari dua tempoh yang berbeza untuk berdagang, dan merupakan strategi jenis trend. Strategi ini menggunakan isyarat beli dan isyarat jual yang berlawanan dengan purata bergerak jangka pendek dan jangka panjang untuk berdagang dalam keadaan trend.

Prinsip Strategi

Strategi ini menggunakan purata bergerak jangka pendek SMA 9 kitaran dan purata bergerak jangka panjang LMA 50 kitaran. Isyarat beli dihasilkan apabila purata bergerak jangka pendek melintasi purata bergerak jangka panjang dari bawah; isyarat jual dihasilkan apabila purata bergerak jangka pendek melintasi purata bergerak jangka panjang dari atas ke bawah.

Strategi ini juga memperkenalkan indikator RSI untuk menilai kekuatan trend. Isyarat perdagangan dihasilkan hanya apabila RSI lebih besar daripada had yang ditetapkan (default 55). Ini dapat mengelakkan isyarat yang salah apabila RSI berada di kawasan oversold.

Strategi: 30% daripada jumlah dana setiap transaksi, dan hanya satu pesanan dibuat setiap kali.

Analisis kelebihan

  • Strategi ini menggunakan isyarat trend yang terbentuk di persimpangan purata bergerak untuk mengesan trend secara berkesan.
  • Memperkenalkan RSI untuk menentukan kekuatan trend, dapat mengelakkan isyarat salah apabila trend terhalang.
  • Parameter lalai yang dioptimumkan boleh menghasilkan keuntungan yang lebih stabil di pelbagai pasaran.
  • Pengurusan kewangan yang bijak untuk mengelakkan kerugian tunggal yang terlalu besar.

Analisis risiko

  • Strategi ini mudah memberi isyarat yang salah apabila pasaran berada dalam keadaan perubahan yang tidak menentu.
  • Strategi mengikut trend, tidak boleh mendapat keuntungan tanpa trend yang jelas.
  • Tetapan parameter yang tidak betul boleh menyebabkan transaksi yang kerap dan meningkatkan kos transaksi.
  • Tidak mengambil kira kesan kejadian yang tidak dijangka, ia boleh menyebabkan kerosakan tidak selesai pada masa yang sesuai.

Anda boleh mengurangkan risiko dengan mengoptimumkan parameter, menggabungkan petunjuk lain untuk menilai peluang keuntungan, pengurusan wang yang ketat, dan menetapkan hentian kerugian.

Arah pengoptimuman

  • Anda boleh menguji pelbagai kombinasi purata bergerak untuk mencari parameter yang optimum.
  • Indeks lain boleh diperkenalkan untuk menilai trend, seperti MACD dan sebagainya.
  • Anda boleh menetapkan Hentian Kerosakan Dinamik untuk mengawal kerugian tunggal.
  • Perkadaran pengurusan dana boleh disesuaikan mengikut pasaran yang berbeza.
  • Ia boleh dikombinasikan dengan jumlah dagangan untuk menilai kekuatan trend.

ringkaskan

Strategi ini menangkap peluang trend melalui sistem simpulan pergerakan rata-rata silang. Parameter lalai dioptimumkan, keuntungan stabil, sesuai untuk perdagangan automatik. Kestabilan dan keuntungan strategi dapat ditingkatkan lagi dengan memperkenalkan petunjuk tambahan, parameter pengoptimuman, dan memperbaiki stop loss.

Kod sumber strategi
/*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)