Chiến lược này tạo ra các tín hiệu giao dịch bằng cách so sánh chỉ số RSI của tiền điện tử với chỉ số RSI của chỉ số thị trường tiền điện tử để đánh giá giá tương đối của tiền điện tử so với thị trường tiền điện tử.
Chiến lược này cho phép chọn một chỉ số thị trường tiền điện tử trước tiên, chẳng hạn như tổng vốn hóa thị trường, tổng vốn hóa thị trường trừ Bitcoin, vốn hóa thị trường của các đồng tiền khác, v.v. Nó cũng chọn khung thời gian cao hơn của chỉ số tiền điện tử, mặc định đến hàng ngày. Sau đó nó tính toán RSI của tiền điện tử đã chọn và RSI của chỉ số tiền điện tử, và tạo ra chỉ số sức mạnh tương đối dựa trên tỷ lệ của chúng. Khi chỉ số sức mạnh tương đối vượt quá tham số được chỉ định, một tín hiệu mua được tạo ra. Khi nó vượt qua dưới, một tín hiệu bán được tạo ra.
Lý thuyết cốt lõi là khi RSI của đồng tiền điện tử mạnh hơn chỉ số tiền điện tử, điều đó có nghĩa là đồng tiền được định giá tương đối thấp so với thị trường, và có tiềm năng được định giá quá cao, vì vậy nó có thể được mua. Khi RSI của đồng tiền yếu hơn chỉ số thị trường, điều đó có nghĩa là đồng tiền được định giá tương đối cao so với thị trường, và có tiềm năng bị định giá quá thấp, vì vậy nó có thể được bán. Chỉ số sức mạnh tương đối cho phép đánh giá chính xác hơn.
Ưu điểm lớn nhất của chiến lược này là nó sử dụng chỉ số sức mạnh tương đối, cho phép định giá chính xác hơn của tiền điện tử, thay vì chỉ dựa vào các chỉ số kỹ thuật của một đồng tiền duy nhất để đưa ra quyết định, tránh cạm bẫy nhìn vào mọi thứ một cách cô lập.
Chỉ số sức mạnh tương đối tính đến tác động của môi trường thị trường tổng thể đối với các đồng xu riêng lẻ, và có thể nắm bắt nhịp độ xoay vòng thị trường và xoay vòng ngành, và đào ra các đồng xu có giá trị từ thị trường.
Ngoài ra, chiến lược cung cấp nhiều lựa chọn chỉ số, có thể được tối ưu hóa cho các môi trường thị trường khác nhau để đảm bảo hiệu quả của chiến lược.
Rủi ro chính của chiến lược này là chỉ số sức mạnh tương đối chỉ là một công cụ định giá, và không thể tránh hoàn toàn rủi ro giao dịch phát sinh từ các mô hình kỹ thuật của các đồng xu riêng lẻ.
Ví dụ, nếu đồng tiền đã bước vào một mô hình đảo ngược đầu và vai rõ ràng, và cấu trúc thị trường đã thay đổi, chỉ dựa vào tín hiệu mua sức mạnh tương đối có thể dẫn đến tổn thất.
Do đó, chiến lược cần kết hợp các mô hình kỹ thuật của các loại tiền điện tử riêng lẻ để tránh giao dịch không thuận lợi tại các điểm kỹ thuật quan trọng.
Một rủi ro khác là nếu chỉ số được chọn không phù hợp và có tương quan thấp với tiền điện tử, thì sức mạnh chỉ ra của chỉ số sức mạnh tương đối sẽ bị ảnh hưởng phần lớn. Điều này đòi hỏi phải tối ưu hóa việc lựa chọn chỉ số dựa trên mối tương quan giữa các đồng tiền khác nhau và chỉ số thị trường.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Thêm các chiến lược dừng lỗ để cắt giảm lỗ trong thời gian khi giá đảo ngược.
Tối ưu hóa lựa chọn chỉ số, phù hợp với các chỉ số khác nhau cho các đồng tiền khác nhau để tăng tương quan.
Thêm nhiều sự kết hợp khung thời gian, chẳng hạn như xác nhận tín hiệu hàng ngày với tín hiệu 4h, để tăng độ tin cậy tín hiệu.
Thêm các thuật toán học máy để xác định theo cách thích nghi ngưỡng cho chỉ số sức mạnh tương đối, thay vì sử dụng các tham số cố định.
Kết hợp các chỉ số khác như phân tích tâm lý, phân tích cơ bản để hình thành một hệ thống định giá toàn diện hơn.
Chiến lược chỉ số sức mạnh tương đối đánh giá định giá tương đối của tiền điện tử bằng cách so sánh sức mạnh của chúng với chỉ số thị trường và tạo ra tín hiệu giao dịch. Ưu điểm của nó nằm trong việc kết hợp các kích thước phân tích thị trường và nắm bắt nhịp điệu thị trường. Nhưng nó cũng có những rủi ro cần tối ưu hóa, chẳng hạn như thêm dừng lỗ, kết hợp khung thời gian, ngưỡng thích ứng vv để cải thiện hiệu suất. Nếu được thực hiện đúng cách, chiến lược này có thể đóng một vai trò quan trọng trong giao dịch thuật toán crypto.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('RSI correlation with cryptoindices [strategy version]', overlay=false) // Testing Start dates testStartYear = input(2016, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2030, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false len = input(4, title='length of rsi comparison') correlationcrossover = input(1, title='correlation crossover') IndexSwitch = input.string('CRYPTOCAP:TOTAL2', title='Index selection', options=['CRYPTOCAP:TOTAL2', 'CRYPTOCAP:TOTAL', 'CRYPTOCAP:OTHERS', 'CRYPTOCAP:USDT', 'CRYPTOINDEX:CIX100', 'CRYPTOCAP:BTC.D', 'CRYPTOCAP:BTC']) IndexHTF = input.string('120', title='higher time frame reference index', options=['1', '2', '5', '10', '15', '30', '45', '60', '90', '120', '150', '240', '360', '720', 'D', '3D', 'W', 'M']) switchColor = input(true, 'Color Hull according to trend?') ref = request.security(IndexSwitch, IndexHTF, close[1], lookahead=barmerge.lookahead_on) RSI_ref = ta.rsi(ref, len) RSI_close = ta.rsi(close, len) relative = RSI_ref / RSI_close plot(relative, color=color.new(color.blue, 0)) long = ta.crossover(relative, correlationcrossover) short = ta.crossunder(relative, correlationcrossover) corr = plot(correlationcrossover, color=color.new(color.green, 0), linewidth=1) hullColor = switchColor ? relative > correlationcrossover ? #00ff00 : #ff0000 : #ff9800 //PLOT ///< Frame Fi1 = plot(relative, title='relative', color=hullColor, linewidth=1, transp=50) fill(Fi1, corr, title='Band Filler', color=hullColor, transp=50) if long and testPeriod() strategy.entry("long", strategy.long) if short and testPeriod() strategy.entry("long", strategy.short) // alertcondition(long, title='long', message='long') // alertcondition(short, title='short', message='short')