This strategy is an Ichimoku breakout scalping system optimized for 5-minute timeframe. It takes advantage of Ichimoku elements like conversion line, base line and leading spans to capture short-term momentum. Unlike traditional Ichimoku strategies, this system features customized parameters tailored for high-frequency trading.
The rationale behind the strategy is to go long or short when conversion line crosses base line, with additional condition on price crossing the Ichimoku cloud boundaries to confirm trend directionality. Stop loss and take profit levels are also defined to control risks.
The strategy mainly uses conversion line crossover base line to construct long and short signals. Conversion line reflects price’s short-term momentum while base line shows mid-term trend.
Specifically, when conversion line crosses over base line, it triggers long signal, provided that price is above both leading span A and B of the Ichimoku cloud. This confirms upwards breakout. Conversely, when conversion line crosses below base line, it produces short signal, given price is below the cloud’s leading spans to ensure downside breakout.
Additionally, two input parameters percentStop and percentTP represent stop loss percentage and take profit percentage respectively. Traders can tweak these numbers based on their risk appetite. Stop loss and take profit prices are calculated from average entry price of the positions.
Once long or short signal is triggered, corresponding stop loss and take profit orders will also be placed. Existing positions will be closed if price touches either threshold.
Compared to traditional Ichimoku strategies, this system made the following enhancements:
These adjustments make the strategy more suitable for 5-minute high-frequency trading, being able to quickly identify mean-reversion opportunities around local extremum. Cloud visualization also improves efficiency by showing long-term versus short-term trend.
In addition, the stop loss and take profit logic is built-in for convenience, making it beginner friendly.
The main risks of this strategy includes:
Following methods can help control risks:
Potential areas of improvement for the strategy:
These additions will likely to enhance the strategy’s stability across more market conditions.
The Ichimoku scalping strategy adapts traditional settings for high-frequency applicability. Conversion line crossover base line coupled with Ichimoku cloud visualization allows quick identification of short-term trends. The built-in stop loss / take profit controls further facilitates risk management.
While the strategy has its merits, typical limitations of mean reversion systems remain. Further improvements on aspects like volatility, machine learning and events can potentially make the strategy more robust for complex environments.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Scalping Ichimoku Strategy", shorttitle="Scalp Ichimoku", overlay=true) showBB = input(true, "Show Ichimoku Cloud") showTrade = input(true, 'Show TP/SL') conversionPeriods = input(9, "Conversion Line Periods") basePeriods = input(26, "Base Line Periods") spanBPeriods = input(52, "Span B Periods") displacement = input(26, "Displacement") conversionLine = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2 baseLine = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2 leadLine1 = (conversionLine + baseLine) / 2 leadLine2 = (ta.highest(high, spanBPeriods) + ta.lowest(low, spanBPeriods)) / 2 plot(showBB ? conversionLine : na, "Conversion Line", color=#2962FF) plot(showBB ? baseLine : na, "Base Line", color=#B71C1C) plot(showBB ? ta.lowest(low, 52) : na, "Lagging Span", color=#43A047, offset=-displacement) p1 = plot(showBB ? leadLine1 : na, "Leading Span A", color=#A5D6A7, offset=displacement) p2 = plot(showBB ? leadLine2 : na, "Leading Span B", color=#EF9A9A, offset=displacement) fill(p1, p2, color=leadLine1 > leadLine2 ? color.new(color.green, 90) : color.new(color.red, 90)) // Define the shorter Stop Loss and Take Profit percentages for scalping percentStop = input(0.5, "Stop Loss (%)") percentTP = input(1.0, "Take Profit (%)") // Define the entry conditions longCondition = ta.crossover(conversionLine, baseLine) and close > leadLine1 and close > leadLine2 shortCondition = ta.crossunder(conversionLine, baseLine) and close < leadLine1 and close < leadLine2 if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit or Stop Loss for Long", "Long", stop=strategy.position_avg_price * (1 - percentStop / 100), limit=strategy.position_avg_price * (1 + percentTP / 100)) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit or Stop Loss for Short", "Short", stop=strategy.position_avg_price * (1 + percentStop / 100), limit=strategy.position_avg_price * (1 - percentTP / 100))