The strategy named “Jancok Strategycs v3” is a multi-indicator trend following strategy based on Moving Averages (MA), Moving Average Convergence Divergence (MACD), Relative Strength Index (RSI), and Average True Range (ATR). The main idea of this strategy is to use a combination of multiple indicators to determine market trends and trade in the direction of the trend. Additionally, the strategy employs dynamic stop-loss and take-profit methods, as well as ATR-based risk management, to control risk and optimize returns.
The strategy uses the following four indicators to determine market trends:
The trading logic of the strategy is as follows:
“Jancok Strategycs v3” is a trend following strategy based on a combination of multiple indicators, using Moving Averages, MACD, RSI, and ATR to determine market trends, and employing risk management techniques such as dynamic stop-loss and take-profit, and trailing stop to control risk and optimize returns. The strategy’s advantages lie in its high accuracy of trend identification, flexible risk management, and strong adaptability. However, it also carries certain risks, such as false signals, sensitivity to parameter settings, and black swan events. In the future, the strategy’s performance and stability can be further enhanced by introducing more indicators, optimizing parameter selection, incorporating position sizing, and setting a maximum drawdown limit.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © financialAccou42381 //@version=5 strategy("Jancok Strategycs v3", overlay=true, initial_capital=100, currency="USD") // Inputs short_ma_length = input.int(9, title="Short MA Length", minval=1) long_ma_length = input.int(21, title="Long MA Length", minval=1) atr_multiplier_for_sl = input.float(2, title="ATR Multiplier for Stop Loss", minval=1.0) atr_multiplier_for_tp = input.float(4, title="ATR Multiplier for Take Profit", minval=1.0) volume_ma_length = input.int(20, title="Volume MA Length", minval=1) volatility_threshold = input.float(1.5, title="Volatility Threshold", minval=0.1, step=0.1) use_trailing_stop = input.bool(false, title="Use Trailing Stop") trailing_stop_atr_multiplier = input.float(2.5, title="Trailing Stop ATR Multiplier", minval=1.0) // Calculating indicators short_ma = ta.sma(close, short_ma_length) long_ma = ta.sma(close, long_ma_length) [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) atr = ta.atr(14) volume_ma = ta.sma(volume, volume_ma_length) volatility = atr / close // Plotting indicators plot(short_ma, color=color.red) plot(long_ma, color=color.blue) // Defining entry conditions with added indicators and filters long_condition = ta.crossover(short_ma, long_ma) and (macdLine > signalLine) and (volume > volume_ma) and (volatility < volatility_threshold) short_condition = ta.crossunder(short_ma, long_ma) and (macdLine < signalLine) and (volume > volume_ma) and (volatility < volatility_threshold) // Entering trades with dynamic stop loss and take profit based on ATR if (long_condition) strategy.entry("Long", strategy.long) if use_trailing_stop strategy.exit("Exit Long", "Long", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5) else strategy.exit("Exit Long", "Long", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp) if (short_condition) strategy.entry("Short", strategy.short) if use_trailing_stop strategy.exit("Exit Short", "Short", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5) else strategy.exit("Exit Short", "Short", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)