Strategy vault / Mean reversion
Ichimoku Kinko Hyo Based BTC Trading Strategy
This strategy is called "Ichimoku Kinko Hyo Strategy". It is a BTC trading strategy based on Ichimoku Kinko Hyo system combined with other technical indicators.

Overview
This strategy is called "Ichimoku Kinko Hyo Strategy". It is a BTC trading strategy based on Ichimoku Kinko Hyo system combined with other technical indicators.
Strategy Logic
The strategy is mainly based on Ichimoku Kinko Hyo system, which incorporates multiple technical indicators for trend trading. The main components are:
Kijun Sen: Represents market trend direction. It's the midpoint of highest and lowest price over past 26 days, acts as support and resistance lines. Buy and sell signals are generated when close price crosses Kijun Sen.
Tenkan Sen: Represents momentum of the price. It's the midpoint of highest and lowest price over past 9 days, helps determine best entry and exit spots.
Senkou Span A: Represents Ichimoku's mid-term line. It's the average of Kijun Sen and Tenkan Sen, acts as Ichimoku's warning line.
Senkou Span B: Represents long term trend line. It's the midpoint of past 52 days. Forms the Ichimoku cloud to determine long and short term trends.
In addition, the strategy also incorporates the RSI indicator to generate trading signals in overbought and oversold zones.
Buy signals are generated when close price breaks above Kijun Sen and locates above the cloud. Sell signals are generated when close price breaks below Kijun Sen and locates below the cloud.
Advantages
Ichimoku system accurately determines trends with relatively high winning rate.
Incorporation of multiple indicators avoids missing opportunities.
RSI effectively determines reversal spots.
Cloud intuitively presents long and short term trends.
Risk Analysis
Ichimoku system has certain lagging, needs incorporation of other indicators.
Works very well in trending markets but modestly in ranging markets.
RSI parameters need adjustments based on markets.
Cloud construction is complex which requires adept manipulation.
Parameters of Ichimoku can be optimized or more indicators can be added.
Optimization Directions
Optimize parameters of Ichimoku to determine trends quicker.
Add more indicators like moving averages to improve signal accuracy.
Adjust RSI parameter based on different markets.
Consider adding stop loss mechanisms to control risks.
Conclusion
Ichimoku combined with indicators like RSI has high accuracy in capturing upside trends. Lagging of Ichimoku and inadaptability in ranging markets are major risks. Proper parameter tuning and adding more indicators can mitigate these risks substantially, making the strategy more solid and reliable.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 3 | From Month |
| v_input_2 | true | From Day |
| v_input_3 | 2018 | From Year |
| v_input_4 | true | To Month |
| v_input_5 | true | To Day |
| v_input_6 | 9999 | To Year |
| v_input_7 | 6 | KijunSen Lag |
| v_input_8 | 14 | RSI Length |
Source Pine Script
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth = input(defval = 1, title = "To Month", minval = 1)
ToDay = input(defval = 1, title = "To Day", minval = 1)
ToYear = input(defval = 9999, title = "To Year", minval = 2014)
// === SERIES SETUP ===
//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)
//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)
//Senkou Span A
SenkouSpanA = (KijunSen + TenkanSen)/2
//Senkou Span B
SenkouSpanB = sma((high+low)/2,52)
//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB
//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])
plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)
//Alerts
buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur
sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur
//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)
sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
plotchar(buy,char='B',size=size.small,color=lime)
plotchar(sell,char='S',size=size.small,color=orange)
//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)
// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))Published by ChaoZhang on the FMZ strategy square · last modified 2023-12-20. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Ichimoku-Kinko-Hyo-Based-BTC-Trading-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Oscillating Long Short RSI Crypto Switching StrategyPine Script · Mean reversion · 3m
- Advanced Momentum EMA Trend Following with RSI Overbought Oversold Trading StrategyPine Script · Mean reversion · 1d
- Advanced Quantitative Trading Strategy Combining RSI Divergence and Moving AveragesPine Script · Mean reversion · 1h
- Byron Serpent Cloud Quant StrategyPine Script · Mean reversion · 1h
- Dynamic Adaptive Multi Timeframe Trend Following and Range Reversal Hybrid StrategyPine Script · Mean reversion · 2d
- Dynamic MACD and Ichimoku Cloud Trading StrategyPine Script · Mean reversion · 1h