Chiến lược chuyển đổi tiền điện tử RSI dài ngắn dao động là một chiến lược giao dịch định lượng được thiết kế cho tiền điện tử. Nó kết hợp chỉ số kỹ thuật RSI với chỉ số ICHIMOKU để xác định các tín hiệu dài và ngắn trong thời gian dao động giá và đạt được mức mua thấp và bán cao. Nó phù hợp với khung thời gian trung và dài như 3-4 giờ hoặc lâu hơn.
Chiến lược chủ yếu dựa trên các chỉ số và quy tắc sau:
Chỉ số ICHIMOKU
Chỉ số RSI
Quy tắc nhập cảnh
Mở đầu dài: Tenkan vượt qua Kijun (cross vàng) và giá phá vỡ thông qua Senkou A & B Lines, với RSI trên 50 cùng một lúc
Nhập ngắn: Đường thập tự Tenkan dưới Kijun (đường thập tự tử) và giá phá vỡ Senkou A & B Lines, với chỉ số RSI dưới 50 cùng một lúc
Các quy tắc xuất cảnh
Đi ra với tín hiệu ngược lại
Chiến lược này tính đến xu hướng trung bình đến dài hạn, dòng vốn ngắn hạn và điều kiện mua quá mức / bán quá mức để nắm bắt các cơ hội đảo ngược trong khi dao động.
1. Phán quyết dựa trên nhiều chỉ số đảm bảo sự chắc chắn cao
Chiến lược này xem xét xu hướng và phán quyết hỗ trợ / kháng cự của ICHIMOKU, điều kiện mua quá nhiều / bán quá nhiều RSI, cũng như dòng vốn dựa trên hướng của thân nến. Điều này đảm bảo các tín hiệu đáng tin cậy.
2. Thích hợp cho dao động, thường xuyên lấy lợi nhuận
Thị trường tiền điện tử có biến động lớn. Chiến lược này có thể nắm bắt đầy đủ các cơ hội đảo ngược trong các dao động và đạt được mức mua thấp và bán cao thường xuyên.
3. Ngăn chặn đuổi theo tăng và đánh bại rút lui, rủi ro có thể kiểm soát được
Chiến lược xem xét toàn diện các xu hướng trung và dài hạn và các tình huống ngắn hạn để tránh rủi ro theo đuổi tăng và đánh bại giảm.
1. Có thể bỏ lỡ một số cơ hội xu hướng
Chiến lược này chủ yếu tập trung vào sự đảo ngược, có thể dẫn đến sự sụp đổ thường xuyên trong các giai đoạn xu hướng kéo dài.
2. Biểu tượng duy nhất, không thể đa dạng hóa rủi ro
Chiến lược chỉ giao dịch một biểu tượng duy nhất và không thể đa dạng hóa với rủi ro thị trường có hệ thống.
3. Stop loss được kích hoạt trong các động thái cực đoan
Trong các điều kiện thị trường cực đoan như lỗ hổng hoặc tăng cao, dừng lỗ có thể được kích hoạt buộc phải thoát ra.
1. Thêm stop loss cho lỗ đơn thấp hơn
Động stop loss hoặc stop loss phần trăm có thể được sử dụng để khóa lợi nhuận và ngăn chặn hoàn toàn khôi phục.
2. tương quan với chỉ số để đa dạng hóa rủi ro thị trường
Tìm kiếm các cơ hội giao dịch giữa các biểu tượng tương quan cao để đa dạng hóa rủi ro thị trường có hệ thống.
3. Các bộ lọc bổ sung để giảm các giao dịch không hợp lệ
Các bộ lọc như biến động giá hoặc thay đổi khối lượng có thể được thêm vào để tránh các tín hiệu đảo ngược không hợp lệ và cải thiện tỷ lệ lợi nhuận.
Chiến lược chuyển đổi tiền điện tử RSI dài ngắn dao động kết hợp các chỉ số ICHIMOKU và RSI để xác định các điểm đảo ngược cho tiền điện tử, phù hợp để mua thấp và bán có lợi nhuận cao trong các dao động. Nó cũng thiết lập các quy tắc dừng lỗ để kiểm soát rủi ro. Chiến lược có thể được tăng cường hơn nữa bằng cách tối ưu hóa cơ chế dừng lỗ, đa dạng hóa rủi ro thông qua mối tương quan và thêm các bộ lọc có điều kiện, đáng để thử nghiệm trực tiếp.
/*backtest start: 2023-12-17 00:00:00 end: 2023-12-24 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title="Ichimoku + RSI Crypto trending strategy", overlay=true, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=1 ) UseHAcandles = input(true, title="Use Heikin Ashi Candles in Algo Calculations") // // === /INPUTS === // === BASE FUNCTIONS === haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low //Inputs ts_bars = input(20, minval=1, title="Tenkan-Sen Bars") ks_bars = input(50, minval=1, title="Kijun-Sen Bars") ssb_bars = input(120, minval=1, title="Senkou-Span B Bars") cs_offset = input(30, minval=1, title="Chikou-Span Offset") ss_offset = input(30, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") //Volatility //vollength = input(defval=1, title="VolLength") //voltarget = input(defval=0., type=input.float, step=0.1, title="Volatility Target") //Difference = abs((haClose - haOpen)/((haClose + haOpen)/2) * 100) //MovingAverage = sma(Difference, vollength) //highvolatility = MovingAverage > voltarget //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// middle(len) => avg(lowest(len), highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = avg(tenkan, kijun) senkouB = middle(ssb_bars) //RSI change = change(haClose) gain = change >= 0 ? change : 0.0 loss = change < 0 ? (-1) * change : 0.0 avgGain = rma(gain, 14) avgLoss = rma(loss, 14) rs = avgGain / avgLoss rsi = 100 - (100 / (1 + rs)) ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Entry/Exit Signals tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = mom(haClose, cs_offset-1) > 0 cs_cross_bear = mom(haClose, cs_offset-1) < 0 price_above_kumo = haClose > ss_high price_below_kumo = haClose < ss_low rsi_bullish = rsi > 50 rsi_bearish = rs < 50 bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish //and highvolatility bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish //and highvolatility strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond) strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond) strategy.close("Long", when=bearish and not short_entry and time_cond) strategy.close("Short", when=bullish and not long_entry and time_cond)