Chiến lược giảm giá trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2023-12-19 11:55:25
Tags:

img

Tổng quan

Chiến lược pullback trung bình động theo dõi các giao dịch chéo của các giá trung bình động, và xác định các cơ hội pullback để thực hiện các giao dịch ngược xu hướng khi các đường chéo vàng xảy ra.

Chiến lược logic

Cốt lõi của chiến lược này bao gồm hai đường trung bình động - đường EMA 14 ngày và đường SMA 56 ngày. Nó kích hoạt tín hiệu mua khi đường EMA 14 ngày vượt qua đường SMA 56 ngày từ dưới. Sau đó, chiến lược nhìn lại 20 ngày để tìm mức thấp dao động như hỗ trợ. Kết hợp với giá đóng tại điểm chéo, các đường rút Fibonacci được vẽ ra, với đường rút 1.272 như đường vào và 0.618 như đường ra. Do đó, chiến lược thiết lập một điểm vào để đi ngắn sau khi đường vàng vượt qua, và kiếm lợi nhuận nếu giá thực sự rút lại đường 0.618.

Các bước chính của chiến lược này là:

  1. Tính toán đường EMA 14 ngày và đường SMA 56 ngày;
  2. Kiểm tra xem EMA có vượt trên tín hiệu đường chéo vàng SMA không;
  3. Nhìn lại để tìm một cú swing thấp để hỗ trợ;
  4. Chụp các đường rút Fibonacci với điểm thấp và điểm chéo;
  5. Đặt mục nhập ngắn tại đường rút 1.272;
  6. Đặt dừng lợi nhuận ở 0.618 đường rút.

Điều trên giải thích quy trình làm việc chính và logic đằng sau chiến lược giảm giá này.

Ưu điểm

Những lợi thế chính của chiến lược giảm giá trung bình động này là:

  1. Ý tưởng chiến lược là đơn giản và dễ hiểu;
  2. Sử dụng lý thuyết Fibonacci để thiết lập kiểm soát rủi ro tốt hơn;
  3. Có thể nắm bắt các cơ hội đảo ngược ngắn hạn cho lợi nhuận tốt;
  4. Chỉ cần một đường trung bình chuyển động để kích hoạt các mục nhập.

Tóm lại, đây là một phương pháp rất phù hợp cho giao dịch ngắn hạn theo kiểu đảo ngược trung bình. Nó nắm bắt cơ hội rút lui để kiếm lợi nhuận. Chiến lược này cũng đơn giản và trực tiếp để thực hiện.

Rủi ro

Mặc dù có lợi, cũng có một số rủi ro cần lưu ý cho chiến lược này:

  1. Việc giữ dài có thể dẫn đến tổn thất lớn, vì chúng tôi đang chống lại xu hướng bán ngắn;
  2. Tỷ lệ khôi phục quá nhỏ để đạt được lợi nhuận.
  3. Cài đặt đường rút quá mạnh.

Để giảm thiểu rủi ro, chúng tôi có thể thiết lập một khung thời gian dừng lỗ ngắn để kiểm soát lỗ; cũng tối ưu hóa phạm vi đường rút để nhắm đến mục tiêu lợi nhuận hợp lý.

Cơ hội gia tăng

Vẫn còn nhiều chỗ để tối ưu hóa chiến lược rút lui trung bình động này:

  1. Kiểm tra các thiết lập tham số khác nhau trên các mục như thời gian trung bình chuyển động, ngày xem lại, số Fibonacci nhân vv để tìm tối ưu;

  2. Thêm các cơ chế dừng lỗ như dừng nhiều lần hoặc dừng lại để kiểm soát tốt hơn rủi ro;

  3. Thiết lập các chỉ số khác như các bộ lọc để tránh các điều kiện thị trường không phù hợp;

  4. Tối ưu hóa quy tắc quản lý rủi ro và quy mô vị trí.

Thông qua thử nghiệm và tối ưu hóa nghiêm ngặt, cải tiến đáng kể có thể đạt được cho chiến lược giao dịch này.

Kết luận

Chiến lược thu hồi trung bình động là một chiến lược giao dịch ngắn hạn rất thực tế. Nó nắm bắt các cơ hội đảo ngược trung bình khi giá giảm trong ngắn hạn. Ý tưởng chiến lược đơn giản và dễ hiểu. Vẫn còn những rủi ro cần phải giải quyết thông qua tối ưu hóa và kiểm soát rủi ro. Nhìn chung đây là một chiến lược định lượng đầy hứa hẹn xứng đáng với nghiên cứu và ứng dụng thêm.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC Pullback", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2035, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)


// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28


// Locate Swing Lows
leftBars = input(20)
rightBars=input(20)
swinglow = pivotlow(close, leftBars, rightBars)
plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars)

if goLong == true and time >= testPeriodStart and time <= testPeriodStop
    // We try to make sure that we're catching the first Pullback after the crossover
    if ema14[12] < sma56[12] 
        pivotpoint = lowest(40)[0] //lowest value of the month as our swing low
        
        // We calculate a Fib 1.272 extension (from the previous swing low to 
        // the crossover long entry's open) and use this as our entry target to short the Pullback
        extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint
        shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint        
        
        strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget)
        // I would like to use a trailing stop but for know we just hope to get 
        // filled if the pullback reaches all the way down to the 0.618.
        // We also place a tight stop loss since we trying to short an uptrend
        strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)

Thêm nữa