Chiến lược giao cắt trung bình động tối đa theo xu hướng


Ngày tạo: 2023-10-17 13:05:29 sửa đổi lần cuối: 2023-10-17 13:05:29
sao chép: 1 Số nhấp chuột: 657
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt trung bình động tối đa theo xu hướng

Tổng quan

Chiến lược này sử dụng giao dịch giữa hai chu kỳ khác nhau của đường trung bình di chuyển và thuộc loại theo dõi xu hướng. Chiến lược sử dụng tín hiệu mua và bán giữa đường trung bình di chuyển ngắn hạn và dài hạn để giao dịch trong xu hướng.

Nguyên tắc chiến lược

Chiến lược này sử dụng SMA ngắn hạn di chuyển 9 chu kỳ và LMA dài hạn di chuyển 50 chu kỳ. Một tín hiệu mua được tạo ra khi đường trung bình di chuyển ngắn hạn đi qua đường trung bình di chuyển dài hạn từ phía dưới; một tín hiệu bán được tạo ra khi đường trung bình di chuyển ngắn hạn đi qua đường trung bình di chuyển dài hạn từ phía trên xuống.

Trong khi đó, chiến lược cũng giới thiệu các chỉ số RSI để đánh giá cường độ của xu hướng. Chỉ khi RSI lớn hơn ngưỡng đặt ((định nghĩa 55), tín hiệu giao dịch sẽ được tạo ra. Điều này có thể tránh tín hiệu sai khi RSI nằm trong phạm vi bán tháo.

Chiến lược mỗi lần giao dịch chiếm 30% tổng số vốn, mỗi lần đặt hàng chỉ có một lần.

Phân tích lợi thế

  • Chiến lược này sử dụng các tín hiệu xu hướng hình thành từ các đường trung bình di chuyển để theo dõi hiệu quả xu hướng.
  • Tham gia chỉ số RSI để đánh giá cường độ của xu hướng, có thể tránh phát ra tín hiệu sai khi xu hướng bị chặn.
  • Các tham số mặc định đã được tối ưu hóa để có được lợi nhuận ổn định hơn trong nhiều thị trường.
  • Quản lý tài chính một cách hợp lý để tránh tổn thất quá lớn.

Phân tích rủi ro

  • Chiến lược này dễ tạo ra tín hiệu sai khi thị trường đang trong giai đoạn điều chỉnh chấn động và không có lợi nhuận.
  • Chiến lược theo dõi xu hướng, không thể có được lợi nhuận nếu không có xu hướng rõ ràng.
  • Thiết lập tham số không đúng có thể dẫn đến giao dịch thường xuyên và tăng phí giao dịch.
  • Không tính đến tác động của các sự kiện bất ngờ, có thể dẫn đến mất mát không sớm.

Có thể giảm thiểu rủi ro bằng cách tối ưu hóa các tham số, kết hợp các chỉ số khác để xác định cơ hội kiếm lợi nhuận, quản lý quỹ nghiêm ngặt, thiết lập dừng lỗ.

Hướng tối ưu hóa

  • Có thể thử nghiệm các kết hợp trung bình di chuyển khác nhau để tìm tham số tối ưu.
  • Các chỉ số khác có thể được đưa vào để đánh giá xu hướng, chẳng hạn như MACD.
  • Có thể thiết lập dừng lỗ động để kiểm soát tổn thất đơn lẻ.
  • Có thể điều chỉnh tỷ lệ quản lý vốn theo thị trường khác nhau.
  • Có thể kết hợp các chỉ số khối lượng giao dịch để đánh giá xu hướng mạnh hoặc yếu.

Tóm tắt

Chiến lược này nắm bắt cơ hội xu hướng thông qua một hệ thống chéo trung bình di chuyển đơn giản. Các tham số mặc định được tối ưu hóa, lợi nhuận ổn định, phù hợp với giao dịch tự động.

Mã nguồn chiến lược
/*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)