Tài nguyên đang được tải lên... tải...

Xu hướng MACD theo chiến lược

Tác giả:ChaoZhang, Ngày: 2024-03-29 15:14:18
Tags:

img

Tổng quan

Chiến lược theo xu hướng MACD là một chiến lược giao dịch định lượng dựa trên chỉ số MACD. Ý tưởng chính của chiến lược này là sử dụng các tín hiệu chéo vàng và chéo chết của chỉ số MACD để xác định hướng của xu hướng và thiết lập các vị trí dài hoặc ngắn vào thời điểm thích hợp. Khi đường MACD vượt qua đường tín hiệu và trên trục không, một vị trí dài được mở; khi đường MACD vượt qua dưới đường tín hiệu và dưới trục không, một vị trí ngắn được mở. Chiến lược sử dụng điểm thấp gần nhất như là điểm dừng lỗ cho các vị trí dài và điểm cao gần nhất là điểm dừng lỗ cho các vị trí ngắn. Điều kiện đóng là khi đường MACD vượt qua đường tín hiệu theo hướng ngược lại.

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

Nguyên tắc cốt lõi của Chiến lược theo xu hướng MACD là sử dụng chỉ số MACD để nắm bắt sự hình thành và đảo ngược xu hướng. Chỉ số MACD bao gồm sự khác biệt giữa hai đường trung bình động (nhanh và chậm) và được sử dụng kết hợp với đường tín hiệu để tạo ra các tín hiệu giao dịch. Khi đường MACD vượt qua trên đường tín hiệu và trên trục không, nó cho thấy một xu hướng tăng đang hình, và một vị trí dài được mở. Khi đường MACD vượt qua dưới đường tín hiệu và dưới trục không, nó cho thấy một xu hướng giảm đang hình thành, và một vị trí ngắn được mở. Chiến lược sử dụng điểm thấp đáng kể gần đây nhất như là điểm dừng lỗ cho các vị trí dài và điểm cao đáng kể gần đây nhất như là mức dừng lỗ cho các vị trí ngắn để kiểm soát rủi ro. Khi đường tín hiệu MACD vượt qua đường ngược lại, vị trí hiện tại được đóng.

Ưu điểm chiến lược

  1. Chiến lược theo xu hướng MACD có thể nắm bắt hiệu quả các cơ hội xu hướng bằng cách thiết lập các vị trí ở đầu hình thành xu hướng, tận dụng đầy đủ đà của xu hướng.

  2. Chiến lược sử dụng cả đường chéo vàng / cái chết MACD và trục không như các điều kiện lọc, có thể lọc tốt hơn các tín hiệu sai trong thị trường dao động.

  3. Chiến lược sử dụng các điểm cao và thấp quan trọng gần đây nhất làm mức dừng lỗ, có thể kiểm soát rủi ro của một giao dịch duy nhất.

  4. Logic chiến lược là rõ ràng, dễ hiểu và thực hiện, làm cho nó thích hợp cho người mới bắt đầu học.

Rủi ro chiến lược

  1. Chỉ số MACD về cơ bản là một chỉ số chậm, có thể trải qua sự giảm đáng kể khi bắt đầu đảo ngược xu hướng.

  2. Chiến lược có thể tạo ra các giao dịch thường xuyên trong thị trường dao động, dẫn đến chi phí giao dịch cao.

  3. Việc thiết lập mức dừng lỗ phụ thuộc vào các điểm cao và thấp quan trọng gần đây nhất, có thể dẫn đến dừng lỗ sớm hoặc muộn trong một số tình huống nhất định.

  4. Chiến lược không xem xét kích thước vị trí và quản lý tiền, cần phải được tối ưu hóa dựa trên các hoàn cảnh cụ thể trong các ứng dụng thực tế.

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

  1. Xem xét việc giới thiệu các chỉ số kỹ thuật hoặc mô hình hành vi giá khác như điều kiện lọc để cải thiện độ tin cậy và độ chính xác của tín hiệu.

  2. Tối ưu hóa phương pháp thiết lập mức dừng lỗ, chẳng hạn như sử dụng ATR hoặc lỗ dừng dựa trên tỷ lệ phần trăm, để kiểm soát tốt hơn rủi ro.

  3. Đưa ra các cơ chế quản lý tiền và kích thước vị trí để điều chỉnh động kích thước vị trí dựa trên sự biến động của thị trường và vốn hóa tài khoản.

  4. Tối ưu hóa và điều chỉnh các tham số cho các thị trường và công cụ giao dịch khác nhau để tìm các kết hợp tham số phù hợp nhất.

Tóm lại

Chiến lược theo xu hướng MACD là một chiến lược giao dịch định lượng đơn giản và hiệu quả nắm bắt các cơ hội xu hướng bằng cách tận dụng các đặc điểm của chỉ số MACD. Chiến lược có logic rõ ràng, dễ hiểu và thực hiện, làm cho nó phù hợp cho người mới bắt đầu học. Tuy nhiên, trong các ứng dụng thực tế, cần chú ý đến kiểm soát rủi ro, và nó nên được kết hợp với các phương pháp khác để tối ưu hóa và cải thiện để đạt được hiệu suất giao dịch mạnh mẽ hơn.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true)
// switch = input(true, title="Enable MACD Bar Color")
// X001TK MACD trendfollow Strategy
//
// 
// This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition.
//
//
// This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero
//
// You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short
// 
//
// Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition 
//
// 
// 
//
// Input
fastMAlen = input(3, minval=1, title="MACD fast moving average")
slowMAlen = input(9,minval=1, title="MACD slow moving average")
signalMACDlen = input(5,minval=1, title="MACD signal line moving average")
// switch = input(true, title="Enable MACD Bar Color")
length = input(1, minval=1)



// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2002, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)



// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 00, 00)        // backtest finish window
window()  => true // create function "within window of time"

// MACD Calculation
MACD = ema(close, fastMAlen) - ema(close, slowMAlen)
signalMACD = ema(MACD, signalMACDlen)
delta = MACD - signalMACD
fastMA = ema(close,fastMAlen)
slowMA = ema(close,slowMAlen)


// Colors
//bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray :  gray 
//barcolor(switch?bartrendcolor:na)

barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na
barcolor(color=barcolour)


// === STRATEGY ===
// conditions

longCond =  MACD > signalMACD and MACD > 0 
XlongCond = MACD < signalMACD 
ShortCond = MACD < signalMACD and MACD < 0 
XShortCond = MACD > signalMACD 





strategy.entry("long", strategy.long, when=longCond==true and window()==true )
//strategy.exit(id="Close Long", stop=longStop)//, limit=longTake)
strategy.close("long", when=XlongCond==true and window()==true)
strategy.entry("short", strategy.short,  when=ShortCond==true and window()==true )
//strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake)
strategy.close("short", when=XShortCond==true and window()==true)

// === /STRATEGY ===

Thêm nữa