The Oscillating Breakthrough Strategy is an active trading strategy for mainstream cryptocurrencies using a 15-minute timeframe. It utilizes technical indicators to identify market trends, discover potential breakthrough points, and effectively manage risks through stop-loss settings.
The strategy employs two Simple Moving Averages (SMA50 and SMA200) to determine the market trend direction. When SMA50 crosses above SMA200, it’s a bullish signal, and vice versa for bearish signals.
The Relative Strength Index (RSI) is used to judge overbought/oversold conditions. When the RSI falls below the set oversold region (default 40), it indicates a potential buy signal.
The specific trading logic is:
The strategy is simple and straightforward, seeking potential breakthrough points through dual confirmation. The stop loss prevents losing positions from getting out of hands, while SMA crossovers act as exit signals.
The strategy has the following advantages:
There are also some risks:
Improvements can be made via:
In summary, the Oscillating Breakthrough Strategy is a simple and practical short-term strategy. With easy operation, controllable risks etc., it suits novice crypto traders. Further optimizations can enable stable profits across more market environments.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m 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/ // © Wielkieef //@version=5 strategy("Crypto Sniper [15min]", shorttitle="ST Strategy", overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) sma50Length = input(90, title=" SMA50 Length", group="Simple Moving Average") sma200Length = input(170, title=" SMA200 Length", group="Simple Moving Average") rsiLength = input(14, title=" RSI Length", group="Relative Strenght Index") overSoldLevel = input(40, title=" Oversold Level", group="Relative Strenght Index") sl = input.float(5.0, '% Stop Loss', step=0.1) rsi = ta.rsi(close, rsiLength) sma50 = ta.sma(close, sma50Length) sma200 = ta.sma(close, sma200Length) longCondition = rsi < overSoldLevel and close > sma200 if (longCondition) strategy.entry("Long", strategy.long) stopLossPrice = strategy.position_avg_price * (1 - sl / 100) strategy.exit("Stop Loss", stop=stopLossPrice) if (ta.crossunder(sma200, sma50) and rsi >= 50) strategy.close("Long") Bar_color = ta.crossunder(sma200, sma50) and rsi >= 50 ? color.orange : rsi < overSoldLevel ? color.maroon : strategy.position_avg_price != 1 ? color.green : color.gray barcolor(color=Bar_color) //by wielkieef