Chiến lược giao thoa trung bình động theo dõi xu hướng động đa kỳ

SMA EMA MA
Ngày tạo: 2024-12-13 10:40:30 sửa đổi lần cuối: 2024-12-13 10:40:30
sao chép: 0 Số nhấp chuột: 475
1
tập trung vào
1617
Người theo dõi

Chiến lược giao thoa trung bình động theo dõi xu hướng động đa kỳ

Tổng quan

Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên đường trung bình nhiều chu kỳ. Chiến lược sử dụng trung bình di chuyển đơn giản 89 chu kỳ và 21 chu kỳ (SMA) để xác định hướng xu hướng chung của thị trường, đồng thời kết hợp với các điểm cao và thấp của chỉ số di chuyển trung bình 5 chu kỳ (EMA) để tìm kiếm tín hiệu giao dịch cụ thể. Chiến lược sử dụng phương pháp quản lý vị trí hai vị trí và kết hợp với dừng cố định và theo dõi các điểm dừng để kiểm soát rủi ro.

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

Logic cốt lõi của chiến lược bao gồm các yếu tố chính sau:

  1. Xác định xu hướng: Sử dụng vị trí tương đối của SMA 89 chu kỳ và SMA 21 chu kỳ và vị trí giá để xác định xu hướng. Khi cả giá cả và EMA 5 chu kỳ nằm trên SMA 21 chu kỳ và SMA 21 chu kỳ nằm trên SMA 89 chu kỳ, nó được đánh giá là xu hướng tăng; ngược lại là xu hướng giảm.
  2. Tín hiệu nhập: Trong xu hướng tăng, tham gia nhiều hơn khi giá quay trở lại mức thấp của 5 chu kỳ EMA; Trong xu hướng giảm, tham gia vào khi giá bật trở lại mức cao của 5 chu kỳ EMA.
  3. Quản lý vị trí: mở hai vị trí hợp đồng bằng nhau mỗi khi tín hiệu được kích hoạt.
  4. Kiểm soát rủi ro: Đối với vị trí đầu tiên, sử dụng mục tiêu dừng cố định và lợi nhuận, đối với vị trí thứ hai, sử dụng phương pháp theo dõi dừng.

Lợi thế chiến lược

  1. Xác định nhiều chu kỳ: Bằng cách kết hợp các đường trung bình di chuyển trong các chu kỳ khác nhau, có thể đánh giá xu hướng thị trường một cách toàn diện hơn, giảm tín hiệu sai.
  2. Phương pháp dừng linh hoạt: kết hợp với dừng cố định và dừng theo dõi, có thể kiếm lợi nhuận trong biến động ngắn hạn và không bỏ lỡ xu hướng lớn.
  3. Có thể kiểm soát rủi ro: thiết lập vị trí dừng lỗ rõ ràng, và lỗ hổng rủi ro cho mỗi tín hiệu giao dịch được cố định.
  4. Hoạt động có hệ thống: quy tắc giao dịch rõ ràng, không bị ảnh hưởng bởi phán đoán chủ quan, dễ thực hiện theo quy trình.

Rủi ro chiến lược

  1. Rủi ro của thị trường bị chấn động: Trong một thị trường trục trặc, sự giao nhau thường xuyên giữa các đường trung bình có thể dẫn đến quá nhiều tín hiệu giả.
  2. Rủi ro trượt: Khi thị trường biến động lớn, giá giao dịch thực tế có thể bị lệch so với giá tín hiệu lý thuyết.
  3. Rủi ro quản lý vốn: Các giao dịch với số lượng hợp đồng cố định có thể không phù hợp với tất cả các quy mô vốn.
  4. Tính nhạy cảm của tham số: Lựa chọn chu kỳ trung bình di chuyển có ảnh hưởng lớn đến hiệu suất chiến lược và cần tối ưu hóa cho các thị trường khác nhau.

Hướng tối ưu hóa chiến lược

  1. Quản lý vị trí động: khuyến nghị điều chỉnh số lượng hợp đồng giao dịch theo giá trị tài khoản ròng và biến động của thị trường.
  2. Bộ lọc môi trường thị trường: tăng chỉ số cường độ xu hướng (như ADX) và giảm tần suất giao dịch trong thị trường biến động.
  3. Tối ưu hóa dừng lỗ: Có thể xem xét sử dụng ATR để điều chỉnh động khoảng cách dừng lỗ để cải thiện khả năng thích ứng của chiến lược với các môi trường thị trường khác nhau.
  4. Xác nhận tín hiệu: tăng các chỉ số phụ trợ như khối lượng giao dịch, động lực, tăng độ tin cậy của tín hiệu giao dịch.

Tóm tắt

Chiến lược này là một hệ thống theo dõi xu hướng có cấu trúc hoàn chỉnh, nắm bắt xu hướng thị trường thông qua kết hợp đường trung bình nhiều chu kỳ và kiểm soát rủi ro bằng cách quản lý vị trí linh hoạt và dừng lỗ. Mặc dù có một số không gian để tối ưu hóa, nhưng khung cơ bản của chiến lược có tính thực tế và khả năng mở rộng tốt.

Mã nguồn chiến lược
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)