Chiến lược theo dõi xu hướng MACD Crossover trung bình động kép


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

Chiến lược theo dõi xu hướng MACD Crossover trung bình động kép

Tổng quan

Chiến lược này là một chiến lược giao dịch tự động dựa trên các chỉ số kỹ thuật MACD với hai đường trung bình di chuyển chéo. Nó sử dụng các tín hiệu chéo đường nhanh và chậm của chỉ số MACD để xác định hướng xu hướng và theo dõi xu hướng.

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

Chiến lược này đầu tiên tính ba đường cong của MACD: đường nhanh, đường chậm và đường chênh lệch. Đường nhanh là đường trung bình di chuyển nhanh hơn trong một chu kỳ nhất định, đường chậm là đường trung bình di chuyển dài hơn.

Chiến lược này sử dụng nguyên tắc này để thực hiện nhiều hơn khi giao dịch vàng và bán khi giao dịch vàng chết; hoặc làm trống khi giao dịch vàng và bán khi giao dịch vàng chết, để thực hiện xu hướng theo dõi tự động. Đồng thời, chiến lược này cũng đánh giá giá trị tuyệt đối của đường MACD là dương tính và âm tính, tránh tín hiệu giả, đảm bảo thực sự nắm bắt các bước ngoặt xu hướng.

Lợi thế chiến lược

  • Sử dụng các đường trung bình di chuyển đôi để đánh giá xu hướng và nắm bắt chính xác sự biến đổi xu hướng
  • Chỉ số kỹ thuật MACD giảm tín hiệu giả, cải thiện chất lượng tín hiệu
  • Bạn có thể lựa chọn làm thêm hoặc chỉ làm thêm/không
  • Các tham số có thể điều chỉnh để thích ứng với các môi trường thị trường khác nhau

Rủi ro chiến lược

  • Biến động trung bình chéo đôi bị chậm trễ và có thể bỏ lỡ một phần lợi nhuận khi bắt đầu chuyển đổi
  • Chỉ số MACD dễ tạo ra tín hiệu giả trong thị trường sụp đổ
  • Cần điều chỉnh các tham số thích hợp để tránh quá nhạy cảm hoặc chậm chạp

Phương pháp giải quyết rủi ro:

  • Kết hợp các chỉ số khác để lọc tín hiệu
  • Điều chỉnh tham số, giảm tần suất giao dịch
  • Chiến lược này chỉ được áp dụng khi có xu hướng rõ ràng.

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

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

  1. Kết hợp với các chỉ số khác để xác nhận tín hiệu, chẳng hạn như chỉ số KDJ, chỉ số Brin và các chỉ số khác, để lọc tín hiệu giả

  2. Thay đổi cơ chế vào sân, chẳng hạn như thêm bộ lọc đột phá, tránh dự kiến vào sân quá sớm hoặc quá muộn

  3. Cài đặt tham số tối ưu hóa, điều chỉnh chu kỳ đường nhanh và đường chậm theo chu kỳ khác nhau và môi trường thị trường để phù hợp với thị trường

  4. Tham gia chiến lược dừng lỗ để kiểm soát tổn thất đơn lẻ

  5. Có thể mở rộng sang các loại khác, chẳng hạn như ngoại hối, tiền kỹ thuật số.

Tóm tắt

Chiến lược theo dõi xu hướng MACD chéo hai đường trung bình di chuyển, sử dụng chỉ số MACD để xác định hướng xu hướng, kết hợp với tín hiệu lọc chéo đường chậm và nhanh, có thể nắm bắt hiệu quả xu hướng, tự động theo dõi xu hướng. Ưu điểm của chiến lược là xác định xu hướng chính xác, điều chỉnh tham số linh hoạt, có thể được tối ưu hóa theo môi trường thị trường. Cần chú ý kiểm soát rủi ro, tránh phát sinh tín hiệu sai.

Mã nguồn chiến lược
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 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/
// © DeMindSET

//@version=4
strategy("MACD Trend Follow Strategy", overlay=false)
// Getting inputs
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"]) 
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
//
Bull= macd > signal
Bear= macd < signal
ConBull=macd>0
ConBear=macd<0
//
Green= Bull and ConBull
Red= Bear and ConBear
Yellow= Bull and ConBear
Blue= Bear and ConBull
//
bcolor = Green ? color.green : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

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

if LSB == "Long only" and Green
    strategy.entry("L",true)
if LSB == "Long only" and Red
    strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Green
    strategy.entry("L",true)
if LSB == "Both" and Red
    strategy.entry("S",false)
if LSB == "Short only" and Red
    strategy.entry("S",false)
if LSB == "Short only" and Green
    strategy.close("S",qty_percent=100,comment="TP Short")