이 전략은 트렌드 방향을 판단하기 위해 1차 균형표와 상대적으로 약한 지수 ((RSI) 지표를 사용하여 트렌드 시작 시 출전합니다. 1차 균형표의 세 개의 선이 조건이있는 배열 조합을 형성하고 RSI 신호와 결합하면 거래 신호가 발생합니다.
구체적으로, 이 전략은 일회성표의 트렌드 판단과 RSI의 오버 바이 오버 세를 판단한다. 일회성표의 삼선 조합 형태가 트렌드를 시작하고 RSI가 동시에 오버 바이 오버 세를 표시하지 않을 때, 진입 신호를 생성한다. RSI 필터는 정리할 때 잘못된 진입을 방지하는 것을 돕는다. 평점 신호는 전적으로 일회성표에 근거하여 FORMATION를 역전한다.
매개 변수 최적화, 최적화된 스톱 스톱 손실 전략, 적절히 단축된 포지션 기간 등의 방법으로 위험을 관리할 수 있다.
이 전략은 1차 균형표와 RSI 지표를 결합하여 트렌드 판단과 거래를 한다. 장점은 신호가 간단하고 직관적이며, ROI가 높다는 것이다. 단점은 지연과 피지배의 위험이 존재한다는 것이다. 전략의 효과를 향상시키고 위험을 제어하기 위해 파라미터 최적화, 스톱 스톱 손실 최적화, 거래 시간을 제한하는 등의 방법을 사용할 수 있다. 이 전략은 거래자가 1차 균형표의 적용을 완전히 이해할 수 있도록 한다.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © Coinrule
//@version=5
strategy("Ichimoku Cloud with RSI (By Coinrule)",
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 6, 1, 0, 0)
// RSI inputs and calculations
lengthRSI = 14
RSI = ta.rsi(close, lengthRSI)
//Inputs
ts_bars = input.int(9, minval=1, title="Tenkan-Sen Bars")
ks_bars = input.int(26, minval=1, title="Kijun-Sen Bars")
ssb_bars = input.int(52, minval=1, title="Senkou-Span B Bars")
cs_offset = input.int(26, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(26, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")
middle(len) => math.avg(ta.lowest(len), ta.highest(len))
// Components of Ichimoku Cloud
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)
// Plot Ichimoku Cloud
plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.green, title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.red, title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.green : color.red, title="Cloud color")
ss_high = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])
// Entry/Exit Conditions
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset-1) > 0
cs_cross_bear = ta.mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo
strategy.entry("Long", strategy.long, when=bullish and long_entry and RSI < 50 and timePeriod)
strategy.close("Long", when=bearish and not short_entry)
strategy.entry("Short", strategy.short, when=bearish and short_entry and RSI > 50 and timePeriod)
strategy.close("Short", when=bullish and not long_entry)