Chiến lược giao dịch dừng lỗ theo sau dựa trên các chỉ báo EMA và MACD


Ngày tạo: 2023-09-20 11:21:14 sửa đổi lần cuối: 2023-09-20 11:21:14
sao chép: 0 Số nhấp chuột: 882
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này kết hợp hai chỉ số chỉ số động trung bình (EMA) và chênh lệch hội tụ trung bình di chuyển (MACD) để tạo ra tín hiệu giao dịch và sử dụng tracking stop loss để kiểm soát rủi ro. Chiến lược này được áp dụng cho hành vi xu hướng, nhằm mục đích theo dõi xu hướng trung bình để giữ vị trí dài.

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

Khi đường EMA nhanh vượt qua đường EMA chậm và cột MACDhistogram trở nên trống, chiến lược làm nhiều; khi vị trí vị trí nhiều đầu tồn tại, hãy thiết lập một đường dừng theo dõi xuống, nếu giá giảm vượt quá đường dừng một tỷ lệ nhất định, hãy dừng và thoát khỏi vị trí nhiều đầu.

Cụ thể, chiến lược sử dụng 7 ngày EMA và 14 ngày EMA để xây dựng EMA nhanh; sử dụng 12 ngày EMA trừ 26 ngày EMA để có được giá trị MACD, sau đó sử dụng 9 ngày EMA để có được đường tín hiệu. Khi 7 ngày EMA vượt qua 14 ngày EMA và trên giá trị MACD vượt qua tín hiệu, hãy mở thêm vị trí; sau đó thiết lập một đường dừng theo dõi xuống, nếu giá giảm hơn một tỷ lệ nhất định, hãy dừng lại và rút ra nhiều lệnh.

Phân tích lợi thế

Chiến lược này kết hợp hai chỉ số EMA và MACD, có thể lọc hiệu quả các đợt phá vỡ giả mạo. EMA xác định hướng xu hướng, MACD xác định điểm mua và bán, kết hợp cả hai có thể làm giảm tần suất giao dịch và nâng cao chất lượng tín hiệu. Theo dõi dừng lỗ có thể bảo vệ tối đa lợi nhuận đã đạt được và dừng lỗ kịp thời khi xảy ra tình huống bất lợi lớn.

Phản hồi cho thấy chiến lược này cũng có thể thu được lợi nhuận tốt trong thị trường gấu, cho thấy chiến lược có một số tính thô lỗ. Chiến lược giao dịch không cao, phù hợp cho các vị trí trung bình và dài hạn. Các tham số chu kỳ EMA có thể được điều chỉnh thích hợp để điều chỉnh xu hướng của chiến lược.

Phân tích rủi ro

Chiến lược này chủ yếu dựa trên các chỉ số, có nguy cơ bị mạo hiểm. Khi thị trường ở giai đoạn điều chỉnh chấn động, EMA và MACD có thể tạo ra nhiều tín hiệu sai, dẫn đến giao dịch quá mức và thua lỗ. Theo dõi dừng chỉ có hiệu quả khi phá vỡ dưới, không thể đối phó với sự hồi phục lớn sau khi phá vỡ trên.

Có thể giảm tín hiệu sai bằng cách mở rộng các tham số EMA chu kỳ thích hợp. Ngoài ra, có thể kết hợp với các tín hiệu lọc của các chỉ số khác, chẳng hạn như chỉ số năng lượng, chỉ số biến động, v.v. Ngoài ra, tỷ lệ dừng có thể được điều chỉnh theo tình hình thị trường để cân bằng rủi ro dừng và phá giá.

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

  1. Có thể thử nghiệm các kết hợp khác nhau của EMA để tìm các tham số chu kỳ phù hợp hơn với chiến lược.

  2. Có thể thêm các chỉ số khác để lọc tín hiệu, chẳng hạn như RSI, KD, v.v., để cải thiện chất lượng tín hiệu.

  3. Có thể điều chỉnh tỷ lệ dừng lỗ theo các giống khác nhau, thiết lập dừng theo dõi động để tối ưu hóa chiến lược dừng lỗ.

  4. Có thể kết hợp các chỉ số kỹ thuật như đột phá, hình dạng, để thiết lập nhiều điều kiện mở và giữ vị trí, làm cho chiến lược được tùy chỉnh hơn.

  5. Có thể giới thiệu hướng đi của xu hướng dự đoán chu kỳ bằng máy học để hỗ trợ EMA xác định xu hướng tổng thể.

Tóm tắt

Chiến lược này khá ổn định và có thể thu được lợi nhuận tốt trong thị trường gấu. Tuy nhiên, có một số rủi ro bị đánh giá, cần tối ưu hóa các tham số và điều kiện lọc. Hiệu quả của chiến lược sẽ tốt hơn nếu có thể kết hợp thêm các chỉ số kỹ thuật khác và các phương tiện học máy để tối ưu hóa. Nói chung, chiến lược này cung cấp một mẫu đáng tin cậy cho giao dịch định lượng.

Mã nguồn chiến lược
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
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/
// © Coinrule

//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)