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.
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.
Risiko boleh dikurangkan melalui pengoptimuman parameter, menggunakan penunjuk lain, pengurusan modal yang ketat, dan stop loss.
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)