Chiến lược giao dịch đường trung bình động golden cross và dead cross


Ngày tạo: 2024-02-22 16:25:13 sửa đổi lần cuối: 2024-02-22 16:25:13
sao chép: 0 Số nhấp chuột: 364
1
tập trung vào
1182
Người theo dõi

Chiến lược giao dịch đường trung bình động golden cross và dead cross

Tổng quan

Chiến lược giao dịch moving average là một chiến lược giao dịch định lượng theo dõi sự giao thoa của đường trung bình di chuyển ngắn hạn và dài hạn (EMA), thực hiện các hoạt động mua và bán khi có hai đường trung bình di chuyển. Chiến lược này kết hợp với MACD để đánh giá tín hiệu giao dịch.

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

Chiến lược này chủ yếu dựa trên chỉ số EMA 12, EMA 26 và MACD.

  1. Tính toán EMA ngày 12 và EMA ngày 26.
  2. Tính MACD (EMA ngày 12 trừ EMA ngày 26)
  3. Tính toán EMA 9 ngày của MACD như một đường tín hiệu.
  4. Một tín hiệu mua được tạo ra khi MACD vượt qua dây tín hiệu.
  5. Khi MACD đi qua đường dây tín hiệu, nó tạo ra tín hiệu bán.
  6. Khi kết thúc dây K thứ hai tạo ra tín hiệu, thực hiện giao dịch mua hoặc bán tương ứng.

Ngoài ra, chiến lược này còn đặt ra một số điều kiện lọc:

  1. Thời gian giao dịch là các giờ không giao dịch hàng ngày.
  2. Các giá trị tuyệt đối của MACD và đường tín hiệu cần lớn hơn 0.08。
  3. Mỗi lần chỉ được phép giữ một vị trí.

Phân tích lợi thế

Chiến lược này kết hợp với các đường trung bình di chuyển và MACD để nắm bắt hiệu quả các điểm biến của xu hướng ngắn hạn và trung hạn của thị trường. Các lợi thế chính là:

  1. Các quy tắc chiến lược rất đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
  2. Các tham số chỉ số đã được tối ưu hóa, hiệu suất khá ổn định.
  3. Theo dõi các xu hướng ngắn hạn và rút lui kịp thời.
  4. Các giao dịch được thực hiện theo logic nghiêm ngặt, tránh các giao dịch không có hiệu lực.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Đánh giá dữ liệu phù hợp với rủi ro. Trong thực tế, các tham số và ngưỡng có thể cần phải điều chỉnh.
  2. Rủi ro về chi phí trượt quá cao do giao dịch thường xuyên.
  3. Theo đó, các nhà đầu tư sẽ phải đối mặt với những rủi ro khi họ không rút ra kịp thời.
  4. Các nhà đầu tư cũng có thể sử dụng các giao dịch số hóa để tăng cường rủi ro.

Phương pháp giảm thiểu tương ứng:

  1. Động thái tối ưu hóa tham số, điều chỉnh giá trị giảm.
  2. Cần phải giảm bớt các giao dịch không cần thiết.
  3. Nó được kết hợp với nhiều chỉ số khác để đánh giá tín hiệu đảo ngược.
  4. Kiểm soát chặt chẽ vị thế và đòn bẩy.

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

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Kiểm tra các kết hợp trung bình di chuyển có chu kỳ dài hơn để tìm các tham số tối ưu.
  2. Các yếu tố cơ bản như tăng lợi nhuận của công ty, các sự kiện quan trọng như là bộ lọc.
  3. Kết hợp với nhiều chỉ số khác để xác định thời gian thay đổi xu hướng, như Blink, KDJ và nhiều hơn nữa.
  4. Phát triển cơ chế dừng lỗ. Khi lỗ đạt đến điểm dừng lỗ được đặt trước, hãy chủ động dừng lỗ.
  5. Thêm tỷ lệ nguy hiểm để kiểm soát rút lui tối đa.

Tóm tắt

Moving Average Binary Dead Fork kết hợp với chiến lược giao dịch MACD, tạo ra tín hiệu giao dịch bằng cách theo dõi xu hướng đơn giản, dễ thực hiện và kết hợp với điều kiện lọc thích hợp để kiểm soát rủi ro, là một chiến lược giao dịch định lượng hiệu quả. Chiến lược này có thể được cải thiện bằng cách tối ưu hóa tham số, tăng cơ chế dừng lỗ và kết hợp với nhiều chỉ số phụ trợ.

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

//@version=5
strategy("EMMA", max_bars_back = 200)

var up1 = #26A69A
var up2 = #B2DFDB
var down1 = #FF5252
var down2 = #FFCDD2
var confirmationLength = 2

var earliest = timestamp("20 Jan 2024 00:00 +0000")

// Regn u
shortEMA = ta.ema(close, 12)
longEMA = ta.ema(close, 26)
macd = shortEMA - longEMA
signal = ta.ema(macd, 9)
delta = macd - signal
absDelta = math.abs(delta)
previousDelta = delta[1]

signalCrossover = ta.crossover(macd, signal)
signalCrossunder = ta.crossunder(macd, signal)

harskiftetdag = hour(time[confirmationLength]) > hour(time)

enterLongSignal = signalCrossover[confirmationLength] and (macd > signal) and (absDelta >= 0.08)
exitLongSignal = signalCrossunder[confirmationLength] and (macd < signal)

enterShortSignal = signalCrossunder[confirmationLength] and (macd < signal) and (absDelta >= 0.08)
exitShortSignal = signalCrossover[confirmationLength] and (macd > signal)

// Så er det tid til at købe noe
qty = math.floor(strategy.equity / close)

if time >= earliest and not harskiftetdag
    if exitLongSignal 
        strategy.close("long")
    else if enterLongSignal
        strategy.close("short")
        strategy.entry("long", strategy.long, qty = qty)

    if exitShortSignal
        strategy.close("short")
    else if enterShortSignal
        strategy.close("long")
        strategy.entry("short", strategy.short, qty = qty)

// Så er det tid til at vise noe

plot(macd, color=color.blue)
plot(signal, color=color.orange)

// bgcolor(color = delta > 0.1 ? color.new(color.green, 90) : color.new(color.green, 100))
// bgcolor(color = signalCrossover ? color.purple : signalCrossunder ? color.aqua : color.new(color.green, 100))

histogramColor = delta > 0 ? (previousDelta < delta ? up1 : up2) : (previousDelta > delta ? down1 : down2)

plot(
     delta,
     style=plot.style_columns,
     color=histogramColor
     )