Chiến lược SMA đảo ngược trung bình HYE

Tác giả:ChaoZhang, Ngày: 2023-12-15 16:51:23
Tags:

img

Tổng quan

Chiến lược SMA đảo ngược trung bình HYE là một chiến lược giao dịch đảo ngược trung bình sử dụng các đường trung bình di chuyển đơn giản và chỉ số sức mạnh tương đối (RSI). Nó tạo ra tín hiệu mua và bán khi giá lệch so với đường trung bình di chuyển một tỷ lệ phần trăm nhất định, kết hợp với lọc chỉ số RSI. Đây là một chiến lược giao dịch ngắn hạn.

Chiến lược logic

Chiến lược chủ yếu dựa trên các quy tắc sau:

  1. Khi đường trung bình di chuyển đơn giản 2 giai đoạn giảm 3% dưới đường trung bình di chuyển đơn giản 5 giai đoạn, giá được coi là lệch so với đường trung bình và một tín hiệu mua được tạo ra.

  2. Khi SMA 2 giai đoạn vượt qua SMA 5 giai đoạn, nó được coi là giá quay trở lại mức trung bình và một tín hiệu bán được tạo ra.

  3. Kết hợp với đường trung bình động theo hàm số của chỉ số RSI 5 giai đoạn, tín hiệu mua chỉ được tạo ra khi chỉ số RSI dưới 30 và tín hiệu bán khi chỉ số RSI trên 70, để tránh giao dịch không cần thiết.

Ý tưởng chính là nắm bắt cơ hội đảo ngược trung bình bằng cách sử dụng biến động giá ngắn hạn. Mua khi giá giảm một tỷ lệ phần trăm nhất định, bán khi giá quay trở lại gần đường trung bình động, để kiếm lợi nhuận. Trong khi đó, chỉ số RSI có thể xác định các điều kiện mua quá mức và bán quá mức để lọc ra một số tín hiệu giao dịch ồn ào.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Dễ dàng thực hiện với chi phí giám sát thấp.

  2. Nhận các cơ hội đảo ngược trung bình ngắn hạn bằng cách sử dụng độ lệch giá từ đường trung bình động.

  3. Chỉ số RSI có thể lọc hiệu quả tiếng ồn giao dịch và tránh theo đuổi đỉnh và giết mổ thung lũng.

  4. Điều chỉnh tham số linh hoạt thích nghi với môi trường thị trường khác nhau.

  5. Hỗ trợ giao dịch chỉ dài, chỉ ngắn hoặc cả hai hướng để phù hợp với sở thích khác nhau.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Sự đảo ngược trung bình dựa trên giá quay trở lại mức trung bình động. Có rủi ro dừng lỗ cao nếu thay đổi giá mạnh mẽ xảy ra.

  2. Cài đặt tham số không chính xác có thể dẫn đến giao dịch quá mức hoặc bỏ lỡ cơ hội.

  3. Hiệu suất tương quan chặt chẽ với thị trường.

Các biện pháp đối phó:

  1. Thiết lập stop loss thích hợp để kiểm soát lỗ giao dịch duy nhất.

  2. Dần dần tối ưu hóa các thông số và đánh giá lợi nhuận điều chỉnh rủi ro.

  3. Kết hợp với chỉ số cổ phiếu để tăng khả năng thích nghi.

Hướng dẫn tối ưu hóa

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

  1. Kiểm tra các kết hợp trung bình động khác nhau để tìm các thông số tối ưu.

  2. Hãy thử kết hợp các chỉ số khác để xác định xu hướng và cải thiện tỷ lệ thắng.

  3. Thêm các cơ chế dừng lỗ để giảm mức rút tối đa.

  4. Tối ưu hóa các quy tắc nhập và xuất để cải thiện các yếu tố lợi nhuận.

  5. Sử dụng các kỹ thuật học máy để xây dựng các thông số thích nghi.

Kết luận

Chiến lược SMA đảo ngược trung bình HYE là một chiến lược đảo ngược trung bình ngắn hạn đơn giản và thực tế. Nó sử dụng độ lệch giá từ trung bình động để tạo ra tín hiệu giao dịch, lọc ra tiếng ồn với chỉ số RSI. Nó đã chứng minh hiệu suất backtest tốt. Chiến lược dễ thực hiện với các tham số điều chỉnh thích nghi với môi trường thị trường khác nhau. Nhưng cần lưu ý sự không chắc chắn của rủi ro đảo ngược và dừng lỗ, cần tối ưu hóa thích hợp cho các điều kiện thị trường khác nhau. Nhìn chung, nó cung cấp một mẫu chiến lược đảo ngược trung bình tham chiếu tốt cho giao dịch định lượng.


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

// @version=4

strategy("HYE Mean Reversion SMA [Strategy]", overlay = true )
  
//Strategy inputs
source = input(title = "Source", defval = close)
tradeDirection = input(title="Trade Direction", type=input.string,
     options=["Long Only", "Short Only", "Both"], defval="Long Only") 
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 5)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 3)
percentAboveToSell = input(title = "Percent above to sell %", defval = 3)
rsiPeriod = input(title = "Rsi Period", defval = 2)
rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30)
rsiLevelforSell = input(title = "Minimum Rsi Level for Sell", defval = 70)
     
longOK  = (tradeDirection == "Long Only") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short Only") or (tradeDirection == "Both")

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=31, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=12, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)
     
inDateRange = true

//Strategy calculation 
rsiValue = rsi(source, rsiPeriod)
rsiEMA   = ema(rsiValue, 5)
smallMA = sma(source, smallMAPeriod)
bigMA =  sma(source, bigMAPeriod) 
buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0]
sellMA = ((100 + percentAboveToSell) / 100) * sma(source, bigMAPeriod)[0]

if(crossunder(smallMA, buyMA) and rsiEMA < rsiLevelforBuy and inDateRange and longOK)
    strategy.entry("BUY", strategy.long) 

if(crossover(smallMA, bigMA) or not inDateRange)
    strategy.close("BUY")

if(crossover(smallMA, sellMA) and rsiEMA > rsiLevelforSell and inDateRange and shortOK)
    strategy.entry("SELL", strategy.short)

if(crossunder(smallMA, bigMA) or not inDateRange)
    strategy.close("SELL")



Thêm nữa