Xu hướng sau chiến lược chéo trung bình động tối đa hóa

Tác giả:ChaoZhang, Ngày: 2023-10-17 13:05:29
Tags:

img

Tổng quan

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 logic

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.

Phân tích lợi thế

  • Nhận các cơ hội xu hướng hiệu quả bằng cách sử dụng các tín hiệu xu hướng chéo MA.
  • Kết hợp RSI tránh các tín hiệu không chính xác khi xu hướng dừng lại.
  • Các thông số mặc định được tối ưu hóa và tạo ra lợi nhuận ổn định trên các thị trường khác nhau.
  • Quản lý vốn hợp lý tránh kích thước vị trí quá lớn.

Phân tích rủi ro

  • Có xu hướng bị chém và tín hiệu không chính xác trong các thị trường giới hạn trong phạm vi mà không có xu hướng.
  • Không có lợi nhuận mà không có xu hướng đáng kể như một chiến lược theo xu hướng.
  • Giao dịch quá mức và hoa hồng nếu các thông số không được điều chỉnh đúng cách.
  • Thiếu stop loss sẽ khiến chiến lược bị rủi ro xảy ra.

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ỗ.

Cơ hội gia tăng

  • Kiểm tra các kết hợp MA khác nhau để tìm các thông số tối ưu.
  • Kết hợp các chỉ số khác như MACD để xác nhận xu hướng.
  • Thực hiện stop loss động để kiểm soát lỗ cho mỗi giao dịch.
  • Điều chỉnh kích thước vị trí dựa trên các thị trường khác nhau.
  • Sử dụng các chỉ số khối lượng để đánh giá sức mạnh của xu hướng.

Kết luận

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)

Thêm nữa