PROTECTED SOURCE SCRIPT

MACD + RSI + ADX Strategy (ChatGPT-powered) by TradeSmart

This is a trading strategy made by TradeSmart, using the recommendations given by ChatGPT. As an experiment, we asked ChatGPT on which indicators are the most popular for trading. We used all of the recommendations given, and added more. We ended up with a strategy that performs surprisingly well on many crypto and forex assets. See below for exact details on what logic was implemented and how you can change the parameters of the strategy.

The strategy is a Christmas special, this is how we would like to thank the support of our followers.

The strategy has performed well on Forex, tested on 43 1-hour pairs and turned a profit in 21 cases. Also it has been tested on 51 crypto pairs using the 1-hour timeframe, and turned a profit in 45 cases with a Profit Factor over 1.4 in the top-5 cases. Tests were conducted without commission or slippage, unlike the presented result which uses 0.01% commission and 5 tick slippage.

Some of the top performers were:
  • SNXUSDT
  • SOLUSDT
  • CAKEUSDT
  • LINKUSDT
  • EGLDUSDT
  • GBPJPY
  • TRYJPY
  • USDJPY


The strategy was implemented using the following logic:

Entry strategy:

Long entry:
  • Price should be above the Simple Moving Average (SMA)
  • There should be a cross up on the MACD (indicated by the color switch on the histogram, red to green)
  • RSI should be above the 50 level
  • Volume is above the selected volume-based Exponential Moving Average (EMA)
  • ADX should also agree to this position: below 50 and over 20, and above the Regularized Moving Average (REMA)


Short entry:
  • Price should be under the Simple Moving Average (SMA)
  • There should be a cross down on the MACD (indicated by the color switch on the histogram, red to green)
  • RSI should be below the 50 level
  • Volume is above the selected volume-based Exponential Moving Average (EMA)
  • ADX should also agree to this position: below 50 and over 20, and above the Regularized Moving Average (REMA)


Exit strategy:
  • Stop Loss will be placed based on ATR value (with 1.5 Risk)
  • Take profit level will be placed with a 2.5 Risk/Reward Ratio
  • Open positions will be closed early based on the Squeeze Momentum (Long: change to red, Short: change to green)


NOTE!: The position sizes used in the example is with 'Risk Percentage (current)', according which the position size will be determined such
that the potential loss is equal to % of the current available capital. This means that in most of the cases, the positions are calculated using leverage.

Parameters of every indicator used in the strategy can be tuned in the strategy settings as follows:
Plot settings:
  • Plot Signals: true by default, Show all Long and Short signals on the signal candle
  • Allow early TP/SL plots: false by default, Checking this option will result in the TP and SL lines to be plotted also on the signal candle rather than just the entry candle. Consider this only when manual trading, since backtest entries does not happen on the signal candle.


Entry Signal:
  • Fast Length: 12 by default
  • Slow Length: 26 by default
  • Source: hlcc4 by default
  • Signal Smoothing: 9 by default
  • Oscillator MA Type: EMA by default
  • Signal Line MA Type: EMA by default


Exit Strategy:
  • ATR Based Stop Loss: true by default
  • ATR Length (of the SL): 14 by default
  • ATR Smoothing (of the SL): EMA by default
  • Candle Low/High Based Stop Loss: false by default, recent lowest or highest point (depending on long/short position) will be used to calculate stop loss value. Set 'Base Risk Multiplier' to 1 if you would like to use the calculated value as is. Setting it to a different value will count as an additional multiplier. Please select only one active stop loss. Default value (if nothing or multiple stop losses are selected) is the 'ATR Based Stop Loss'.
  • Candle Lookback (of the SL): 10 by default
  • Base Risk Multiplier: 1.5 by default, the stop loss will be placed at this risk level (meaning in case of ATR SL that the ATR value will be multiplied by this factor and the SL will be placed that value away from the entry level)
  • Risk to Reward Ratio: 2.5 by default, the take profit level will be placed such as this Risk/Reward ratio is met
  • Force Exit based on Squeeze Momentum: true by default, a Long position will be closed when Squeeze Momentum turns red inside an open position and a Short position will be closed when Squeeze Momentum turns green inside an open position
  • BB Length: 20 by default
  • BB Mult Factor: 1.0 by default
  • KC Length: 20 by default
  • KC Mult Factor: 1.5 by default
  • Use True Range (KC): Yes by default


Base Setups:
  • Allow Long Entries: true by default
  • Allow Short Entries: true by default
  • Order Size: 1.5 by default
  • Order Type: Risk Percentage (current) by default, allows adjustment on how the position size is calculated: Cash: only the set cash ammount will be used for each trade Contract(s): the adjusted number of contracts will be used for each trade Capital Percentage: a % of the current available capital will be used for each trade Risk Percentage (current): position size will be determined such that the potential loss is equal to % of the current available capital Risk Percentage (initial): position size will be determined such that the potential loss is equal to % of the initial capital


Trend Filter:
  • Use long trend filter: true by default, only enter long if price is above Long MA
  • Show long trend filter: true by default, plot the selected MA on the chart
  • MA Type (Long): SMA by default
  • MA Length (Long): 100 by default
  • MA Source (Long): close by default
  • Use short trend filter: true by default, only enter long if price is under Short MA
  • Show short trend filter: false by default, plot the selected MA on the chart
  • MA Type (Short): SMA by default
  • MA Length (Short): 100 by default
  • MA Source (Short): close by default


Simple RSI Limiter:
  • Limit using Simple RSI: true by default, if set to 'Normal', only enter long when Simple RSI is lower then Long Boundary, and only enter short when Simple RSI is higher then Short Boundary. If set to 'Reverse', only enter long when Simple RSI is higher then Long Boundary, and only enter short when Simple RSI is lower then Short Boundary.
  • Simple RSI Limiter Type:
  • RSI Length: 14 by default
  • RSI Source: hl2 by default
  • Simple RSI Long Boundary: 50 by default
  • Simple RSI Short Boundary: 50 by default


ADX Limiter:
  • Use ADX Limiter: true by default, only enter into any position (long/short) if ADX value is higher than the Low Boundary and lower than the High Boundary.
  • ADX Length: 5 by default
  • DI Length: 5 by default
  • High Boundary: 50 by default
  • Low Boundary: 20 by default
  • Use MA based calculation: Yes by default, if 'Yes', only enter into position (long/short) if ADX value is higher than MA (ADX as source).
  • MA Type: REMA by default
  • MA Length: 5 by default


Volume Filter:
  • Only enter trades where volume is higher then the volume-based MA: true by default, a set type of MA will be calculated with the volume as source, and set length
  • MA Type: EMA by default
  • MA Length: 10 by default


Session Limiter:
  • Show session plots: false by default, show crypto market sessions on chart: Sidney (red), Tokyo (orange), London (yellow), New York (green)
  • Use session limiter: false by default, if enabled, trades will only happen in the ticked sessions below.
  • Sidney session: false by default, session between: 15:00 - 00:00 (EST)
  • Tokyo session: false by default, session between: 19:00 - 04:00 (EST)
  • London session: false by default, session between: 03:00 - 11:00 (EST)
  • New York session: false by default, session between: 08:00 - 17:00 (EST)


Date Range:
  • Limit Between Dates: false by default
  • Start Date: Jul 01 2021 00:00:00 by default
  • End Date: Dec 31 2022 00:00:00 by default


Trading Time:
  • Limit Trading Time: false by default, tick this together with the options below to enable limiting based on day and time
  • Valid Trading Days Global: 1234567 by default, if the Limit Trading Time is on, trades will only happen on days that are present in this field. If any of the not global Valid Trading Days is used, this field will be neglected. Values represent days: Sunday (1), Monday (2), ..., Friday (6), Saturday(7) To trade on all days use: 123457
  • (1) Valid Trading Days: false, 1234567 by default, values represent days: Sunday (1), Monday (2), ..., Friday (6), Saturday(7) The script will trade on days that are present in this field. Please make sure that this field and also (1) Valid Trading Hours Between is checked
  • (1) Valid Trading Hours Between: false, 0930-1600 by default, hours between which the trades can happen. The time is always in the exchange's timezone


Fine-tuning is highly recommended when using other asset/timeframe combinations.
AIai-drivenAverage Directional Index (ADX)chatgptchristmascryptoForexMoving Average Convergence / Divergence (MACD)Relative Strength Index (RSI)squeezemomentumtradesmart

Script protegido

Este script se publica con código cerrado, pero puede utilizarlo libremente. Márquelo como favorito y podrá usarlo en un gráfico. El código fuente no se puede ver ni modificar.

¿Quiere utilizar este script en un gráfico?


Join our community of Smart Traders and get access to every Premium script: patreon.com/tradesmart224
También en:

Exención de responsabilidad