Mô hình giám sát trung bình động kép

Tác giả:ChaoZhang, Ngày: 2023-10-17 16:33:29
Tags:

img

Tổng quan

Chiến lược này sử dụng sự kết hợp của hai chỉ số trung bình động theo cấp số nhân (EMA) và chỉ số chéo trung bình động (MACD) để xác định các cổ phiếu được đánh giá quá cao trong ngắn hạn và nắm giữ các vị trí ngắn để kiếm lợi nhuận từ sự sụt giảm giá. Chiến lược này tận dụng tối đa khả năng phản ứng nhanh chóng của EMA với những thay đổi giá và sức mạnh của MACD trong việc theo dõi hướng động lực, nắm bắt các cơ hội lợi nhuận ngắn hạn tại các điểm chuyển đổi giữa bò và gấu.

Chiến lược logic

  1. Tính toán EMA 8 ngày và EMA 26 ngày Khi EMA 8 ngày vượt qua EMA 26 ngày, nó được coi là tín hiệu mua.

  2. Tính toán MACD với EMA 12 ngày, EMA 26 ngày và EMA 9 ngày của sự khác biệt được gọi là DEA. Khi MACD vượt trên DEA, nó được coi là tín hiệu mua.

  3. Quy tắc nhập cảnh: EMA 8 ngày > EMA 26 ngày và MACD vượt trên DEA, dài khi cả hai điều kiện được đáp ứng.

  4. Quy tắc thoát: Đặt lệnh dừng lỗ ở mức 3% giá nhập, lệnh dừng lỗ ở mức 1% giá nhập, thoát khi một trong hai được chạm.

Chiến lược này sử dụng cả phản ứng nhanh của EMA đối với giá cả và phán đoán của MACD về hướng động lực, xác định các điểm chuyển đổi chính từ tăng sang giảm.

Phân tích lợi thế

  1. Sự kết hợp giữa EMA và MACD cải thiện độ chính xác của việc nắm bắt tín hiệu giao dịch. EMA bắt được xu hướng giá trong khi MACD đánh giá sự thay đổi hướng động lực, kết hợp chúng xác định các cực đoan ngắn hạn và tránh thua lỗ từ các sự đột phá sai.

  2. Chế độ dừng lỗ theo dõi kiểm soát rủi ro và ra khỏi kịp thời.

  3. Chiến lược được kiểm tra qua toàn bộ thị trường gấu vào năm 2022, mô phỏng môi trường giao dịch thực tế.

  4. Điều chỉnh tham số linh hoạt. tỷ lệ dừng lỗ, tỷ lệ định hình vị trí có thể tùy chỉnh để phù hợp với sở thích rủi ro cá nhân.

Phân tích rủi ro

  1. Giao dịch thường xuyên đòi hỏi phải theo dõi chặt chẽ. khung thời gian 5 phút có nghĩa là tần suất nhập và xuất cao, đòi hỏi đủ thời gian để theo dõi các giao dịch.

  2. Chế độ dừng lỗ có thể thoát sớm.

  3. EMA và MACD hoạt động tốt hơn cho các thị trường xu hướng.

  4. Chi phí giao dịch cần được xem xét. Mỗi giao dịch tương ứng với hoa hồng, giao dịch thường xuyên làm tăng chi phí.

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

  1. Điều chỉnh các thông số thời gian EMA để tối ưu hóa các mục nhập và lối ra. Có thể kiểm tra rút ngắn thời gian EMA nhanh, mở rộng chênh lệch giữa các EMA để tìm kết hợp tối ưu.

  2. Tối ưu hóa tỷ lệ dừng lỗ để giảm rủi ro dừng sớm.

  3. Kiểm tra các giai đoạn giữ khác nhau để tìm ra tối ưu. Đánh giá lợi nhuận cho các giai đoạn giữ khác nhau để xác định thời gian giữ tốt nhất.

  4. Đánh giá thêm các bộ lọc kỹ thuật khác. Kiểm tra thêm chỉ số biến động vv để cải thiện hiệu quả của các quyết định giao dịch.

Kết luận

Chiến lược giao dịch EMA và MACD kép này nhằm mục đích nắm bắt các cơ hội rút ngắn ngắn hạn để rút ngắn và kiếm lợi nhuận. Nó sử dụng đầy đủ phản ứng nhanh của EMA và sức mạnh phán đoán thay đổi động lực của MACD để cải thiện độ chính xác trong thời gian giao dịch với xác nhận kép. Không gian tối ưu hóa nằm trong điều chỉnh tham số, kiểm soát trượt, thời gian giữ vv. Tối ưu hóa tham số cẩn thận có thể dẫn đến lợi nhuận tốt.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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('Fast EMA above Slow EMA with MACD (by Coinrule)',
//          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, 8)
slowEMA = ta.ema(close, 26)
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, macd_signal)


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

Thêm nữa