Chiến lược này sử dụng sự chéo chéo của hai đường trung bình động với các khoảng thời gian khác nhau để tạo ra tín hiệu giao dịch. Nó thuộc về các chiến lược theo xu hướng. Chiến lược nắm bắt các cơ hội xu hướng bằng cách sử dụng tín hiệu khi MA ngắn hơn vượt qua MA dài hơn.
Chiến lược này sử dụng MA ngắn hạn 9 giai đoạn (SMA) và MA dài hạn 50 giai đoạn (LMA). Khi SMA vượt trên LMA, một tín hiệu mua được tạo ra. Khi SMA vượt dưới LMA, một tín hiệu bán được tạo ra.
Chiến lược này cũng kết hợp chỉ số RSI để đo lường sức mạnh của xu hướng. Các tín hiệu giao dịch chỉ được tạo ra khi RSI vượt quá ngưỡng (mục tiêu 55). Điều này tránh các tín hiệu không chính xác khi RSI ở vùng mua quá mức.
Chiến lược giao dịch 30% tổng vốn mỗi lần, chỉ có một vị trí mở tại một thời điểm. 0.1% hoa hồng được tính toán.
Rủi ro có thể được giảm thông qua tối ưu hóa tham số, sử dụng các chỉ số khác, quản lý vốn nghiêm ngặt và dừng lỗ.
Chiến lược này nắm bắt các cơ hội xu hướng bằng cách sử dụng hệ thống chéo MA đơn giản. Các thông số mặc định được tối ưu hóa với lợi nhuận ổn định, phù hợp với giao dịch thuật toán. Các cải tiến hơn nữa có thể được thực hiện bằng cách thêm các chỉ số khác, tối ưu hóa các thông số và thực hiện dừng lỗ.
/*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)