Chiến lược trung bình động CRSI

Tác giả:ChaoZhang, Ngày: 2024-02-02 18:12:17
Tags:

img

Tổng quan

Chiến lược này xây dựng một chỉ số tổng hợp tùy chỉnh CRSI bằng cách lấy trung bình của RSI, sức mạnh tăng/gấu và tỷ lệ thay đổi tỷ lệ phần trăm, và giao dịch dựa trên trung bình động của CRSI vượt qua các mức cố định.

Chiến lược logic

Chiến lược này đầu tiên tính toán chỉ số RSI 3 ngày của giá để đánh giá giá liệu giá đã quá mua hay quá bán. Trong khi đó, nó tính toán sức mạnh của giá để đánh giá đà. Nó cũng tính toán tỷ lệ thay đổi tỷ lệ thay đổi giá (ROC) để kiểm tra tốc độ thay đổi giá tương đối. Sau đó, nó lấy trung bình của ba chỉ số này để xây dựng một chỉ số tổng hợp tùy chỉnh CRSI, phản ánh tình trạng tổng thể của giá. Cuối cùng nó tính toán trung bình di chuyển đơn giản 2 ngày (MA) của CRSI. Khi MA vượt qua mức 40, nó đi dài. Khi MA vượt qua dưới mức 70, nó thoát khỏi các vị trí dài.

Phân tích lợi thế

Chiến lược này kết hợp nhiều chỉ số để xây dựng chỉ số CRSI tùy chỉnh, làm cho các tín hiệu giao dịch đáng tin cậy hơn. RSI có thể nói liệu giá có quá nóng hay quá bán. Sức mạnh bò / gấu có thể đánh giá động lực. ROC kiểm tra mức độ thay đổi giá nhanh như thế nào. Kết hợp chúng với nhau thành CRSI làm cho các tín hiệu giao dịch toàn diện và đáng tin cậy hơn. Ngoài ra, việc sử dụng MA cũng giúp lọc các tín hiệu sai.

Phân tích rủi ro

Mặc dù chiến lược này sử dụng nhiều chỉ số cho một sự kết hợp, nhưng nó vẫn có nguy cơ tạo ra tín hiệu sai trong một số điều kiện thị trường nhất định. Ví dụ, trong các thị trường giới hạn phạm vi, RSI, ROC và các chỉ số khác có thể tạo ra các tín hiệu mua và bán thường xuyên trong khi thực tế giá không có xu hướng rõ ràng. Hoặc một số chỉ số có thể chậm lại và trì hoãn tạo ra tín hiệu giao dịch sau khi một sự kiện đột ngột xảy ra. Những tình huống này có thể gây ra tổn thất. Các rủi ro có thể được giảm bằng cách tối ưu hóa các tham số hoặc thêm các điều kiện lọc khác.

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

Dưới đây là một số khía cạnh có thể tối ưu hóa chiến lược này: 1) Tối ưu hóa các tham số của RSI, sức mạnh tăng / giảm và ROC để làm cho CRSI ổn định và đáng tin cậy hơn; 2) Thêm các chỉ số phụ trợ khác như KDJ, MACD vào combo để có các tín hiệu toàn diện hơn; 3) Tối ưu hóa các tham số MA để giảm rủi ro trì hoãn; 4) Thêm các điều kiện dừng lỗ để kiểm soát lỗ đơn; 5) Kết hợp các chỉ số dài hạn để đánh giá tình trạng xu hướng, tránh giao dịch quá mức trên các thị trường trong phạm vi.

Kết luận

Chiến lược này xây dựng một chỉ số CRSI tùy chỉnh dựa trên trung bình của RSI, sức mạnh bò / gấu và ROC, và giao dịch trên MA của CRSI vượt qua các mức cố định. Một sự kết hợp đa chỉ số như vậy có thể làm cho tín hiệu giao dịch ổn định và đáng tin cậy hơn. Nhưng chiến lược này vẫn yêu cầu tối ưu hóa thêm các thông số, chỉ số phụ trợ và điều kiện lọc để giảm tín hiệu sai và tác động của chế độ thị trường, để cải thiện lợi nhuận ổn định.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
src = close, lenrsi = 3, lenupdown = 2, lenroc = 100, malengt = 2, low = 40, high = 70, a = 1, vlow = 20
updown(s) => 
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1])+1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1])-1)
    ud
rsi = rsi(src, lenrsi)
updownrsi = rsi(updown(src), lenupdown)
percentrank = percentrank(roc(src, 1), lenroc)
crsi = avg(rsi, updownrsi, percentrank)
MA = sma(crsi, malengt)

band1 = 70
band0 = 40
band2 = 20

ColorMA = MA>=band0 ? lime : red

p1 = plot(MA, title="BuyNiggers", style=line, linewidth=4, color=ColorMA)

p2 = plot(low, title="idk", style=line, linewidth=2, color=blue)
p3 = plot(high, title="idk2", style=line, linewidth=2, color=orange)
p4 = plot(vlow, title="idk3", style=line, linewidth=1, color=red)

//@version=2
strategy("CMARSI")


if crossover(MA, band0)
    strategy.entry("buy", strategy.long, 1, when=strategy.position_size <= 0)
    
if crossunder(MA, band1)
    strategy.exit("close", "buy",  1, profit=1, stop=1)
    



plot(strategy.equity)


Thêm nữa