Chiến lược dự đoán xu hướng MACD

Tác giả:ChaoZhang, Ngày: 2023-11-02 15:25:11
Tags:

img

Tổng quan

Chiến lược dự đoán xu hướng MACD là một chiến lược theo xu hướng dựa trên chỉ số MACD và chỉ số EMA. Không giống như các chiến lược MACD truyền thống tạo ra tín hiệu giao dịch bằng cách băng qua các đường tín hiệu, chiến lược này tạo ra tín hiệu giao dịch bằng cách thay đổi khoảng cách giữa đường MACD và đường tín hiệu để nắm bắt những thay đổi xu hướng.

Chiến lược logic

  1. Tính toán đường nhanh DEMAfast: Tính toán hai giá trị EMA của đường nhanh MMEfast, và tính toán đường nhanh DEMAfast theo công thức DEMAfast = ((2 * MMEfast) - MMEfastb).

  2. Tính toán đường chậm DEMAslow: Tính toán hai giá trị EMA của đường chậm MMEslow, và tính toán đường chậm DEMAslow theo công thức DEMAslow = ((2 * MMEslow) - MMEslowb).

  3. Tính toán đường MACD: Đường MACD là sự khác biệt giữa đường nhanh DEMAfast và đường chậm DEMAslow, LigneMACDZeroLag.

  4. Tính toán đường tín hiệu: Tính toán hai giá trị EMA của đường MACD MMEsignal, và tính toán đường tín hiệu Lignesignal theo công thức Lignesignal = ((2 * MMEsignal) - MMEsignalb).

  5. So sánh đường MACD và đường tín hiệu: Tạo tín hiệu mua khi đường MACD lớn hơn đường tín hiệu và tạo tín hiệu bán khi đường MACD nhỏ hơn đường tín hiệu.

  6. Tính toán trên sử dụng thuật toán DEMA, có thể giảm hiệu quả sự chậm trễ của chỉ số MACD.

Ưu điểm của Chiến lược

  1. Sử dụng thuật toán DEMA có thể làm giảm sự chậm trễ của chỉ số MACD và làm cho tín hiệu giao dịch nhạy cảm hơn.

  2. Nó không dựa vào các tín hiệu chéo MACD, nhưng ghi lại những thay đổi xu hướng thông qua những thay đổi khoảng cách giữa MACD và các đường tín hiệu, có thể đi vào xu hướng sớm hơn.

  3. Chiến lược đánh giá chính xác xu hướng, và nhân tố lợi nhuận có thể đạt 1,6-3,5 với lợi nhuận tốt.

  4. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp với giao dịch định lượng.

Rủi ro của chiến lược

  1. Là một chỉ số chậm, MACD có thể tạo ra nhiều tín hiệu giao dịch không hợp lệ trong các thị trường giới hạn phạm vi.

  2. Mặc dù thuật toán DEMA làm giảm sự chậm trễ, nhưng nó không thể loại bỏ hoàn toàn sự chậm trễ.

  3. Là một xu hướng sau chiến lược, lợi nhuận có thể không tốt trên các thị trường khác nhau.

  4. Các thông số sma, lma, tsp cần được tối ưu hóa cho các giai đoạn và giống khác nhau.

  5. Các chiến lược dừng lỗ có thể cần phải được thêm vào để kiểm soát lỗ.

Hướng dẫn tối ưu hóa chiến lược

  1. Tối ưu hóa các tham số sma, lma, tsp để thích nghi với các giai đoạn và loại giao dịch khác nhau.

  2. Thêm các chiến lược dừng lỗ năng động như ATR để kiểm soát mỗi lỗ giao dịch.

  3. Bao gồm các chỉ số đánh giá xu hướng để tránh giao dịch trên các thị trường khác nhau.

  4. Thêm kích thước vị trí để điều chỉnh các vị trí dựa trên biến động thị trường.

  5. Tối ưu hóa logic vào và ra để tinh chỉnh các quy tắc tín hiệu giao dịch.

Tóm lại

Chiến lược dự đoán xu hướng MACD cải thiện tính toán của MACD bằng cách sử dụng thuật toán DEMA để giảm độ trễ, và đánh giá xu hướng thông qua sự thay đổi khoảng cách giữa MACD và đường tín hiệu. Là một chiến lược theo xu hướng, nó có thể nắm bắt hiệu quả những thay đổi xu hướng. Nhân tố lợi nhuận có thể đạt đến 1.6-3.5, với một số ưu điểm nhất định. Nhưng nó vẫn cần tối ưu hóa thêm các thông số, chiến lược dừng lỗ, lọc các thị trường khác nhau, v.v. để thích nghi với nhiều môi trường thị trường hơn. Đây sẽ là hướng phát triển của chiến lược này.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © moritz1301

//@version=4
strategy("MACD Trendprediction Strategy V1", shorttitle="MACD TPS", overlay=true)
sma = input(12,title='DEMA Courte')
lma = input(26,title='DEMA Longue')
tsp = input(9,title='Signal')
dolignes = input(true,title="Lignes")

MMEslowa = ema(close,lma)
MMEslowb = ema(MMEslowa,lma)
DEMAslow = ((2 * MMEslowa) - MMEslowb )

MMEfasta = ema(close,sma)
MMEfastb = ema(MMEfasta,sma)
DEMAfast = ((2 * MMEfasta) - MMEfastb)

LigneMACDZeroLag = (DEMAfast - DEMAslow)

MMEsignala = ema(LigneMACDZeroLag, tsp)
MMEsignalb = ema(MMEsignala, tsp)
Lignesignal = ((2 * MMEsignala) - MMEsignalb )

MACDZeroLag = (LigneMACDZeroLag - Lignesignal)

bgcolor(LigneMACDZeroLag<Lignesignal ? color.red : color.green)

if (LigneMACDZeroLag>Lignesignal)
	strategy.entry("Buy", strategy.long, comment="BUY")
	
if (LigneMACDZeroLag<Lignesignal)
	strategy.close("Buy", strategy.long, comment="SELL")








Thêm nữa