Chiến lược giao dịch định lượng theo dõi xu hướng trung bình động ba và hợp nhất động lượng

EMA TEMA MACD SMA
Ngày tạo: 2024-11-27 16:08:16 sửa đổi lần cuối: 2024-11-27 16:08:16
sao chép: 2 Số nhấp chuột: 439
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng theo dõi xu hướng trung bình động ba và hợp nhất động lượng

Tổng quan

Đây là một chiến lược giao dịch định lượng dựa trên sự kết hợp của theo dõi xu hướng và phân tích động lực. Chiến lược này sử dụng chỉ số di chuyển trung bình ba lần (TEMA), chéo trung bình di chuyển nhiều lần và MACD biến thể để xác định xu hướng thị trường và thời gian vào. Chiến lược này áp dụng cơ chế kiểm soát rủi ro nghiêm ngặt, bao gồm mục tiêu dừng lỗ, lợi nhuận cố định và theo dõi dừng lỗ để đạt được sự cân bằng tối ưu giữa rủi ro và lợi nhuận.

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

Chiến lược này chủ yếu xác định tín hiệu giao dịch thông qua ba hệ thống chỉ số kỹ thuật cốt lõi:

  1. Hệ thống TEMA được sử dụng để xác định định hướng của xu hướng tổng thể. Nguồn mạnh của xu hướng được đánh giá bằng cách tính toán EMA ba lớp và kết hợp với sự thay đổi động của nó.
  2. Hệ thống giao chéo trơn trung bình sử dụng EMA 9 chu kỳ và 15 chu kỳ để nắm bắt các điểm biến của xu hướng trung bình.
  3. Giá giao thoa với EMA chu kỳ 5 là tín hiệu xác nhận cuối cùng, được sử dụng để nắm bắt chính xác thời gian nhập cảnh.

Các tín hiệu giao dịch được kích hoạt khi các điều kiện sau cùng được đáp ứng:

  • Chỉ số MACD với đường tín hiệu của nó hình thành một đường chéo vàng và TEMA xu hướng lên
  • EMA ngắn hạn trên EMA dài hạn
  • Giá tăng 5 chu kỳ EMA

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

  1. Hệ thống xác nhận nhiều lần đã giảm đáng kể tác động của tín hiệu giả và tăng độ chính xác của giao dịch.
  2. Kết hợp các lợi thế của theo dõi xu hướng và phân tích động lực, nó có thể nắm bắt được xu hướng lớn và không bỏ lỡ cơ hội ngắn hạn.
  3. Các cơ chế dừng lỗ được áp dụng, bao gồm các điểm dừng cố định và các điểm dừng theo dõi động, để kiểm soát rủi ro hiệu quả.
  4. Các tham số chiến lược có thể điều chỉnh được để thích ứng với các môi trường thị trường khác nhau.
  5. Logic nhập cảnh rõ ràng, dễ hiểu và dễ thực hiện.

Rủi ro chiến lược

  1. Các cơ chế xác nhận đa dạng có thể dẫn đến việc nhập học chậm và bỏ lỡ một số cơ hội trong quá trình nhanh chóng.
  2. Điểm dừng cố định cần được điều chỉnh theo biến động thị trường khác nhau, nếu không có thể bị dừng quá sớm.
  3. Các tín hiệu giả có thể được tạo ra thường xuyên trong thị trường dao động ngang.
  4. Theo dõi dừng lỗ có thể thoát khỏi xu hướng ưu đãi quá sớm khi thị trường biến động mạnh.

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

  1. Tiếp theo, đưa ra chỉ số biến động để điều chỉnh động các mục tiêu dừng lỗ và lợi nhuận để phù hợp hơn với thị trường.
  2. Thêm chỉ báo âm lượng làm xác nhận phụ trợ để cải thiện độ tin cậy của tín hiệu.
  3. Tham gia vào cơ chế nhận diện môi trường thị trường, sử dụng các tổ hợp tham số khác nhau trong các trạng thái thị trường khác nhau.
  4. Phát triển cơ chế gia tăng thế chấp, xây dựng thế chấp khi điều chỉnh để tăng thu nhập.
  5. Tối ưu hóa các thuật toán theo dõi dừng lỗ để thích ứng tốt hơn với biến động thị trường.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch ổn định bằng cách kết hợp nhiều hệ thống chỉ số kỹ thuật. Ưu điểm cốt lõi của nó là cơ chế xác nhận nhiều lần và hệ thống kiểm soát rủi ro tốt. Mặc dù có một số rủi ro bị tụt hậu, chiến lược vẫn có nhiều chỗ cải thiện thông qua tối ưu hóa tham số và mở rộng chức năng.

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

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")