
Chiến lược chuyển đổi đồng tiền RSI đa luồng dao động là một chiến lược giao dịch định lượng được sử dụng cho tiền điện tử. Nó kết hợp chỉ số kỹ thuật thị trường RSI với chỉ số ICHIMOKU để nhận ra tín hiệu đa luồng khi giá dao động, để thực hiện mua thấp và bán cao. Nó áp dụng cho chu kỳ đường dài giữa, chẳng hạn như 3-4 giờ trở lên.
Chiến lược này 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
Bước vào nhiều đầu: Đường Tenkan vượt qua đường Kijun (gold crossing) và giá vượt qua đường Senkou A&B, đồng thời RSI cao hơn 50
Đầu không vào: Đường Tenkan đi qua đường Kijun (đường chết) và giá giảm xuống đường Senkou A&B, đồng thời RSI thấp hơn 50
Quá bỏ quy tắc
Ngừng thiệt hại ngay lập tức khi có tín hiệu trái ngược với lối vào
Chiến lược tổng hợp xem xét xu hướng trung và dài hạn, thanh khoản ngắn hạn và tình trạng mua bán quá mức, để nắm bắt cơ hội đảo ngược trong tình huống xung đột. Đồng thời, nó cũng đặt ra các quy tắc dừng lỗ để tránh thua lỗ lớn.
1. Xác định tổng hợp các chỉ số, đảm bảo tính chắc chắn cao
Chiến lược này cũng xem xét xu hướng của ICHIMOKU và hỗ trợ phán đoán kháng cự, tình trạng quá mua quá bán của RSI và tính thanh khoản của quỹ theo hướng thực thể K, đảm bảo độ tin cậy của tín hiệu.
2. Thích hợp cho các biến động, thường xuyên lợi nhuận
Trong khi đó, các nhà đầu tư cho rằng chiến lược này có thể nắm bắt được cơ hội đảo ngược trong tình hình bất ổn, tạo ra các giao dịch mua bán thịnh hành.
3. Ngăn ngừa ngã gục và kiểm soát rủi ro
Kế hoạch chiến lược cân nhắc toàn diện các xu hướng trung và dài hạn và tình hình ngắn hạn, tránh rủi ro theo đuổi đà giảm, đồng thời thiết lập rủi ro tránh lỗ.
1. Có thể bỏ lỡ một số hoạt động
Chiến lược này chủ yếu dựa trên sự đảo ngược, khi xảy ra tình trạng hoạt động lâu dài, chiến lược sẽ thường xuyên rung chuyển các khoản tiền tấn công.
2. Một giống duy nhất, không phân tán rủi ro
Chiến lược chỉ giao dịch một loại, không phân tán rủi ro hệ thống trên thị trường.
3. Hạn chế thiệt hại trong trường hợp cực đoan
Trong các trường hợp cực đoan như nhảy vọt, nổ năng lượng, chiến lược có thể kích hoạt dừng lỗ và buộc phải ra đi.
1. Tăng chiến lược dừng lỗ, giảm tổn thất đơn lẻ
Có thể thiết lập dừng di chuyển hoặc dừng phần trăm dư để khóa lợi nhuận và ngăn chặn lợi nhuận trở thành không.
2. Phân tán rủi ro thị trường kết hợp với sự liên quan của chỉ số cổ phiếu
Có thể tìm kiếm cơ hội giao dịch trong các loại có liên quan đến chỉ số cổ phiếu để phân tán rủi ro hệ thống của thị trường.
3. Tăng các bộ lọc điều kiện, giảm các giao dịch vô hiệu
Có thể cài đặt các bộ lọc điều kiện như biến động giá cả, biến động khối lượng giao dịch, tránh tín hiệu đảo ngược không hiệu quả, tăng khả năng kiếm lợi nhuận.
Chiến lược trao đổi tiền tệ RSI đa thùng rung động sử dụng chỉ số ICHIMOKU và chỉ số RSI để đánh giá điểm đảo chiều của tiền điện tử, phù hợp với lợi nhuận mua bán cao trong tình huống rung động. Nó đồng thời thiết lập quy tắc dừng lỗ để kiểm soát rủi ro. Chiến lược này có thể tăng cường hiệu quả hơn nữa bằng cách tối ưu hóa cơ chế dừng lỗ, rủi ro phân tán liên quan và lọc điều kiện thiết lập, đáng để thử nghiệm.
/*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)