
진동 다공간 RSI 교환 전략은 암호화폐에 사용되는 양적 거래 전략이다. 그것은 시장 기술 지표인 RSI와 ICHIMOKU 지표를 결합하여 가격 진동시 다공간 신호를 식별하여 낮은 가격으로 구매하고 높은 가격으로 판매한다. 그것은 3-4 시간 이상의 중장선 주기에도 적용된다.
이 전략은 주로 다음과 같은 지표와 규칙을 기반으로 합니다.
ICHIMOKU 지표
RSI 지표
참가 규칙
다중 입점: 텐칸 선에서 키 선 ((금의 교차) 을 통과하고 가격이 센쿠 A&B 선을 뚫고 RSI가 50보다 높습니다
공허 입구: 텐칸 선 아래로 키 선 ((죽음의 교차) 을 통과하고 가격이 센쿠 A&B 선 아래로 떨어지며 RSI가 50보다 낮습니다.
탈퇴 규칙
출장 반대 신호가 발생하면 즉시 피해를 입히지 않는다
이 전략은 중·장기 추세, 단기자금 유동성 및 과매매 상황을 고려하여 불안정한 상황에서 역전 기회를 잡습니다. 큰 손실을 피하기 위해 손실을 막는 규칙을 설정합니다.
1. 여러 지표의 종합 판단으로 높은 확실성을 보장한다
이 전략은 ICHIMOKU의 트렌드를 고려하고 저항 판단을 뒷받침하며, RSI의 과매매와 K선 엔티티의 방향에 대한 자금 유동성을 고려하여 신호의 신뢰성을 보장합니다.
2. 위기 상황에 적합하고, 자주 수익을 올립니다.
암호화폐 시장의 큰 변동성으로 인해, 이 전략은 종종 하락과 하락을 달성하기 위해 격동적인 상황의 역전 기회를 충분히 포착할 수 있다.
3. 위험은 통제할 수 있습니다.
중장기적 추세와 단기적 상황을 종합적으로 고려한 전략으로, 추락의 위험을 피할 수 있으며, 동시에 손실 회피 위험을 설정할 수 있다.
1. 일부 동작을 놓칠 수 있습니다.
이 전략은 역전으로 운영되며, 장기간 운영되는 경우, 이 전략은 자주 흔들리며, 자금을 공격한다.
2. 단일 종, 위험 분산 불가능
이 전략은 단일 품종만을 거래하는 것으로, 시장의 체계적인 위험을 분산시킬 수 없습니다.
3. 극단적인 상황에서의 상쇄
극단적인 상황에서는, 예를 들어, 공중에서 뛰어내리고, 양력 폭발을 일으키는 경우, 전략은 스톱 손실을 유발하여 퇴출을 강요할 수 있다.
1. 단편적 손실을 줄이기 위해 손실을 막는 전략을 늘리십시오.
이윤을 고정하기 위해 이동 중지 또는 잔액 손실 비율을 설정할 수 있습니다. 이윤이 0으로 돌아가는 것을 방지합니다.
2. 주식 지수 관련성과 결합하여 시장 위험을 분산합니다.
시장의 체계적인 위험을 분산하기 위해 주식 지수 관련성이 높은 품종에서 거래 기회를 찾을 수 있습니다.
3. 조건부 필터링을 늘리고 무효 거래를 줄여라
가격 변동률, 거래량 변화 등의 조건 필터를 설정할 수 있으며, 비효율적인 반전 신호를 피하고, 수익을 얻는 확률을 높일 수 있다.
흔들리는 다공간 RSI 교환 전략은 ICHIMOKU 지표와 RSI 지표를 종합적으로 사용하여 암호화폐의 역점을 판단하여, 흔들리는 상황에 적합한 시가상 거래 수익을 얻습니다. 그것은 동시에 위험을 제어하기 위해 중지 손실 규칙을 설정합니다. 이 전략은 중지 손실 메커니즘, 연관 분산 위험 및 설정 조건 필터를 최적화하여 효과를 더욱 강화할 수 있으며, 실험적으로 검증할 가치가 있습니다.
/*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)