Chiến lược giao cắt SMA


Ngày tạo: 2024-03-28 17:50:00 sửa đổi lần cuối: 2024-03-28 17:50:00
sao chép: 1 Số nhấp chuột: 587
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt SMA

Tổng quan

Chiến lược này là một chiến lược chéo đường trung bình SMA đơn giản. Nó sử dụng trung bình di chuyển đơn giản của hai chu kỳ khác nhau ((SMA), mở nhiều khi đường nhanh đi qua đường chậm từ dưới lên, và bằng phẳng khi đường nhanh đi qua đường chậm từ trên xuống. Chiến lược này có thể tùy chỉnh chiều dài của hai đường trung bình, và ngày bắt đầu và ngày kết thúc đo lại.

Ý tưởng chính của chiến lược này là sử dụng đặc tính xu hướng của đường trung bình và đặc tính tín hiệu của đường trung bình để giao dịch. Khi đường nhanh trên đường chậm, cho thấy hiện tại đang có xu hướng tăng, nên giữ vị trí nhiều đầu; khi đường nhanh dưới đường chậm, cho thấy hiện tại đang có xu hướng giảm, nên nhìn không.

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

  1. Tính toán SMA của hai chu kỳ khác nhau, có thể tùy chỉnh độ dài chu kỳ.
  2. Xác định liệu hiện tại có nằm trong cửa sổ thời gian tra cứu hay không và không thực hiện bất kỳ hoạt động nào nếu không.
  3. Nếu đường nhanh từ dưới lên xuyên qua đường chậm, hãy đặt nhiều hơn.
  4. Nếu đường nhanh đi qua đường chậm từ trên xuống, thì tất cả các vị trí đa đầu sẽ bị phẳng.
  5. Trong các trường hợp khác, các nhà kho không hoạt động.

Phân tích lợi thế

  1. Nó rất đơn giản, dễ hiểu, có logic rõ ràng và phù hợp cho người mới bắt đầu.
  2. Đường trung bình là một chỉ số kỹ thuật được sử dụng rộng rãi, có đặc tính xu hướng rõ ràng hơn và có thể phản ánh tốt hơn xu hướng thị trường hiện tại.
  3. Đường giao thoa là một tín hiệu theo dõi xu hướng cổ điển, có thể nhanh chóng nắm bắt được sự thay đổi của xu hướng.
  4. Có thể tùy chỉnh chu kỳ trung bình và cửa sổ thời gian phản hồi, linh hoạt hơn.
  5. Nó được sử dụng cho các giống và khoảng thời gian có xu hướng mạnh mẽ.

Phân tích rủi ro

  1. Đường trung bình có một sự chậm trễ nhất định, có thể xảy ra tín hiệu chéo thường xuyên khi thị trường biến động lớn và xu hướng lặp lại, dẫn đến quá nhiều giao dịch và chi phí phí gia tăng.
  2. Chiến lược này chỉ có thể nắm bắt các xu hướng tăng một chiều và không có tác dụng đối với các xu hướng dao động và giảm một chiều.
  3. Lựa chọn tham số đường trung bình cần được tối ưu hóa cho các giống và chu kỳ thời gian khác nhau, các tham số khác nhau có thể có sự khác biệt lớn về hiệu suất.
  4. Chiến lược này không có bất kỳ biện pháp dừng lỗ nào và có thể có nguy cơ rút lui lớn hơn trong trường hợp thị trường biến động mạnh.

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

  1. Có thể xem xét thêm các biện pháp dừng lỗ thích hợp, chẳng hạn như dừng di động dựa trên ATR, để kiểm soát tổn thất tối đa cho một giao dịch.
  2. Bạn có thể xem xét thêm một số điều kiện lọc, chẳng hạn như khối lượng giao dịch, tỷ lệ biến động, v.v., để lọc ra một số tín hiệu giả.
  3. Bạn có thể xem xét tối ưu hóa các tham số, chẳng hạn như sử dụng các thuật toán thông minh như thuật toán di truyền để tìm kiếm sự kết hợp tham số tối ưu nhất.
  4. Bạn có thể xem xét kết hợp các chỉ số kỹ thuật khác hoặc tín hiệu giao dịch với đường chéo trung bình, chẳng hạn như MACD, RSI, v.v., để tăng độ tin cậy và hiệu quả của chiến lược.

Tóm tắt

Chiến lược giao chéo SMA là một chiến lược theo dõi xu hướng đơn giản, dễ hiểu và thực tế, phù hợp cho người mới bắt đầu học và sử dụng. Nó sử dụng tính năng xu hướng của đường thẳng và tính năng tín hiệu của đường thẳng để nhanh chóng nắm bắt sự thay đổi của xu hướng thị trường. Tuy nhiên, chiến lược này cũng có một số hạn chế và rủi ro, chẳng hạn như chậm trễ, giao dịch thường xuyên, thiếu dừng lỗ, v.v.

Mã nguồn chiến lược
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © j0secyn

//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)

// === INPUT BACKTEST RANGE ===
fromDay   = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear  = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay   = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear  = input.int(defval = 2024, title = "Thru Year", minval = 1970)

slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)            // backtest start  window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)            // backtest finish window
window()  => true

// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))

// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder         
strategy.entry("L", strategy.long, when = window() and crossOv)        // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn)                       // exits long when "within window of time" AND crossunder