Chiến lược giao dịch ngắn hạn dựa trên kênh EMA và MACD


Ngày tạo: 2024-01-23 14:30:02 sửa đổi lần cuối: 2024-01-23 14:30:02
sao chép: 0 Số nhấp chuột: 741
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch ngắn hạn dựa trên kênh EMA và MACD

Tổng quan

Chiến lược này được gọi là chiến lược giao dịch đường ngắn dựa trên kênh EMA và MACD. Nó kết hợp kênh EMA và chỉ số MACD để xác định xu hướng và cung cấp tín hiệu giao dịch.

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

Chiến lược này sử dụng 5 ngày EMA và 21 ngày EMA để tạo ra một kênh EMA. Khi 5 ngày EMA vượt qua 21 ngày EMA, thị trường được coi là đi vào đa đầu, khi 5 ngày EMA vượt qua 21 ngày EMA, thị trường được coi là đi vào không. Đường thẳng của MACD chỉ số có thể được sử dụng để lọc tín hiệu giả. Chỉ khi đường thẳng MACD lớn hơn 0, tín hiệu mua sẽ được phát đi; Chỉ khi đường thẳng MACD nhỏ hơn 0, tín hiệu bán sẽ được phát đi.

Phân tích lợi thế

Chiến lược này kết hợp với nhận dạng xu hướng và lọc chỉ số, có thể xác định hiệu quả hướng của tình hình đường ngắn. Sử dụng kênh EMA để xác định hướng xu hướng chính, sau đó sử dụng MACD để lọc các tín hiệu giả mạo, có thể làm tăng đáng kể khả năng kiếm lợi nhuận.

Phân tích rủi ro

Chiến lược này chủ yếu áp dụng cho giao dịch đường ngắn, không hiệu quả trong đường dài và biến động. Trong thị trường đường dài, tín hiệu chéo của kênh EMA thường xuyên, nhưng phần lớn là tín hiệu giả, trong khi đó đồ thị MACD thẳng có thể có một số tác dụng lọc, nhưng hiệu quả vẫn còn hạn chế. Ngoài ra, cơ chế dừng lỗ cố định làm cho nó khó nắm bắt lợi nhuận gia tăng do xu hướng đường dài mang lại.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa các tham số của EMA, tìm kiếm các tham số để tối đa hóa lợi nhuận phù hợp với các loại giao dịch cụ thể;
  2. Tối ưu hóa các tham số của MACD để có hiệu quả lọc tốt hơn;
  3. Kết hợp với chỉ số biến động, mở rộng phạm vi dừng lỗ khi thị trường biến động;
  4. Tham gia theo dõi các cơ chế dừng lỗ để dừng lỗ gần hơn với giá, giảm khả năng kích hoạt các lỗ dừng không cần thiết trong khi đảm bảo lợi nhuận.

Tóm tắt

Chiến lược này có lợi nhuận cao, đặc biệt phù hợp với giao dịch ngắn, là một lựa chọn tốt trong chiến lược giao dịch định lượng theo đuổi giao dịch tần số cao. Tuy nhiên, khi sử dụng, người giao dịch nên chú ý điều chỉnh các tham số hợp lý theo thị trường, tối đa hóa lợi nhuận của chiến lược, đồng thời kiểm soát rủi ro giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © moondevonyt

//@version=5
strategy("Scalping with EMA channel and MACD", overlay=true)

// Exponential moving average inputs
ema21 = ta.ema(close, 21)
ema5 = ta.ema(close, 5)

// MACD inputs
fastLength = 18
slowLength = 34
signalSmoothing = 12

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine

// Buy and sell conditions
buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0
sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0

// Re-entry conditions
reEntryBuyCondition = close > ema21
reEntrySellCondition = close < ema21

// Set stop loss and take profit
stopLoss = 8
takeProfit = 15

// Execute Strategy
if buyCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit)
if reEntryBuyCondition
    strategy.entry("Re-Enter Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit)

if sellCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit)
if reEntrySellCondition
    strategy.entry("Re-Enter Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit)

// Plotting EMAs and MACD
plot(ema21, color=color.blue, title="21 EMA")
plot(ema5, color=color.orange, title="5 EMA")
plot(macdHistogram, color=color.red, title="MACD Histogram")

// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")