Chiến lược giao dịch đảo ngược trung bình của Qiming Double Shift


Ngày tạo: 2023-12-15 16:51:23 sửa đổi lần cuối: 2023-12-15 16:51:23
sao chép: 0 Số nhấp chuột: 671
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch đảo ngược trung bình của Qiming Double Shift

Tổng quan

Chiến lược HYE Mean Reversion SMA là một chiến lược giao dịch trung bình sử dụng đường trung bình di chuyển đơn giản và chỉ số tương đối mạnh. Chiến lược này sử dụng các tín hiệu lọc của chỉ số RSI để tạo ra tín hiệu mua và bán khi giá lệch khỏi đường trung bình di chuyển một mức độ nhất định.

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

Chiến lược này 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 giai đoạn 2 giảm 3% so với đường trung bình di chuyển đơn giản giai đoạn 5, giá cổ phiếu được coi là sai lệch trung bình, tạo ra tín hiệu mua;

  2. Khi đường trung bình di chuyển đơn giản giai đoạn 2 xuyên qua đường trung bình di chuyển đơn giản giai đoạn 5, được coi là giá quay trở lại trung bình, tạo ra tín hiệu bán;

  3. Kết hợp với chỉ số di chuyển trung bình của chỉ số RSI 5 giai đoạn, chỉ có tín hiệu mua khi RSI thấp hơn 30 và tín hiệu bán khi RSI cao hơn 70, để tránh giao dịch không cần thiết.

Ý tưởng chính của chiến lược này là sử dụng biến động giá trong thời gian ngắn để nắm bắt cơ hội quay trở lại. Mua khi giá giảm một mức độ nhất định, bán khi giá trở lại gần đường trung bình, và kiếm lợi nhuận. Đồng thời, chỉ số RSI có thể được sử dụng để xác định tình trạng quá mua quá bán, 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

Chiến lược này có một số ưu điểm:

  1. Các hoạt động đơn giản, dễ thực hiện và chi phí giám sát thấp;

  2. Sử dụng các đặc điểm của giá lệch khỏi đường trung bình di chuyển để nắm bắt cơ hội quay trở lại đường trung bình ngắn, có hiệu quả tốt trong quá khứ;

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

  4. Có thể điều chỉnh các tham số một cách linh hoạt để thích ứng với các môi trường thị trường khác nhau;

  5. Các giao dịch khác nhau có thể được thực hiện chỉ với nhiều giao dịch, chỉ có giao dịch ngoại hối hoặc giao dịch hai chiều, tùy theo sở thích của bạn.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Giao dịch quay trở lại phụ thuộc vào khả năng giá quay trở lại đường trung bình, có nguy cơ dừng lỗ lớn hơn nếu giá biến động mạnh;

  2. Thiết lập tham số không đúng có thể dẫn đến giao dịch quá thường xuyên hoặc bỏ lỡ cơ hội;

  3. Hành động chiến lược có liên quan nhiều đến thị trường và hoạt động kém hơn trong thị trường ngang và biến động.

Phản ứng:

  1. Thiết lập lỗ dừng hợp lý, kiểm soát tổn thất đơn lẻ;

  2. Các tham số được tối ưu hóa từng bước để đánh giá tỷ lệ thu hồi thu nhập;

  3. Tính thích ứng với chiến lược tăng cường chỉ số cổ phiếu.

Hướng tối ưu hóa

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

  1. Kiểm tra các kết hợp trung bình di chuyển khác nhau để tìm các tham số tối ưu;

  2. Cố gắng kết hợp các chỉ số khác để xác định xu hướng và tăng tỷ lệ chiến lược;

  3. Tăng các cơ chế ngăn chặn thiệt hại, giảm tối đa rút khỏi chiến lược;

  4. Tiếp theo, các nhà đầu tư sẽ có cơ hội mua bán và bán hàng tại các thị trường khác.

  5. Xây dựng các tham số thích ứng kết hợp với công nghệ học máy.

Tóm tắt

Chiến lược này hoạt động đơn giản, dễ thực hiện, có thể điều chỉnh các tham số theo môi trường thị trường, phù hợp với các nhà đầu tư theo dõi phương tiện ngắn. Tuy nhiên, cũng cần lưu ý đến sự không chắc chắn về sự trở lại và rủi ro dừng lỗ, cần được tối ưu hóa hợp lý để thích ứng với các điều kiện thị trường khác nhau.

Mã nguồn chiến lược
/*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")