Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch định lượng sau xu hướng và tích hợp đà

Tác giả:ChaoZhang, Ngày: 2024-11-27 16:08:16
Tags:EMATEMAMACDSMA

img

Tổng quan

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

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

Chiến lược xác định các 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 trung bình chuyển động nhân tố ba (TEMA) xác nhận hướng xu hướng tổng thể. Nó tính toán ba lớp EMA và kết hợp các thay đổi năng động của chúng để đánh giá sức mạnh xu hướng.
  2. Hệ thống chéo MA nhanh / chậm sử dụng EMA 9 giai đoạn và 15 giai đoạn để nắm bắt các điểm đảo ngược xu hướng trung hạn.
  3. Giá vượt qua với EMA 5 giai đoạn phục vụ như một tín hiệu xác nhận cuối cùng cho thời gian nhập chính xác.

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

  • MACD vượt qua đường tín hiệu với xu hướng tăng TEMA
  • EMA ngắn hạn vượt qua EMA dài hạn
  • Giá vượt trên EMA 5 giai đoạn

Ưu điểm chiến lược

  1. Các cơ chế xác nhận nhiều giảm đáng kể các tín hiệu sai và cải thiện độ chính xác giao dịch.
  2. Kết hợp các lợi ích của việc theo dõi xu hướng và phân tích động lực để nắm bắt cả xu hướng chính và cơ hội ngắn hạn.
  3. Thực hiện các cơ chế dừng lỗ toàn diện bao gồm dừng cố định và dừng theo dõi năng động để kiểm soát rủi ro hiệu quả.
  4. Khả năng thích nghi các tham số cao cho các môi trường thị trường khác nhau.
  5. Logic đầu vào rõ ràng dễ hiểu và thực hiện.

Rủi ro chiến lược

  1. Các yêu cầu xác nhận nhiều lần có thể dẫn đến sự chậm trễ nhập cảnh, bỏ lỡ cơ hội trong các thị trường chuyển động nhanh.
  2. Các điểm dừng lỗ cố định cần điều chỉnh cho sự biến động thị trường khác nhau để tránh thoát sớm.
  3. Có thể tạo ra các tín hiệu sai thường xuyên trong phạm vi giới hạn, thị trường hỗn loạn.
  4. Việc dừng lại có thể thoát khỏi xu hướng chất lượng quá sớm trong thời gian biến động thị trường nghiêm trọng.

Hướng dẫn tối ưu hóa

  1. Đưa ra các chỉ số biến động để điều chỉnh năng động các điểm dừng và mục tiêu lợi nhuận để phù hợp hơn với điều kiện thị trường.
  2. Thêm các chỉ số âm lượng làm xác nhận phụ để cải thiện độ tin cậy tín hiệu.
  3. Thực hiện nhận dạng môi trường thị trường cho các kế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ế xây dựng vị trí chống xu hướng để tích lũy vừa phải trong thời gian giảm.
  5. Tối ưu hóa thuật toán dừng lại để thích nghi tốt hơn với biến động thị trường.

Tóm lại

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


/*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")


Có liên quan

Thêm nữa