Friday-Monday Pattern Backtest (Market Rebellion)Tests the "Friday-Monday Pattern" popularized by Tom Hougaard / Market Rebellion.
PATTERN LOGIC:
• When Friday's high is LOWER than Thursday's high (setup condition)
• Then Friday's low is often revisited on the following Monday
WHAT THIS INDICATOR SHOWS:
• Orange background highlights valid setup bars (Thu-Fri-Mon)
• Red horizontal line marks Friday's low (the target level)
• Green "SUCCESS" label = Monday hit Friday's low
• Red "FAIL" label = Monday did not reach Friday's low
• Stats table (top-right) shows total setups, successes, and success rate
USE THIS TO:
• Backtest the pattern on any daily chart (works best on indices, forex, futures)
• Verify the claimed "overwhelming" tendency statistically
• Identify which markets/timeframes show the highest success rate
CREDITS:
Pattern idea from Tom Hougaard / Market Rebellion: x.com
Indicator by BacktestBay for transparent pattern verification.
USAGE NOTES:
• Must be applied to DAILY charts
• Uses time_close("D") for accurate day-of-week detection on forex pairs
• No trading signals - purely for statistical backtesting
Backtest
Breakdown Sniper [Riz]Breakdown Sniper is a complete structural-based price-action system designed to identify and validate three major setups
1. Failed Breakdowns (FBD)
2. Breakouts / Breakdowns (BO)
3. Back-Tests (BT)
The script analyzes swing structure, undercuts, reclaim behavior, channel bias, support/resistance levels, and a multi-layer confluence engine to highlight high-quality long/short signals.
It also includes trade management, target projections, trailing logic, risk models, and an optional dashboard for clarity.
Core Concepts Behind the System
1. Pivot Structure & New Low/High Logic
Breakdown Sniper continuously detects pivot highs and lows using user-defined left/right bars.
These pivots are used to determine
⦁ Recent structural lows/highs
⦁ Undercuts (for failed breakdowns)
⦁ Structural breaks (for FBO/BO setups)
This provides the foundation for all three setup types.
2. Failed Breakdown (FBD) Detection
The primary logic of the script is to detect failed breakdowns, which follow this sequence:
1. Identify an initial pivot low
2. Price undercuts that low
3. Price reclaims the level by a specified number of points
4. Optional: new higher low print confirming strength
5. Once confirmed, the script calculates:
⦁ Entry trigger price
⦁ Stop placement (multiple options: below undercut, below initial low, ATR-based, fixed)
⦁ Three profit targets based on risk multiples
The reverse logic is applied for failed breakouts (FBO).
3. Breakouts & Breakdowns (BO)
The system also captures momentum breakouts/breakdowns defined by:
⦁ Price breaking major support/resistance
⦁ Bar-level strength (close vs range)
⦁ ATR-based expansion
⦁ Holding above/below breakout level for a user-defined number of bars
If confirmed, the script projects T1/T2/T3 targets and stop placement automatically.
4. Back-test Setups (BT)
After a confirmed breakout/breakdown, the script monitors for a return to the breakout level, within a percentage tolerance.
If a clean retest occurs:
⦁ A BT Long or BT Short setup is generated
⦁ Risk and target calculations are performed automatically
This allows identifying continuation setups after strong breaks.
Channel & Levels System (Support/Resistance Engine)
The script builds a hybrid S/R and environment model using:
⦁ Regression channel OR
⦁ Donchian, Keltner, Bollinger channels (user-selectable)
The channel provides:
⦁ Upper/Lower boundaries
⦁ Midline
⦁ Trend bias based on slope
Additionally, a multi-touch support/resistance detector clusters pivot-based levels and scores them by:
⦁ Touch count
⦁ Recency
⦁ Age
⦁ Whether they classify as major levels
This explains where reversals and breakouts are most likely.
Confluence Engine
Every Long/Short signal receives a 0–100 score derived from:
⦁ Market structure: HH/HL or LL/LH
⦁ Trend filter (EMA-based)
⦁ Volatility conditions (ATR range requirements)
⦁ Session bias (Asian / London / New York / Overlap)
⦁ Volume expansion
⦁ Higher-timeframe trend (optional)
⦁ Location inside channel
⦁ Distance to nearest S/R
⦁ Setup-type priority (FBD/BO/BT)
Users can require a minimum score before a signal becomes valid.
Trade Management Logic
Once a trade triggers, the indicator handles:
⦁ Entry execution confirmation
⦁ Stop loss tracking
⦁ Three independent profit targets
⦁ Optional scale-ins
⦁ ATR-based trailing stop
⦁ Risk calculations
⦁ Real-time PnL monitoring
The script does not execute live trades — it only visualizes management levels for analysis.
Visual Components
Breakdown Sniper plots:
⦁ Channels & fills
⦁ Auto-detected S/R levels
⦁ Pivot highs/lows
⦁ Buy/Sell markers
⦁ Entry/Stop/Targets
⦁ Trade dashboard (optional)
⦁ Equity curve (optional)
Everything is toggle-based for clean charting.
How To Use the Indicator
Recommended Use-Case
⦁ Futures (ES/NQ/CL/RTY)
⦁ Indices
⦁ Crypto
⦁ FX
Works well on:
⦁ 5m / 15m / 1H
Signals do not repaint because pivots and reclaim sequences require bar completion.
Basic Usage Steps
1. Enable the setups you want to trade: FBD, BO, BT
2. Optionally turn on filters:
⦁ Trend filter
⦁ Volatility filter
⦁ Market structure filter
⦁ MTF trend filter
3. Wait for a valid long/short signal with sufficient confluence
4. Follow the plotted entry level, stop, and targets
5. Use the dashboard to monitor performance of each setup type
Important Notes
This is a structural/price-action tool, not a prediction model
No guarantee of profitability is provided
The indicator is educational and analytical
Always use independent confirmation and risk management
Disclaimer
This script is for education and analysis. It does not provide financial advice. Markets involve risk. Past behavior of any pattern or study does not imply future results. You are responsible for your own decisions.
Golden BOS Strategy - ChecklistA clean, mechanical on-chart checklist designed for multi-timeframe traders using the Golden BOS / Institutional Retracement Framework.
This tool helps you stay disciplined by tracking each requirement of the strategy in real time:
Included Criteria
4H Bias: Bullish or bearish macro structure
1H Structure: Push/pull phase + golden zone retracement
5M Entry Model:
Break of Structure (BOS)
5M golden zone retracement
POI validation (OB/FVG/Breaker)
Final micro BOS or rejection confirmation
Risk Filters:
Session validity (London / NY)
Red news avoidance
Stop-loss placement check
Liquidity-based target confirmation
Purpose
This overlay ensures every trade meets strict criteria before execution, removing emotion and improvisation. Ideal for backtesting, forward testing, and staying consistent during live market conditions.
Golden BOS Strategy — Description
The Golden BOS Strategy is a structured, multi-timeframe trading system designed to capture high-probability continuation moves during London and New York sessions. The strategy combines institutional concepts with Fibonacci-based retracements to identify discounted entry zones aligned with higher-timeframe direction.
Using the 4H timeframe, traders establish the daily macro bias and identify the dominant trend. The 1H chart is then used to confirm the current phase of market structure, distinguishing between impulsive “push” moves and corrective “pullback” phases. A Fibonacci retracement is applied to the most recent 1H impulse leg to define a high-value discount or premium zone where entries become valid.
Execution takes place on the 5-minute chart. Once price reaches the 1H golden zone (61.8–78.6%), a Break of Structure (BOS) is required to confirm a shift in short-term momentum. A second Fibonacci retracement is then drawn on the 5M impulse leg that caused the BOS, and price must retrace back into the 5M golden zone. Traders refine their entry using a confluence point of interest (POI) such as a Fair Value Gap (FVG), Order Block, Breaker Block, or Inverse FVG, ideally accompanied by a final micro BOS or rejection candle.
Risk management is strict and rule-driven. Stop loss is placed beyond the extreme wick of the POI, while take-profit targets are set at logical liquidity pools in the direction of the higher-timeframe trend. The strategy avoids red-folder news and only allows trades during active sessions to ensure optimal volatility and reliability.
The Golden BOS Strategy is designed to impose discipline, reduce discretionary errors, and give traders a repeatable, mechanical framework for navigating trending markets with precision.
Adaptive Trend SelectorThe Adaptive Trend Selector is a comprehensive trend-following tool designed to automatically identify the optimal moving average crossover strategy. It features adjustable parameters and an integrated backtester that delivers institutional-grade insights into the recommended strategy. The model continuously adapts to new data in real time by evaluating multiple moving average combinations, determining the best performing lengths, and presenting the backtest results in a clear, color-coded table that benchmarks performance against the buy-and-hold strategy.
At its core, the model systematically backtests a wide range of moving average combinations to identify the configuration that maximizes the selected optimization metric. Users can choose to optimize for absolute returns or risk-adjusted returns using the Sharpe, Sortino, or Calmar ratios. Alternatively, users can enable manual optimization to test custom fast and slow moving average lengths and view the corresponding backtest results. The label displays the Compounded Annual Growth Rate (CAGR) of the strategy, with the buy-and-hold CAGR in parentheses for comparison. The table presents the backtest results based on the fast and slow lengths displayed at the top:
Sharpe = CAGR per unit of standard deviation.
Sortino = CAGR per unit of downside deviation.
Calmar = CAGR relative to maximum drawdown.
Max DD = Largest peak-to-trough decline in value.
Beta (β) = Return sensitivity relative to buy-and-hold.
Alpha (α) = Excess annualized risk-adjusted returns.
Win Rate = Ratio of profitable trades to total trades.
Profit Factor = Total gross profit per unit of losses.
Expectancy = Average expected return per trade.
Trades/Year = Average number of trades per year.
This indicator is designed with flexibility in mind, enabling users to specify the start date of the backtesting period and the preferred moving average strategy. Supported strategies include the Exponential Moving Average (EMA), Simple Moving Average (SMA), Wilder’s Moving Average (RMA), Weighted Moving Average (WMA), and Volume-Weighted Moving Average (VWMA). To minimize overfitting, users can define constraints such as a minimum and maximum number of trades per year, as well as an optional optimization margin that prioritizes longer, more robust combinations by requiring shorter-length strategies to exceed this threshold. The table follows an intuitive color logic that enables quick performance comparison against buy-and-hold (B&H):
Sharpe = Green indicates better than B&H, while red indicates worse.
Sortino = Green indicates better than B&H, while red indicates worse.
Calmar = Green indicates better than B&H, while red indicates worse.
Max DD = Green indicates better than B&H, while red indicates worse.
Beta (β) = Green indicates better than B&H, while red indicates worse.
Alpha (α) = Green indicates above 0%, while red indicates below 0%.
Win Rate = Green indicates above 50%, while red indicates below 50%.
Profit Factor = Green indicates above 2, while red indicates below 1.
Expectancy = Green indicates above 0%, while red indicates below 0%.
In summary, the Adaptive Trend Selector is a powerful tool designed to help investors make data-driven decisions when selecting moving average crossover strategies. By optimizing for risk-adjusted returns, investors can confidently identify the best lengths using institutional-grade metrics. While results are based on the selected historical period, users should be mindful of potential overfitting, as past results may not persist under future market conditions. Since the model recalibrates to incorporate new data, the recommended lengths may evolve over time.
My setup [Pro] (fadi)My Setup is a powerful TradingView indicator that visualizes your trading strategy, helping you find high-probability setups with precision and discipline. It combines Higher Timeframe (HTF) context with Lower Timeframe (LTF) entries on a single chart, streamlining your trading process.
What It Does
Tracks your chosen timeframe and its paired higher timeframe for custom trade setups, so you don’t have to stay glued to the screen.
Plots clear Entry, Stop Loss, and Take Profit levels when your conditions align.
Customizes to your strategy with HTF triggers (e.g., sweeps, liquidity grabs) and LTF entries (e.g., Order Blocks, FVGs, Breakers).
Ensures discipline by only showing setups that meet all your rules, eliminating emotional trading and FOMO.
Backtest your edge by visualizing past setups to refine entries, stops, and confluences.
How It Works
Set Your HTF Trigger: Choose a market event like a sweep of a high/low, pivot point, or liquidity grab on the paired higher timeframe (e.g., 1H for a 5m chart).
Define Your LTF Entry: Select your entry model from a range of institutional concepts, such as Order Block, Fair Value Gap (FVG), Inverted FVG (iFVG), Breaker Block, Unicorn Model, and more, on the chart’s timeframe.
Add Confluence Filters: Stack conditions like requiring an FVG + Breaker for higher-probability setups.
See It on Your Chart: When a setup forms, it’s instantly plotted with Entry, Stop Loss, and Take Profit levels based on your Risk-to-Reward ratio.
Key Features
Multi-Timeframe Sync: Pair your chart’s timeframe (e.g., 5m) with a higher timeframe (e.g., 1H) for seamless analysis.
Institutional Tools: Supports a comprehensive suite of ICT concepts, including Order Blocks, FVGs, iFVGs, Breakers, Unicorn Model, and additional entry models.
Custom Risk Management: Set your Stop Loss and Take Profit levels with fixed R:R or measured moves using large range of entry and stop levels.
Session Filtering: Limit setups to specific trading sessions (e.g., London, New York) with timezone support.
Visual Clarity: Displays HTF candles and key levels on your chart for context, with customizable colors and styles.
Alerts: Get notified the moment a valid setup appears, even on live candles.
Who It’s For
Traders who want to systematize their ICT-based strategy on a single chart.
Those seeking to trade with discipline and avoid impulsive decisions.
Anyone looking to backtest and optimize their setups with clear, visual feedback.
Busy traders who need a tool to track their chart while they focus on life.
Why Choose My Setup ?
Save Time: Let the indicator track your chart and its paired timeframe.
Trade Confidently: Only take A+ setups that match your exact rules.
Learn and Improve: Analyze historical setups to refine your strategy.
Disclaimer of Warranties and Limitation of Liability for [My Setup ]
Please read this disclaimer carefully before using the [My Setup ] indicator (hereafter referred to as "the Software").
1. No Financial Advice
The Software is provided for educational and informational purposes only. The data, calculations, and signals generated by the Software are not, and should not be interpreted as, financial advice, investment advice, trading advice, or a recommendation or solicitation to buy, sell, or hold any security or financial instrument.
2. Assumption of Risk You acknowledge that trading and investing are inherently risky activities that carry a high potential for significant financial loss. All actions you take in the market, including but not limited to trade execution and risk management, are your sole responsibility. You agree to use the Software at your own sole risk. The creator shall not be held responsible or liable for any financial losses or damages you may incur as a result of using the Software.
3. No Warranty; "AS IS" Provision
The Software is provided "AS IS" and "AS AVAILABLE", without any warranties of any kind, either express or implied. The creator disclaims all warranties, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, accuracy, timeliness, completeness, and non-infringement.
The creator does not warrant that the Software will be error-free, uninterrupted, secure, or free of bugs, viruses, or other harmful components. You acknowledge that software is never wholly free from defects, and you are responsible for implementing your own procedures for data accuracy and security.
4. Limitation of Liability
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE CREATOR, FADI ZEIDAN, BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This limitation of liability applies to any and all damages, including but not limited to:
Direct, indirect, incidental, special, consequential, or exemplary damages.
Loss of profits, revenue, data, or use.
Financial losses resulting from trading decisions made based on the Software.
Damages arising from software defects, interruptions, or inaccuracies.
5. Indemnification
You agree to indemnify, defend, and hold harmless the creator, Fadi Zeidan, from and against any and all claims, liabilities, damages, losses, or expenses, including reasonable attorneys' fees and costs, arising out of or in any way connected with your access to or use of the Software.
6. Acknowledgment and Agreement
By accessing, installing, or using the [My Setup ] indicator, you acknowledge that you have read, understood, and agree to be bound by the terms of this disclaimer. If you do not agree with these terms, you must not use the Software.
Portfolio Strategy TesterThe Portfolio Strategy Tester is an institutional-grade backtesting framework that evaluates the performance of trend-following strategies on multi-asset portfolios. It enables users to construct custom portfolios of up to 30 assets and apply moving average crossover strategies across individual holdings. The model features a clear, color-coded table that provides a side-by-side comparison between the buy-and-hold portfolio and the portfolio using the risk management strategy, offering a comprehensive assessment of both approaches relative to the benchmark.
Portfolios are constructed by entering each ticker symbol in the menu, assigning its respective weight, and reviewing the total sum of individual weights displayed at the top left of the table. For strategy selection, users can choose between Exponential Moving Average (EMA), Simple Moving Average (SMA), Wilder’s Moving Average (RMA), Weighted Moving Average (WMA), Moving Average Convergence Divergence (MACD), and Volume-Weighted Moving Average (VWMA). Moving average lengths are defined in the menu and apply only to strategy-enabled assets.
To accurately replicate real-world portfolio conditions, users can choose between daily, weekly, monthly, or quarterly rebalancing frequencies and decide whether cash is held or redistributed. Daily rebalancing maintains constant portfolio weights, while longer intervals allow natural drift. When cash positions are not allowed, capital from bearish assets is automatically redistributed proportionally among bullish assets, ensuring the portfolio remains fully invested at all times. The table displays a comprehensive set of widely used institutional-grade performance metrics:
CAGR = Compounded annual growth rate of returns.
Volatility = Annualized standard deviation of returns.
Sharpe = CAGR per unit of annualized standard deviation.
Sortino = CAGR per unit of annualized downside deviation.
Calmar = CAGR relative to maximum drawdown.
Max DD = Largest peak-to-trough decline in value.
Beta (β) = Sensitivity of returns relative to benchmark returns.
Alpha (α) = Excess annualized risk-adjusted returns relative to benchmark.
Upside = Ratio of average return to benchmark return on up days.
Downside = Ratio of average return to benchmark return on down days.
Tracking = Annualized standard deviation of returns versus benchmark.
Turnover = Average sum of absolute changes in weights per year.
Cumulative returns are displayed on each label as the total percentage gain from the selected start date, with green indicating positive returns and red indicating negative returns. In the table, baseline metrics serve as the benchmark reference and are always gray. For portfolio metrics, green indicates outperformance relative to the baseline, while red indicates underperformance relative to the baseline. For strategy metrics, green indicates outperformance relative to both the baseline and the portfolio, red indicates underperformance relative to both, and gray indicates underperformance relative to either the baseline or portfolio. Metrics such as Volatility, Tracking Error, and Turnover ratio are always displayed in gray as they serve as descriptive measures.
In summary, the Portfolio Strategy Tester is a comprehensive backtesting tool designed to help investors evaluate different trend-following strategies on custom portfolios. It enables real-world simulation of both active and passive investment approaches and provides a full set of standard institutional-grade performance metrics to support data-driven comparisons. While results are based on historical performance, the model serves as a powerful portfolio management and research framework for developing, validating, and refining systematic investment strategies.
Force of Strategy (FoS, Multi TF/TA, Backtest, Alerts)Introducing the FoS Trading System
A comprehensive and innovative solution designed for both novice and experienced traders to enhance their intraday trading.
The basic idea of creating this script is to stay profitable in any market
Key Features:
There are over 25 no-repaint strategies for generating buy and sell signals to choose from
10 symbols for simultaneous trading
Webhook alerts in TTA format (tradingview to anywhere) pre-configured to send messages for trading cross-margin futures on major Crypto Exchanges: Binance, Bitget, BingX, Bybit, GateIO and OKX
A unique automated "Strategy switcher" feature for backtesting and live trading—not just a specific strategy, but the logic behind choosing a trading one or another strategy based on backtesting data obtained in real time
Advanced risk management options and backtest result metrics
Higher Timeframe filters (Technical Rating, ADX, Volatility) and ability for check backtest results with 9 main higher timeframes
Buy and sell signals are generated using TradingView Technical Ratings, indicators with adaptive length algorithms and various classic indicators with standard settings to avoid overfitting
Next, I will describe in detail what this script does and what settings it operates with:
"All Strategies" off
- In the global settings block, as shown in the main chart screenshot, you select how long the script will perform backtests in days, with a limitation on the number of bars for calculations. This limitation is necessary to maintain an acceptable calculation speed. You also choose which two higher timeframes we will use for signal and filters when confirming the opening of trades
- With "All Strategies" off - as in the example on the main chart screenshot, trading is carried out by strategy #1 on 10 selected tickers simultaneously. By default, I selected the 9 top-capitalized cryptocurrencies on the Bitget exchange and the chart symbol. You can change that choice of 9 non chart opened instruments and # strategy for each them
- The first row in the table 1 shows some of the main choosen script settings, in attached example: initial capital 20$, leverage 50L, 20 backtest days, 3$ is invest in one deal, 60m - is chart timeframe, next 60m is higher timeframe 1 and last 90m is higher timeframe 2. In first column you see shortened to 5 characters ticker names
- The exchange name in the second row determines the alert messages format
I've attached another example of trading with setting "All strategies" off in the image below. In this example, trading 10 standard symbols on an hourly timeframe, 2 coins from 10: 1000SATS and DOGE have generated a profit of over $65 over the past 20 days using strategy #4
Can you browse a wide range of trading instruments and select the 10 best strategies and settings for future trading? Of course, trading is what this script is do!
The parameters in the table 1 mean the following:
TR - count of closed trading deals
WR - Winning Rate, PF - Profit Factor
MDD - Max Draw Down for all calculated time from initial capital
R$ - trading profit result in usd
The parameters in the table 2 is just more metrics for chart symbol:
PT - result in usd Per one Trade
PW - result Per Win, PL - result Per Lose
ROI - Rate of Investments
SR - Sharpe Ratio, MR - CalMAR ration
Tx - Commision Fee in Usd
R$ - trading profit result in usd again
Table 2 separate trade results of backtesting for longs and shorts. In first column you see how many USD were invested in one trade, taking into account possible position splitting (will be discussed in more detail in the risk management section)
Settings:
"All Strategies" on, "Check Last" off
When "All Strategies" is active, trading changed from 10 symbols and one strategy to all strategies and one chart symbol. If option "Check Last" is inactive you will see backtest results for each of strategy in backtest setting days. This is useful, for example, if you want to see backtest results under different settings over a long period of time for calibrating risk management or entry rules
"All Strategies" on, "Check Last" on
- If "All Strategies" and "Check Last" is active trading will occur on the chart symbol only for those strategies that meet the criteria of the settings block for the enabled "All Strategies" option. For example your criteria is: for last 5 trades for all strategies, open next trade only on strategy which reached ROI 25% and WinRate 50%. When strategy with this setting criteria receive Buy or Sell Signal this trade will be opened, and when trade will be close "check last" will repeat. This feature i called "Strategy switcher"
-In Table 1 if strategy meet criteria you will see "Ok" label, if strategy meet criteria and have maximum from other reached ROI they labeled "Best". Chart strategy labeled "Chart", Chart and Ok labels in one time is "Chart+", "Chart" and "Best" is labeled "Best+"
- The color in the first column of table 1 indicates that the strategy is currently in an open position: green means an open long position, red means an open short position.
In picture bellow you will see good example for trading with check results for last 10 trades, and make desicion for trading when criteries 0.25 ROI and WinRate 50% reached for Top 2 by ROI strategies from all list of them. This example of trading logic in last 20 days (include periods when strategy don't arise 10 trades) give a profit $30+. At the bottom of the screen, you can see Labels with the numbers of the strategies that opened the trades. In this example, trades were primarily opened using strategy number 2, and the second most effective strategy after the 20-day backtest was strategy number 9
Who can promise you'll make a profit of $30 in the next 20 days with a drawdown of no more than $8 from the initial $20 with invest in one trade just 2.7$? No one. But this script guarantees that in the future it will repeat the same logic of switching trading strategies that brought profit over the last 20 days
Risk management options
- When a buy or sell trade is opened, you'll see three lines on the chart: a red stop-loss line (SL), a green take-profit line (TP), and a blue line representing the entry price. The trade will be closed if the high price or low price reaches the line TP or SL (no wait for bar close) and alert will be triggered once per bar when script recalculates
- Several options are available to control the behavior of SL/TP lines, such as stop-loss by percentage, ATR, or Highest High (HH) and Lowest Low (LL). Take Profit can be in percent, ATR or in Risk Reward ratio. There some Trailing Stop with start trail trigger options, like ATR, percent or HH / LL
- Additionally, in risk managment settings a function has been implemented for adding a position when the breakeven level expressed in the current ROI is reached for opened trade (splitting position). The position is added within the bar.
- Webhook alerts in TTA format with message contained next info : Buy / Sell or adding Quantity, Leverage, SL price, TP price and close trade
Keep in mind if the stop-loss changed when adding a position, the stop-loss will not be able to be higher than the current bar's low price, regardless of your settings, as backtest trades do not use intra-bar data, in this situation SL will be correct at next bar (but alert message don't be sended twice). And please note that this script does not have an option to simultaneously open trades in different directions. Only 1 trade can be opened for 1 trading instrument at a time
Backtest Engine
Backtest is a very important part of this script. Here describe how its calculate:
- Profit or Loss is USD: close trade price * open trade quantity - open trade price * open trade quantity - open trade quantity * (open trade price + close trade price)/2 * commision fee
Possible slippage or alert sending delay needed to be include in commission % which you will set in risk managment settings block, default settings is 0.15% (0,06% for open, 0,06% for close and 0,03% for possible slippage or additional fees)
- Maximum Draw Down: Drawdown = (peak - current equity) / peak * 100 ;
Drawdown > maxDrawdown ? maxDrawdown = Drawdown
- ROI: profit result in USD / sum of all positions margin
- CalMAR Ratio: ROI / (-MaxDrawDown)
- Sharpe Ratio: ROI / standard deviation for (Sum of all Profits and Loses) / (Sum of all Position Margins)
This description was added because in metrics i don't use parameters like "The risk-free rate of return". Keep in mind how exactly this script calculate profit and perfomance when adjusting key criteria in the strategy switching parameters block of script settings
Strategies itself
For trading, you can enable or disable various Higher Timeframes Filters (ADX, volatility, technical rating).
With filters enabled, trades will only open when the setting parameters are reached
- Strategy number 1, 2 and 3: is Higher Timeframe TradingView Technical Ratings itself, 1 is summary total rating, 2 is oscillators and 3 is moving averages. When TR filter cross filter levels trade will be open at chart bar close. By Default on chart you see Summary Technical Rating oscillator, but here the options for change it to Oscillator TR or Moving Average TR
- Strategy number 4, 5 and 6: is Chart TimeFrame TR. Trades will open when its values (Summary, Oscillators and Moving Averages) reached setting buy sell level
- Strategy number 7, 8 and 9: is Alternative buy sell logic for Chart TimeFrame TR, trades will open when counting rising or falling values will be reached
- Strategies with number from 10 to 18: is chosen by user adaptive moving averages and oscillators indicators. There in settings you will see many different adaptive length algorithms for trading and different types of moving averages and oscillators. In tooltips in settings you will find very more information, and in settings you will see list of all indicators and algorithms (more than 30 variations). All adaptive strategies have their options in settings for calibrating and plotting
- Strategies with number from 19: its can't be chosen or calibarted, this is needed for avoid overfitting, i try to found mostly time worked strategies and use its with standard settings. In future it's possible to changing current or adding additional strategies. At the time of publication this script uses: Dynamic Swing HH LL (19), Composite indicator (20), %R Exhausting with different signals (21,22,23), Pivot Point SuperTrend (24), Ichimoku Cloud (25), TSI (26), Fib Level RSI (27). I don't plot classic strategies in this script
Let me explain, the value of this script is not in the strategies it includes, but in how exactly it collects the results of their work, how it filters the opening of trades, what risk management it applies and what strategy switching logic it performs. The system itself that you are now reading about represents the main value of this script
Finally if you get access for this script
- You will see many other not described options and possibilities like Kelly position or list of settings for adaptive strategies, also i added many usefull tooltips in script settings
Happy trading, and stay tuned for updates!
DISCLAIMER: No sharing, copying, reselling, modifying, or any other forms of use are authorized for this script, and the information published with them. This script is strictly for individual use. No one know future and Investments are always made at your own risk. I am not responsible for any losses you may incur. Please before investment make sure that chosen logic is enaugh profitable on virtual demo account.
Replay time-fix last candleReplay indicator to avoid showing the fully closed last candle on higher timeframes.
This indicator displays the last candle up to the current point of the replay instead of the full candle.
For example, if you are on a 4H chart at the 1:00 candle and the replay is at 2:00, it will show the last candle from 1:00 → 2:00 only.
Important: To see the correct candles, go to your chart settings and untick the checkboxes for: "Body", "Borders", "Wick", and "Last price line".
Autoback Grid Lab [trade_lexx]Autoback Grid Lab: Your personal laboratory for optimizing grid strategies.
Introduction
First of all, it is important to understand that Autoback Grid Lab is a powerful professional tool for backtesting and optimization, created specifically for traders using both grid strategies and regular take profit with stop loss.
The main purpose of this script is to save you weeks and months of manual testing and parameter selection. Instead of manually testing one combination of settings after another, Autoback Grid Lab automatically tests thousands of unique strategies on historical data, providing you with a comprehensive report on the most profitable and, more importantly, sustainable ones.
If you want to find mathematically sound, most effective settings for your grid strategy on a specific asset and timeframe, then this tool was created for you.
Key Features
My tool has functionality that transforms the process of finding the perfect strategy from a routine into an exciting exploration.
🧪 Mass testing of thousands of combinations
The script is able to systematically generate and run a huge number of unique combinations of parameters through the built-in simulator. You set the ranges, and the indicator does all the work, testing all possible options for the following grid settings:
* Number of safety orders (SO Count)
* Grid step (SO Step)
* Step Multiplier (SO Multiplier) for building nonlinear grids
* Martingale for controlling the volume of subsequent orders
* Take Profit (%)
* Stop Loss (%), with the possibility of calculating both from the entry point and from the dynamic breakeven line
* The volume of the base order (Volume BO) as a percentage of the deposit
🏆 Unique `FinalScore` rating system
Sorting strategies by net profit alone is a direct path to self—deception and choosing strategies that are "tailored" to history and will inevitably fail in real trading. To solve this problem, we have developed FinalScore, a comprehensive assessment of the sustainability and quality of the strategy.
How does it work?
FinalScore analyzes each combination not one by one, but by nine key performance metrics at once, including Net Profit, Drawdown, Profit Factor, WinRate, Sharpe coefficients, Sortino, Squid and Omega. Each of these indicators is normalized, that is, reduced to a single scale. Then, to test the strategy for strength, the system performs 30 iterations, each time assigning random weights to these 9 metrics. A strategy gets a high FinalScore only if it shows consistently high results under different evaluation criteria. This proves her reliability and reduces the likelihood that her success was an accident.
📈 Realistic backtesting engine
The test results are meaningless if they do not take into account the actual trading conditions. Our simulator simulates real trading as accurately as possible, taking into account:
* Leverage: Calculation of the required margin to open and hold positions.
* Commission: A percentage commission is charged each time an order is opened and closed.
* Slippage: The order execution price is adjusted by a set percentage to simulate real market conditions.
* Liquidation model: This is one of the most important functions. The script continuously monitors the equity of the account (capital + unrealized P&L). If equity falls below the level of the supporting margin (calculated from the current value of the position), the simulator forcibly closes the position, as it would happen on a real exchange. This eliminates unrealistic scenarios where the strategy survives after a huge drawdown.
🔌 Integration with external signals
The indicator operates in two modes:
1. `No Signal': Standard mode. The trading cycle starts immediately as soon as the previous one has been closed. Ideal for testing the "pure" mechanics of the grid.
2. `External Signal`: In this mode, a new trading cycle will start only when a signal is received from an external source. You can connect any other indicator (such as the RSI, MACD, or your own strategy) to the script and use it as a trigger to log in. This allows you to combine the power of a grid strategy with your own entry points.
📊 Interactive and informative results panel
Upon completion of the calculations, a detailed table with the TOP N best strategies appears on the screen, sorted according to your chosen criterion. For each strategy in the rating, you will see not only the key metrics (Profit, Drawdown, duration of transactions), but also all the parameters that led to this result. You can immediately take these settings and apply them in your trading.
Application Options: How To Solve Your Problems
Autoback Grid Lab is a flexible tool that can be adapted to solve various tasks, from complete grid optimization to fine—tuning existing strategies. Here are some key scenarios for its use:
1. Complete Optimization Of The Grid Strategy
This is the basic and most powerful mode of use. You can find the most efficient grid configuration for any asset from scratch.
* How to use: Set wide ranges for all key grid parameters ('SO Count`, SO Step, SO Multiplier, Martingale, TP, etc.).
* In the `No Signal` mode: You will find the most stable grid configuration that works as an independent, constantly active strategy, regardless of which-or entrance indicators.
* In the `External Signal` mode: You can connect your favorite indicator for input (for example, RSI, MACD or a complex author's script) and find the optimal grid parameters that best complement your input signals. This allows you to turn a simple signaling strategy into a full-fledged grid system.
2. Selecting the Optimal Take Profit and Stop Loss for Your Strategy
Do you already have an entry strategy, but you are not sure where it is best to put Take Profit and Stop Loss? Autoback Grid Lab can solve this problem as well.
* How to use:
1. Disable optimization of all grid parameters (uncheck SO Count, SO Step, Martingale, etc.). Set the Min value for SO Count to 0.
2. Set the ranges for iteration only for 'Take Profit` and `Stop Loss'.
3. Turn on the External Signal mode and connect your indicator with input signals.
* Result: The script will run your historical entry signals with hundreds of different TP and SL combinations and show you which stop order levels bring maximum profit with minimal risk specifically for your entry points.
3. Building a Secure Network with Risk Management
Many traders are afraid of grid strategies because of the risk of large drawdowns. With the help of the optimizer, you can purposefully find the parameters for such a grid, which includes mandatory risk management through Stop Loss.
* How to use: Enable and set the range for Stop Loss, along with other grid parameters. Don't forget to test both types of SL calculations (`From entry point` and `From breakeven line`) to determine which one works more efficiently.
* Result: You will find balanced strategies in which the grid parameters (number of orders, martingale) and the Stop Loss level are selected in such a way as to maximize profits without going beyond the acceptable risk level for you.
How To Use The Indicator (Step-By-Step Guide)
Working with the Autoback Grid Lab is a sequential process consisting of four main steps: from initial setup to analysis of the finished results. Follow this guide to get the most out of the tool.
Step 1: Initial Setup
1. Add the indicator to the chart of your chosen asset and timeframe.
2. Open the script settings. The first thing you should pay attention to is the ⚙️ Optimization Settings ⚙️ group.
3. Set the `Bars Count'. This parameter determines how much historical data will be used for testing.
* Important: The more bars you specify, the more statistically reliable the backtest results will be. We recommend using the maximum available value (25,000) to test strategies at different market phases.
* Consider: The indicator performs all calculations on the last historical bar. After applying the TradingView settings, it will take some time to load all the specified bars. The results table will appear only after the data is fully loaded. Don't worry if it doesn't appear instantly. And if an error occurs, simply switch the number of combinations to 990 and back to 1000 until the table appears.
Step 2: Optimization Configuration
At this stage, you define the "universe" of parameters that our algorithm will explore.
1. Set the search ranges (🛠 Optimization Parameters 🛠 group).
For each grid parameter that you want to optimize (for example, SO Count or `Take Profit'), you must specify three values:
* Min: The minimum value of the range.
* Max: The maximum value of the range.
* Step: The step with which the values from Min to Max will be traversed.
*Example:* If you set Min=5, Max=10, and Step=1 for SO Count, the script will test strategies with 5, 6, 7, 8, 9, and 10 safety orders.
* Tip for users: To get the first results quickly, start with a larger step (for example, TP from 0.5% to 2.5% in 0.5 increments instead of 0.1). After you identify the most promising areas, you can perform a deeper analysis by expanding the ranges around these values.
2. Set Up Money Management (Group `💰 Money Management Settings 💰`).
Fill in these fields with the values that best match your actual trading conditions. This is critically important for obtaining reliable results.
* Capital: Your initial deposit.
* Leverage: Leverage.
* Commission (%): Your trading commission as a percentage.
* Slippage (%): Expected slippage.
* Liquidation Level (%): The level of the supporting margin (MMR in %). For example, for Binance Futures, this value is usually between 0.4% and 2.5%, depending on the asset and position size. Specify this value for your exchange.
3. Select the Sorting Criterion and the Direction (Group `⚙️ Optimization Settings ⚙️').
* `Sort by': Specify the main criteria by which the best strategies will be selected and sorted. I strongly recommend using finalScore to find the most balanced and sustainable strategies.
* `Direction': Choose which trades to test: Long, Short or Both.
Step 3: Start Testing and Work with "Parts"
The total number of unique combinations generated based on your ranges can reach tens of millions. TradingView has technical limitations on the number of calculations that the script can perform at a time. To get around this, I implemented a "Parts" system.
1. What are `Part` and `Combinations in Part'?
* `Combinations in Part': This is the number of backtests that the script performs in one run (1000 by default).
* `Part`: This is the number of the "portion" of combinations that you want to test.
2. How does it work in practice?
* After you have everything set up, leave Part:1 and wait for the results table to appear. You will see the TOP N best strategies from the first thousand tested.
* Analyze them. Then, to check the next thousand combinations, just change the Part to 2 in the settings and click OK. The script will run a test for the next batch.
* Repeat this process by increasing the Part number (`3`, 4, 5...), until you reach the last available part.
* Where can I see the total number of parts? In the information row below the results table, you will find Total parts. This will help you figure out how many more tests are left to run.
Step 4: Analyze the Results in the Table
The results table is your main decision—making tool. It displays the best strategies found, sorted by the criteria you have chosen.
1. Study the performance metrics:
* Rating: Position in the rating.
* Profit %: Net profit as a percentage of the initial capital.
* Drawdown%: The maximum drawdown of the deposit for the entire test period.
* Max Length: The maximum duration of one transaction in days, hours and minutes.
* Trades: The total number of completed trades.
2. Examine the winning parameters:
* To the right of the performance metrics are columns showing the exact settings that led to this result ('SO Count`, SO Step, TP (%), etc.).
3. How to choose the best strategy?
* Don't chase after the maximum profit! The strategy with the highest profit often has the highest drawdown, which makes it extremely risky.
* Seek a balance. The ideal strategy is a compromise between high profitability, low drawdown (Drawdown) and the maximum length of trades acceptable to you (Max Length).
* finalScore was created to find this balance. Trust him — he often highlights not the most profitable, but the most stable and reliable options.
Detailed Description Of The Settings
This section serves as a complete reference for each parameter available in the script settings. The parameters are grouped in the same way as in the indicator interface for your convenience.
Group: ⚙️ Optimization Settings ⚙️
The main parameters governing the testing process are collected here.
* `Enable Optimizer': The main switch. Activates or deactivates all backtesting functionality.
* `Direction': Determines which way trades will be opened during the simulation.
* Long: Shopping only.
* Short: Sales only.
* Both: Testing in both directions. Important: This mode only works in conjunction with an External Signal, as the script needs an external signal to determine the direction for each specific transaction.
* `Signal Mode`: Controls the conditions for starting a new trading cycle (opening a base order).
* No Signal: A new cycle starts immediately after the previous one is completed. This mode is used to test "pure" grid mechanics without reference to market conditions.
* External Signal: A new cycle begins only when a signal is received from an external indicator connected via the Signal field.
* `Signal': A field for connecting an external signal source (works only in the `External Signal` mode). You can select any other indicator on the chart.
* For Long** trades, the signal is considered received if the value of the external indicator ** is greater than 0.
* For Short** trades, the signal is considered received if the value of the external indicator ** is less than 0.
* `Bars Count': Sets the depth of the history in the bars for the backtest. The maximum value (25000) provides the most reliable results.
* `Sort by`: A key criterion for selecting and ranking the best strategies in the final table.
* FinalScore: Recommended mode. A comprehensive assessment that takes into account 9 metrics to find the most balanced and sustainable strategies.
* Profit: Sort by net profit.
* Drawdown: Sort by minimum drawdown.
* Max Length: Sort by the minimum length of the longest transaction.
* `Combinations Count': Indicates how many of the best strategies (from 1 to 50) will be displayed in the results table.
* `Close last trade`: If this option is enabled, any active trade will be forcibly closed at the closing price of the last historical bar. For grid strategies, it is recommended to always enable this option in order to get the correct calculation of the final profit and eliminate grid strategies that have been stuck for a long time.
Group: 💰 Money Management Settings 💰
The parameters in this group determine the financial conditions of the simulation. Specify values that are as close as possible to your actual values in order to get reliable results.
* `Capital': The initial deposit amount for the simulation.
* `Leverage`: The leverage used to calculate the margin.
* `Slippage` (%): Simulates the difference between the expected and actual order execution price. The specified percentage will be applied to each transaction.
* `Commission` (%): The trading commission of your exchange as a percentage. It is charged at the execution of each order (both at opening and closing).
* `Liquidation Level' (%): Maintenance Margin Ratio. This is a critical parameter for a realistic test. Liquidation in the simulator occurs if the Equity of the account (Capital + Unrealized P&L) falls below the level of the supporting margin.
Group: 🛠 Optimization Parameters 🛠
This is the "heart" of the optimizer, where you set ranges for iterating through the grid parameters.
* `Part`: The portion number of the combinations to be tested. Start with 1, and then increment (`2`, 3, ...) sequentially to check all generated strategies.
* `Combinations in Part': The number of backtests performed at a time (in one "Part"). Increasing the value may speed up the process, but it may cause the script to error due to platform limitations. If an error occurs, it is recommended to switch to the step below and back.
Three fields are available for each of the following parameters (`SO Count`, SO Step, SO Multiplier, etc.):
* `Min`: Minimum value for testing.
* `Max': The maximum value for testing.
* `Step`: The step with which the values in the range from Min to Max will be iterated over.
There is also a checkbox for each parameter. If it is enabled, the parameter will be optimized in the specified range. If disabled, only one value specified in the Min field will be used for all tests.
* 'Stop Loss': In addition to the standard settings Min, Max, Step, it has an additional parameter:
* `Type`: Defines how the stop loss price is calculated.
* From entry point: The SL level is calculated once from the entry price (base order price).
* From breakeven line: The SL level is dynamically recalculated from the average position price after each new safety order is executed.
Group: ⚡️Filters⚡️
Filters allow you to filter out those results from the final table that do not meet your minimum requirements.
For each filter (`Max Profit`, Min Drawdown, `Min Trade Length`), you can:
1. Turn it on or off using the checkbox.
2. Select the comparison condition: Greater (More) or Less (Less).
3. Set a threshold value.
*Example:* If you set Less and 20 for the Min Drawdown filter, only those strategies with a maximum drawdown of less than 20% will be included in the final table.
Group: 🎨 Visual Settings 🎨
Here you can customize the appearance of the results table.
* `Position': Selects the position of the table on the screen (for example, Bottom Left — bottom left).
* `Font Size': The size of the text in the table.
* `Header Background / Data Background`: Background colors for the header and data cells.
* `Header Font Color / Data Font Color`: Text colors for the header and data cells.
Important Notes and Limitations
So that you can use the Autoback Grid Lab as efficiently and consciously as possible, please familiarize yourself with the following key features of its work.
1. It is a Tool for Analysis, not for Signals
It is extremely important to understand that this script does not generate trading signals in real time. Its sole purpose is to conduct in—depth research (**backtesting**) on historical data.
* The results you see in the table are a report on how a particular strategy would have worked in the past.
* The script does not provide alerts and does not draw entry/exit points on the chart for the current market situation.
* Your task is to take the best sets of parameters found during optimization and use them in your real trading, for example, when setting up a trading bot or in a manual trading system.
2. Features Of Calculations (This is not a "Repainting")
You will notice that the results table appears and is updated only once — when all historical bars on the chart are loaded. It does not change in real time with each tick of the price.
This is correct and intentional behavior.:
* To test thousands, and sometimes millions of combinations, the script needs to perform a huge amount of calculations. In the Pine Script™ environment, it is technically possible to do this only once, at the very last bar in history.
* The script does not show false historical signals, which then disappear or change. It provides a static report on the results of the simulation, which remains unchanged for a specific historical period.
3. Past Results do not Guarantee Future Results.
This is the golden rule of trading, and it fully applies to the results of backtesting. Successful strategy performance in the past is not a guarantee that it will be as profitable in the future. Market conditions, volatility and trends are constantly changing.
My tool, especially when sorting by finalScore, is aimed at finding statistically stable and reliable strategies to increase the likelihood of their success in the future. However, it is a tool for managing probabilities, not a crystal ball for predicting the future. Always use proper risk management.
4. Dependence on the Quality and Depth of the Story
The reliability of the results directly depends on the quantity and quality of the historical data on which the test was conducted.
* Always strive to use the maximum number of bars available (`Bars Count: 25,000`) so that your strategy is tested on different market cycles (rise, fall, flat).
* The results obtained on data for one month may differ dramatically from the results obtained on data for two years. The longer the testing period, the higher the confidence in the parameters found.
Conclusion
The Autoback Grid Lab is your personal research laboratory, designed to replace intuitive guesses and endless manual selection of settings with a systematic, data—driven approach. Experiment with different assets, timeframes, and settings ranges to find the unique combinations that best suit your trading style.
Uptrick: Asset Rotation SystemOverview
The Uptrick: Asset Rotation System is a high-level performance-based crypto rotation tool. It evaluates the normalized strength of selected assets and dynamically simulates capital rotation into the strongest asset while optionally sidestepping into cash when performance drops. Built to deliver an intelligent, low-noise view of where capital should move, this system is ideal for traders focused on strength-driven allocation without relying on standard technical indicators.
Purpose
The purpose of this tool is to identify outperforming assets based strictly on relative price behavior and automatically simulate how a portfolio would evolve if it consistently moved into the strongest performer. By doing so, it gives users a realistic and dynamic model for capital optimization, making it especially suitable during trending markets and major crypto cycles. Additionally, it includes an optional safety fallback mechanism into cash to preserve capital during risk-off conditions.
Originality
This system stands out due to its strict use of normalized performance as the only basis for decision-making. No RSI, no MACD, no trend oscillators. It does not rely on any traditional indicator logic. The rotation logic depends purely on how each asset is performing over a user-defined lookback period. There is a single optional moving average filter, but this is used internally for refinement, not for entry or exit logic. The system’s intelligence lies in its minimalism and precision — using normalized asset scores to continuously rotate capital with clarity and consistency.
Inputs
General
Normalization Length: Defines how many bars are used to calculate each asset’s normalized score. This score is used to compare asset performance.
Visuals: Selects between Equity Curve (show strategy growth over time) or Asset Performance (compare asset strength visually).
Detect after bar close: Ensures changes only happen after a candle closes (for safety), or allows bar-by-bar updates for quicker reactions.
Moving Average
Used internally for optional signal filtering.
MA Type: Lets you choose which moving average type to use (EMA, SMA, WMA, RMA, SMMA, TEMA, DEMA, LSMA, EWMA, SWMA).
MA Length: Sets how many bars the moving average should calculate over.
Use MA Filter: Turns the filter on or off. It doesn’t affect the signal directly — just adds a layer of control.
Backtest
Used to simulate equity tracking from a chosen starting point. All calculations begin from the selected start date. Prior data is ignored for equity tracking, allowing users to isolate specific market cycles or testing periods.
Starting Day / Month / Year: The exact day the strategy starts tracking equity.
Initial Capital $: The amount of simulated starting capital used for performance calculation.
Rotation Assets
Each asset has 3 controls:
Enable: Include or exclude this asset from the rotation engine.
Symbol: The ticker for the asset (e.g., BINANCE:BTCUSDT).
Color: The color for visualization (labels, plots, tables).
Assets supported by default:
BTC, ETH, SOL, XRP, BNB, NEAR, PEPE, ADA, BRETT, SUI
Cash Rotation
Normalization Threshold USDC: If all assets fall below this threshold, the system rotates into cash.
Symbol & Color: Sets the cash color for plots and tables.
Customization
Dynamic Label Colors: Makes labels change color to match the current asset.
Enable Asset Label: Plots asset name labels on the chart.
Asset Table Position: Choose where the key asset usage table appears.
Performance Table Position: Choose where the backtest performance table appears.
Enable Realism: Enables slippage and fee simulation for realistic equity tracking. Adjusted profit is shown in the performance table.
Equity Styling
Show Equity Curve (STYLING): Toggles an extra-thick visual equity curve.
Background Color: Adds a soft background color that matches the current asset.
Features
Dual Visualization Modes
The script offers two powerful modes for real-time visual insights:
Equity Curve Mode: Simulates the growth of a portfolio over time using dynamic asset rotation. It visually tracks capital as it moves between outperforming assets, showing compounded returns and the current allocation through both line plots and background color.
Asset Performance Mode: Displays the normalized performance of all selected assets over the chosen lookback period. This mode is ideal for comparing relative strength and seeing how different coins perform in real-time against one another, regardless of price level.
Multi-Asset Rotation Logic
You can choose up to 10 unique assets, each fully customizable by symbol and color. This allows full flexibility for different strategies — whether you're rotating across majors like BTC, ETH, and SOL, or including meme tokens and stablecoins. You decide the rotation universe. If none of the selected assets meet the strength threshold, the system automatically moves to cash as a protective fallback.
Key Asset Selection Table
This on-screen table displays how frequently each enabled asset was selected as the top performer. It updates in real time and can help traders understand which assets the system has historically favored.
Asset Name: Shortened for readability
Color Box: Visual color representing the asset
% Used: How often the asset was selected (as a percentage of strategy runtime)
This table gives clear insight into historical rotation behavior and asset dominance over time.
Performance Comparison Table
This second table shows a full backtest vs. chart comparison, broken down into key performance metrics:
Backtest Start Date
Chart Asset Return (%) – The performance of the asset you’re currently viewing
System Return (%) – The equity growth of the rotation strategy
Outperformed By – Shows how many times the system beat the chart (e.g., 2.1x)
Slippage – Estimated total slippage costs over the strategy
Fees – Estimated trading fees based on rotation activity
Total Switches – Number of times the system changed assets
Adjusted Profit (%) – Final net return after subtracting fees and slippage
Equity Curve Styling
To enhance visual clarity and aesthetics, the equity curve includes styling options:
Custom Thickness Curve: A second stylized line plots a shadow or highlight of the main equity curve for stronger visual feedback
Dynamic Background Coloring: The chart background changes color to match the currently held asset, giving instant visual context
Realism Mode
By enabling Realism, the system calculates estimated:
Trading Fees (default 0.1%)
Slippage (default 0.05%)
These costs are subtracted from the equity curve in real time, and shown in the table to produce an Adjusted Return metric — giving users a more honest and execution-aware picture of system performance.
Adaptive Labeling System
Each time the asset changes, an on-chart label updates to show:
Current Asset
Live Equity Value
These labels dynamically adjust in color and visibility depending on the asset being held and your styling preferences.
Full Customization
From visual position settings to table placements and custom asset color coding, the entire system is fully modular. You can move tables around the screen, toggle background visuals, and control whether labels are colored dynamically or uniformly.
Key Concepts
Normalized values represent how much an asset has changed relative to its past price over a fixed period, allowing performance comparisons across different assets. Outperforming refers to the asset with the highest normalized value at a given time. Cash fallback means the system moves into a stable asset like USDC when no strong performers are available. The equity curve is a running total of simulated capital over time. Slippage is the small price difference between expected and actual trade execution due to market movement.
Use Case Flexibility
You don’t need to use all 10 assets. The system works just as effectively with only 1 asset — such as rotating between CASH and SOL — for a simple, minimal strategy. This is ideal for more focused portfolios or thematic rotation systems.
How to Use the Indicator
To use the Uptrick: Asset Rotation System, start by selecting which assets to include and entering their symbols (e.g., BINANCE:BTCUSDT). Choose between Equity Curve mode to see simulated portfolio growth, or Asset Performance mode to compare asset strength. Set your lookback period, backtest start date, and optionally enable the moving average filter or realism settings for slippage and fees. The system will then automatically rotate into the strongest asset, or into cash if no asset meets the strength threshold. Use alerts to be notified when a rotation occurs.
Asset Switch Alerts
The script includes built-in alert conditions for when the system rotates into a new asset. You can enable these to be notified when the system reallocates to a different coin or to cash. Each alert message is labeled by target asset and can be used for automation or monitoring purposes.
Conclusion
The Uptrick: Asset Rotation System is a next-generation rotation engine designed to cut through noise and overcomplication. It gives users direct insight into capital strength, without relying on generic indicators. Whether used to track a broad basket or focus on just two assets, it is built for accuracy, adaptability, and transparency — all in real-time.
Disclaimer
This script is for research and educational purposes only. It is not intended as financial advice. Past performance is not a guarantee of future results. Always consult with a financial professional and evaluate risks before trading or investing.
ETF Builder & Backtest System [TradeDots]Create, analyze, and monitor your own custom “ETF-like” portfolio directly on TradingView. This script merges up to 10 different assets with user-defined weightings into a single composite chart, allowing you to see how your personalized portfolio would have performed historically. It is an original tool designed to help traders and investors quickly gauge risk and return profiles without leaving the TradingView platform.
📝 HOW IT WORKS
1. Custom Portfolio Construction
Multiple Assets : Combine up to 10 different stocks, ETFs, cryptocurrencies, or other symbols.
User-Defined Weights : Allocate each asset a percentage weight (e.g., 15% in AAPL, 10% in MSFT, etc.).
Single Composite Value : The script calculates a weighted “ETF-style” price, effectively simulating a merged portfolio curve on your chart.
2. Performance Tracking & Return Analysis
Automatic History Capture : The indicator records each asset’s starting price when it first appears in your chosen date range.
Rolling Updates : As time progresses, all asset prices are continually evaluated and the portfolio value is updated in real time.
Buy & Hold Returns : See how each asset—and the overall portfolio—performed from the “start” date to the most recent bar.
Annualized Return : Automatically calculates CAGR (Compound Annual Growth Rate) to help visualize performance over varying timescales.
3. Table & Visual Output
Performance Table : A comprehensive table displays individual asset returns, annualized returns, and portfolio totals.
Normalized Chart Plot : The composite ETF value is scaled to 100 at the start date, making it easy to compare relative growth or decline.
Optional Time Filter : You can define a specific date range (Start/End Dates) to focus on a particular period or to limit historical data.
⚙️ KEY FEATURES
1. Flexible Asset Selection
Choose any symbols from multiple asset classes. The script will only run calculations when data is available—no need to worry about missing quotes.
2. Dynamic Table Reporting
Start Price for each asset
Percentage Weight in the portfolio
Total Return (%) and Annualized Return (%)
3. Simple Backtesting Logic
This script takes a straightforward Buy & Hold perspective. Once the start date is reached, the portfolio remains static until the end date, so you can quickly assess hypothetical growth.
4. Plot Customization
Toggle the main “ETF” plot on/off.
Alter the visual style for tables and text.
Adjust the time filter to limit or extend your performance measurement window.
🚀 HOW TO USE IT
1. Add the Script
Search for “ETF Builder & Backtest System ” in the Indicators & Strategies tab or manually add it to your chart after saving it in your Pine Editor.
2. Configure Inputs
Enable Time Filter : Choose whether to restrict the analysis to a particular date range.
Start & End Date : Define the period you want to measure performance over (e.g., from 2019-12-31 to 2025-01-01).
Assets & Weights : Enter each symbol and specify a percentage weight (up to 10 assets).
Display Options : Pick where you want the Table to appear and choose background/text colors.
3. Interpret the Table & Plots
Asset Rows : Each asset’s ticker, weighting, start price, and performance metrics.
ETF Total Row : Summarizes total weighting, composite starting value, and overall returns.
Normalized Plot : Tracks growth/decline of the combined portfolio, starting at 100 on the chart.
4. Refine Your Strategy
Compare how different weights or a new mix of assets would have performed over the same period.
Assess if certain assets contribute disproportionately to your returns or volatility.
Use the results to guide allocations in your real trading or paper trading accounts.
❗️LIMITATIONS
1. Buy & Hold Only
This script does not handle rebalancing or partial divestments. Once the portfolio starts, weights remain fixed throughout the chosen timeframe.
2. No Reinvestment Tracking
Dividends or other distributions are not factored into performance.
3. Data Availability
If historical data for a particular asset is unavailable on TradingView, related results may display as “N/A.”
4. Market Regimes & Volatility
Past performance does not guarantee similar future behavior. Markets can change rapidly, which may render historical backtests less predictive over time.
⚠️ RISK DISCLAIMER
Trading and investing carry significant risk and can result in financial loss. The “ETF Builder & Backtest System ” is provided for informational and educational purposes only. It does not constitute financial advice.
Always conduct your own research.
Use proper risk management and position sizing.
Past performance does not guarantee future results.
This script is an original creation by TradeDots, published under the Mozilla Public License 2.0.
Use this indicator as part of a broader trading or investment approach—consider fundamental and technical factors, overall market context, and personal risk tolerance. No trading tool can assure profits; exercise caution and responsibility in all financial decisions.
Backtesting Stats (Altrady)Track and analyze your backtesting results directly on your chart.
This indicator simplifies manual backtesting by summarizing your trades in a clear, structured table. Enter your R-values (one per line) in the text area, and instantly see:
✅ Trade list – All entries displayed with color-coded wins/losses.
✅ Key stats – Total trades, win rate, and RR sum in the top row.
✅ Quick insights – Spot trends, refine your strategy, and track performance without spreadsheets.
How to Use
1️⃣ Open settings and enter R-values, one per line (e.g., 2.5, -1, 3.2) along with short comments (bad entry, counter trend, etc)
2️⃣ View the table in the top-right corner of your chart.
3️⃣ Analyze your results, adjust your strategy, and improve consistency.
Perfect for manual backtesters who want a fast, no-spreadsheet solution. 🚀
*Auto Backtest & Optimize EngineFull-featured Engine for Automatic Backtesting and parameter optimization. Allows you to test millions of different combinations of stop-loss and take profit parameters, including on any connected indicators.
⭕️ Key Futures
Quickly identify the optimal parameters for your strategy.
Automatically generate and test thousands of parameter combinations.
A simple Genetic Algorithm for result selection.
Saves time on manual testing of multiple parameters.
Detailed analysis, sorting, filtering and statistics of results.
Detailed control panel with many tooltips.
Display of key metrics: Profit, Win Rate, etc..
Comprehensive Strategy Score calculation.
In-depth analysis of the performance of different types of stop-losses.
Possibility to use to calculate the best Stop-Take parameters for your position.
Ability to test your own functions and signals.
Customizable visualization of results.
Flexible Stop-Loss Settings:
• Auto ━ Allows you to test all types of Stop Losses at once(listed below).
• S.VOLATY ━ Static stop based on volatility (Fixed, ATR, STDEV).
• Trailing ━ Classic trailing stop following the price.
• Fast Trail ━ Accelerated trailing stop that reacts faster to price movements.
• Volatility ━ Dynamic stop based on volatility indicators.
• Chandelier ━ Stop based on price extremes.
• Activator ━ Dynamic stop based on SAR.
• MA ━ Stop based on moving averages (9 different types).
• SAR ━ Parabolic SAR (Stop and Reverse).
Advanced Take-Profit Options:
• R:R: Risk/Reward ━ sets TP based on SL size.
• T.VOLATY ━ Calculation based on volatility indicators (Fixed, ATR, STDEV).
Testing Modes:
• Stops ━ Cyclical stop-loss testing
• Pivot Point Example ━ Example of using pivot points
• External Example ━ Built-in example how test functions with different parameters
• External Signal ━ Using external signals
⭕️ Usage
━ First Steps:
When opening, select any point on the chart. It will not affect anything until you turn on Manual Start mode (more on this below).
The chart will immediately show the best results of the default Auto mode. You can switch Part's to try to find even better results in the table.
Now you can display any result from the table on the chart by entering its ID in the settings.
Repeat steps 3-4 until you determine which type of Stop Loss you like best. Then set it in the settings instead of Auto mode.
* Example: I flipped through 14 parts before I liked the first result and entered its ID so I could visually evaluate it on the chart.
Then select the stop loss type, choose it in place of Auto mode and repeat steps 3-4 or immediately follow the recommendations of the algorithm.
Now the Genetic Algorithm at the bottom right will prompt you to enter the Parameters you need to search for and select even better results.
Parameters must be entered All at once before they are updated. Enter recommendations strictly in fields with the same names.
Repeat steps 5-6 until there are approximately 10 Part's left or as you like. And after that, easily pour through the remaining Parts and select the best parameters.
━ Example of the finished result.
━ Example of use with Takes
You can also test at the same time along with Take Profit. In this example, I simply enabled Risk/Reward mode and immediately specified in the TP field Maximum RR, Minimum RR and Step. So in this example I can test (3-1) / 0.1 = 20 Takes of different sizes. There are additional tips in the settings.
━
* Soon you will start to understand how the system works and things will become much easier.
* If something doesn't work, just reset the engine settings and start over again.
* Use the tips I have left in the settings and on the Panel.
━ Details:
Sort ━ Sorting results by Score, Profit, Trades, etc..
Filter ━ Filtring results by Score, Profit, Trades, etc..
Trade Type ━ Ability to disable Long\Short but only from statistics.
BackWin ━ Backtest Window Number of Candle the script can test.
Manual Start ━ Enabling it will allow you to call a Stop from a selected point. which you selected when you started the engine.
* If you have a real open position then this mode can help to save good Stop\Take for it.
1 - 9 Сheckboxs ━ Allow you to disable any stop from Auto mode.
Ex Source - Allow you to test Stops/Takes from connected indicators.
Connection guide:
//@version=6
indicator("My script")
rsi = ta.rsi(close, 14)
buy = not na(rsi) and ta.crossover (rsi, 40) // OS = 40
sell = not na(rsi) and ta.crossunder(rsi, 60) // OB = 60
Signal = buy ? +1 : sell ? -1 : 0
plot(Signal, "🔌Connector🔌", display = display.none)
* Format the signal for your indicator in a similar style and then select it in Ex Source.
⭕️ How it Works
Hypothesis of Uniform Distribution of Rare Elements After Mixing.
'This hypothesis states that if an array of N elements contains K valid elements, then after mixing, these valid elements will be approximately uniformly distributed.'
'This means that in a random sample of k elements, the proportion of valid elements should closely match their proportion in the original array, with some random variation.'
'According to the central limit theorem, repeated sampling will result in an average count of valid elements following a normal distribution.'
'This supports the assumption that the valid elements are evenly spread across the array.'
'To test this hypothesis, we can conduct an experiment:'
'Create an array of 1,000,000 elements.'
'Select 1,000 random elements (1%) for validation.'
'Shuffle the array and divide it into groups of 1,000 elements.'
'If the hypothesis holds, each group should contain, on average, 1~ valid element, with minor variations.'
* I'd like to attach more details to My hypothesis but it won't be very relevant here. Since this is a whole separate topic, I will leave the minimum part for understanding the engine.
Practical Application
To apply this hypothesis, I needed a way to generate and thoroughly mix numerous possible combinations. Within Pine, generating over 100,000 combinations presents significant challenges, and storing millions of combinations requires excessive resources.
I developed an efficient mechanism that generates combinations in random order to address these limitations. While conventional methods often produce duplicates or require generating a complete list first, my approach guarantees that the first 10% of possible combinations are both unique and well-distributed. Based on my hypothesis, this sampling is sufficient to determine optimal testing parameters.
Most generators and randomizers fail to accommodate both my hypothesis and Pine's constraints. My solution utilizes a simple Linear Congruential Generator (LCG) for pseudo-randomization, enhanced with prime numbers to increase entropy during generation. I pre-generate the entire parameter range and then apply systematic mixing. This approach, combined with a hybrid combinatorial array-filling technique with linear distribution, delivers excellent generation quality.
My engine can efficiently generate and verify 300 unique combinations per batch. Based on the above, to determine optimal values, only 10-20 Parts need to be manually scrolled through to find the appropriate value or range, eliminating the need for exhaustive testing of millions of parameter combinations.
For the Score statistic I applied all the same, generated a range of Weights, distributed them randomly for each type of statistic to avoid manual distribution.
Score ━ based on Trade, Profit, WinRate, Profit Factor, Drawdown, Sharpe & Sortino & Omega & Calmar Ratio.
⭕️ Notes
For attentive users, a little tricks :)
To save time, switch parts every 3 seconds without waiting for it to load. After 10-20 parts, stop and wait for loading. If the pause is correct, you can switch between the rest of the parts without loading, as they will be cached. This used to work without having to wait for a pause, but now it does slower. This will save a lot of time if you are going to do a deeper backtest.
Sometimes you'll get the error “The scripts take too long to execute.”
For a quick fix you just need to switch the TF or Ticker back and forth and most likely everything will load.
The error appears because of problems on the side of the site because the engine is very heavy. It can also appear if you set too long a period for testing in BackWin or use a heavy indicator for testing.
Manual Start - Allow you to Start you Result from any point. Which in turn can help you choose a good stop-stick for your real position.
* It took me half a year from idea to current realization. This seems to be one of the few ways to build something automatic in backtest format and in this particular Pine environment. There are already better projects in other languages, and they are created much easier and faster because there are no limitations except for personal PC. If you see solutions to improve this system I would be glad if you share the code. At the moment I am tired and will continue him not soon.
Also You can use my previosly big Backtest project with more manual settings(updated soon)
Walk Forward PatternsINTRO
In Euclidean geometry, every mathematical output has a planar projection. 'Walk Forward Patterns' can be considered a practical example of this concept. On the other hand, this indicator might also be viewed as an experiment in 'how playing with Lego as a child contributes to time series analysis' :)
OVERVIEW
This script dynamically generates the necessary optimization and testing ranges for Walk Forward Analysis based on user-defined bar count and length inputs. It performs automatic calculations for each step, offers 8 different window options depending on the inputs, and visualizes the results dynamically. I should also note that most of the window models consist of original patterns I have created.
ADDITIONAL INFO : WHAT IS WALK FORWARD ANALYSIS?
Although it is not the main focus of this indicator, providing a brief definition of Walk Forward Analysis can be helpful in correctly interpreting the results it generates. Walk Forward Analysis (WFA) is a systematic method for optimizing parameters and validating trading strategies. It involves dividing historical data into variable segments, where a strategy is first optimized on an in-sample period and then tested on an out-of-sample period. This process repeats by shifting the windows forward, ensuring that each test evaluates the strategy on unseen data, helping to assess its robustness and adaptability in real market conditions.
ORIGINALITY
There are very few studies on Walk Forward Analysis in TradingView. Even worse, there are no any open-source studies available. Someone has to start somewhere, I suppose. And in my personal opinion, determining the optimization and backtest intervals is the most challenging part of WFA. These intervals serve as a prerequisite for automated parameter optimization. I felt the need to publish this pattern module, which I use in my own WFA models, partly due to this gap on community scripts.
INDICATOR MECHANICS
To use the indicator effectively, you only need to perform four simple tasks:
Specify the total number of bars in your chart in the 'Bar Index' parameter.
Define the optimization (In-Sample Test) length.
Define the testing (Out-Of-Sample Test) length.
Finally, select the window type.
The indicator automatically models everything else (including the number of steps) based on your inputs. And the result; you now have a clear idea of which bars to use for your Walk Forward tests!
A COMMONLY USED WINDOW SELECTION METHOD: ROLLING
A more concrete definition of Walk Forward Analysis, specifically for the widely used Rolling method, can be described as follows:
Parameters that have performed well over a certain period are identified (Optimization: In-Sample).
These parameters are then tested on a shorter, subsequent period (Backtest: Out-of-Sample).
The process is repeated forward in time (At each step, the optimization and backtest periods are shifted by the backtest length).
If the cumulative percentage profit obtained from the backtest results is greater than half of the historical optimization profit, the strategy is considered "successful."
If the strategy is successful, the most recent (untested) optimization values are used for live trading.
OTHER WINDOW OPTIONS
ANCHORED: That's a pattern based on progressively expanding optimization ranges at each step. Backtest ranges move forward in a staircase-like manner.
STATIC: Optimization ranges remain fixed, while backtest ranges are shifted forward.
BLOCKED: Optimization ranges are shifted forward in groups of three blocks. Backtest ranges are also shifted in a staircase manner, even at the cost of creating gaps from the optimization end bars.
TRIANGULAR: Optimization ranges are shifted forward in triangular regions, while backtest ranges move in a staircase pattern.
RATIO: The optimization length increases by 25% of the initial step’s fixed length at each step. In other words, the length grows by 25% of the first step's length incrementally. Backtest ranges always start from the bar where the optimization ends.
FIBONACCI: A variation of the Ratio method, where the optimization shift factor is set to 0.618
RANDOM WALK
Unlike the window models explained above, we can also generate optimization and backtest ranges completely randomly—offering almost unlimited variations! When you select the "Random" option in the "Window" parameter on the indicator interface, random intervals are generated based on various trigonometric calculations. By changing the numerical value in the '🐒' parameter, you can create entirely unique patterns.
WHY THE 🐒 EMOJI?
Two reasons.
First, I think that as humanity, we are a species of tailless primates who become happy when we understand things :). At least evolutionarily. The entire history of civilization is built on the effort to express the universe in a scale we can comprehend. 'Knowledge' is an invention born from this effort, which is why we feel happiness when we 'understand'. Second, I can't think of a better metaphor for randomness than a monkey sitting at a keyboard. See: Monkey Test.
Anyway, I’m rambling :)
NOTES
The indicator generates results for up to 100 steps. As the number of steps increases, the table may extend beyond the screen—don’t forget to zoom out!
FINAL WORDS
I haven’t published a Walk Forward script yet . However, there seem to be examples that can perform parameter optimization in the true sense of the word, producing more realistic results without falling into overfitting in my library. Hopefully, I’ll have the chance to publish one in the coming weeks. Sincerely thanks to Kıvanç Özbilgiç, Robert Pardo, Kevin Davey, Ernest P. Chan for their inspiring publishments.
DISCLAIMER
That's just a script, nothing more. I hope it helps everyone. Do not forget to manage your risk. And trade as safely as possible. Best of luck!
© dg_factor
Machine Learning IndexesMachine Learning Indexes Script Description
The Machine Learning Indexes script is an advanced Pine Script™ indicator that applies machine learning techniques to analyze various market data types. It enables traders to generate adaptive long and short signals using highly customizable settings for signal detection and analysis.
Key Features:
Signal Mode: Allows the user to choose between generating signals for "Longs" (buy opportunities) or "Shorts" (sell opportunities).
Index Type: Supports multiple index types including RSI, CCI, MFI, Stochastic, and Momentum. All indexes are normalized between 0-100 for uniformity.
Data Set Selection: Provides options for analyzing Price, Volume, Volatility, or Momentum-based data sets. This enables traders to adapt the script to their preferred market analysis methodology.
Absolute vs. Directional Changes: Includes a toggle to calculate absolute changes for values or maintain directional sensitivity for trend-based analysis.
Dynamic Index Calculation: Automatically calculates and compares multiple index lengths to determine the best fit for current market conditions, adding precision to signal generation.
Input Parameters:
Signal Settings:
Signal Mode: Selects between "Longs" or "Shorts" to define the signal direction.
Index Type: Chooses the type of market index for calculations. Options include RSI, CCI, MFI, Stochastic, and Momentum.
Data Set Type: Determines the basis of the analysis, such as Price, Volume, Volatility, or Momentum-based data.
Absolute Change: Toggles whether absolute or directional changes are considered for calculations.
Index Settings:
Min Index Length: Sets the base index length used for calculations.
Index Length Variety: Adjusts the increment steps for variations in index length.
Lower/Upper Bands: Define thresholds for the selected index, indicating overbought and oversold levels.
Signal Parameters:
Target Signal Size: Number of bars used to identify pivot points.
Backtest Trade Size: Defines the number of bars over which signal performance is measured.
Sample Size: Number of data points used to calculate signal metrics.
Signal Strength Needed: Sets the minimum confidence required for a signal to be considered valid.
Require Low Variety: Option to prioritize signals with lower variability in results.
How It Works:
The script dynamically calculates multiple index variations and compares their accuracy to detect optimal parameters for generating signals.
Signal validation considers the chosen mode (longs/shorts), data set, index type, and signal parameters.
Adaptive moving averages (ADMA) and Band Signals (BS) are plotted to visualize the interaction between market trends and thresholds.
Long and short signals are displayed with clear up (L) and down (S) labels for easy interpretation.
Performance Metrics:
Success Rate: Percentage of valid signals that led to profitable outcomes.
Profit Factor: Ratio of gains from successful trades to losses from unsuccessful trades.
Disclaimer:
This indicator is for informational purposes only and does not guarantee future performance. It is designed to support traders in making informed decisions but should be used alongside other analysis methods and risk management strategies.
Machine Learning RSI Bands V3The Machine Learning RSI Bands V3 is a cutting-edge trading tool designed to provide actionable insights by combining the strength of machine learning with a traditional RSI framework. It adapts dynamically to changing market conditions, offering traders a robust, data-driven approach to identifying opportunities.
Let’s break down its functionality and the logic behind each input to give you a clear understanding of how it works and how you can use it effectively.
RSI Parameters RSI Source (rsisrc): Choose the data source for RSI calculation, such as the closing price. This allows you to focus on the specific price data that aligns with your trading strategy. RSI Length (rsilen): Set the number of periods used for RSI calculation. A shorter length makes the RSI more reactive to price changes, while a longer length smooths out volatility. These inputs allow you to customize the foundational RSI calculations, ensuring the indicator fits your style of trading.
Band Limits Lower Band Limit (lb): Defines the RSI value below which the market is considered oversold. Upper Band Limit (ub): Defines the RSI value above which the market is considered overbought. These settings give you control over the thresholds for market conditions. By adjusting the band limits, you can tailor the indicator to be more or less sensitive to market movements.
Sampling and Reaction Settings Target Reaction Size (l): Determines the number of bars used to define pivot points. Smaller values react to shorter-term price movements, while larger values focus on broader trends. Backtesting Reaction Size (btw): Sets the number of bars used to validate signal performance. This ensures signals are only considered valid if they perform consistently within the specified range. Data Format (version): Choose between Absolute (ignoring direction) and Directional (incorporating directional price changes). Sampling Method (sm): Select how the data is analyzed—options include Price Movement, Volume Movement, RSI Movement, Trend Movement, or a Hybrid approach. These settings empower you to refine how the indicator processes and interprets data, whether focusing on short-term price shifts or broader market trends.
Signal Settings Signal Confidence Method (cm): Choose between: Threshold: Signals must meet a confidence limit before being generated. Voting: Requires a majority of 5 signal components to confirm a trade. Confidence Limit (cl): Defines the confidence threshold for generating signals when using the Threshold method. Votes Needed (vn): Sets the number of votes required to confirm a trade when using the Voting method. Use All Outputs (fm): If enabled, signals are generated without filtering, providing an unfiltered view of potential opportunities. This section offers a balance between precision and flexibility, enabling you to control the rigor applied to signal generation.
How It Works
The script uses machine learning models to adaptively calculate dynamic RSI bands. These bands adjust based on market conditions, providing a more responsive and nuanced interpretation of overbought and oversold levels.
Dynamic Bands: The lower and upper RSI bands are recalibrated using machine learning to reflect current market conditions. Signals: Long and short signals are generated when RSI crosses these bands, with additional filters applied based on your chosen confidence method and sampling settings. Transparency: Real-time success rates and profit factors are displayed on the chart, giving you clear feedback on the indicator's performance.
Why Use Machine Learning RSI Bands V3?
This indicator is built for traders who want more than static thresholds and generic signals. It offers:
Adaptability: Machine learning dynamically adjusts the indicator to market conditions. Customizability: Each input serves a specific purpose, giving you full control over its behavior. Accountability: With built-in performance metrics, you always know how the tool is performing.
This is a tool designed for those who value precision and adaptability in trading.
Strategy Development Environment [BerlinCode42]Happy Trade,
Intro
What is New
Algebraic/Boolean Equation
Instruction Set for The Algebraic/Boolean Equation
Example
Usage
Settings Menu
Declaration for Tradingview House Rules on Script Publishing
Disclaimer
Conclusion
1. Intro
This is a rich equipped fork of my previous "Backtest any Indicator v5". And serves as the fitting backtester and trade strategy creation tool for my upcoming ANN Indicators (artificial neural network).
As the previous version this script has no trade signal generating code. The trade signals comes in by the five user settable input slots where the user plug-in external indicators. The final trade siganls go long etc are defined by a algebraic/boolean equation typed in as text in 4 terminals as shown in Image 0 . With this algebraic/boolean equations input the user can setup any trade logic as complex and fast and easy as never seen before here on TradingView.
Image 0
2. What is new
Input algebraic/boolean equations in text-form for go long, go short, exit long & exit short
Five input slots for external indicator signals
Equation tester
User settable signal delay for enter and exit trades
User selectable alternating trades filter
User settable exit long = enter short
Intrabar or trade only on bar closing
Time filter with duration input
User settable UTC Adjustment
Long and short trades possible
Two Take Profits with quantity setting
Trailing Stop
Webhook connection
3. Algebraic/Boolean Equation
This is where the magic happens. Unlike other backtesters that rely on drop-down menus to define trade signal equations—thus limiting the number of input signals and the complexity of logic—this script uses a string interpreter to solve equations. With this, you can develop your trade logic equations and add signals or conditions simply by writing them down in algebraic/boolean form.
The instruction set for this interpreter includes not only external input signals but also several internal values. These include BarTime, BarIndex, Open, High, Low, Close, True Range, Minimal Tick, Volume, and a signal that indicates whether there is an open trade (long, short, or none). You can also reference the values of past bars for all these inputs and, of course, use constant values in your equations. There is a sad limitation: Only one past bar value per equation is practicable. If you use more, errors can occur. It seems to be caused by the pipe line architecture of the parallel computing. In any attempt to solve this issue an older function call result was hand over.
The implemented functions cover a wide range of algebraic and boolean operations. A boolean "true" is represented by all values greater than zero, while "false" is represented by zero or values less than zero.
4. Instruction set for the Algebraic/Boolean Equation
There are functions that accept either two input values or one input value. The general form is (XandY) or (notX), where X and Y can be any input slot, predefined value, constant, or another sub-equation. Functions are always written in lowercase, while input slots and predefined values use uppercase letters.
Each sub-equation must be enclosed in parentheses, e.g., (A+B). Without proper use of parentheses, the interpreter cannot determine which function to calculate first. Negative constants must be expressed by subtracting from zero (e.g., (0-3.14)), so careful attention is required.
Here are some examples that demonstrate both incorrect and correct notations:
incorrect correct
(A+B*C) (A+(B*C))
(A+B+D+E) (A+(B+(D+E)))
(-20>A) ((0-20)>A)
(A*-B) (A*(0-B))
(AnotB) (Aand(notB))
ABS(a-b) (abs(A-B))
The correct usage ensures the interpreter calculates in the intended order.
And here comes the complete Instruction Set:
Addition: (A+B)
Subtraction: (A-B)
Multiplication: (A*B)
Division: (A/B)
Absolut value: (absA)
Power of: (A^B)
Natural Logarithm: (logA)
Lowest value of Low of last x bars: (lotx)
Highest value of High of last x bars: (hotx)
Modulo, Remainder of a Division: (A%B)
Round: (rndA)
round to ceil: (ceiA)
Round to floor: (floA)
Round to next minimal tick: (mitA)
EMA of A of last 3 bars: (e03A)
EMA of A of last 7 bars: (e07A)
EMA of A of last 10 bars: (e10A)
EMA of A of last 20 bars: (e20A)
EMA of A of last 50 bars: (e50A)
Smaller then: (AB)
Equal to: (A==B)
Unequal to: (A!=B)
And: (AandB)
Or: (AorB)
Exclusive Or: (AxorB)
Not: (notA)
Past bar value: (A ) ,whereby x can be 1,2,3,...,barIndex-1
Bar time: (T)
Bar index: (I)
Opening Price of Bar: (O)
Highest Price of Bar: (H)
Lowest Price of Bar: (L)
Closing Price of Bar: (C)
Min tick value for the current symbol: (K)
Trade Volume: (V)
True Range: (R)
Is Money invested: (M) ,Long position: M=1,
Short position: M=-1,
No position: M=0
Reminder: if you wanna replace A or B above don't forget the parentheses. So if you have (logA) and wanna replace A with D+F so the correct replacement would be (log(D+F)).
In the following there are some examples of popular bar patterns and useful filters:
Doji: ((abs(O-C))<(10*K))and((H-L)>(100*K))
green Hammer: (((H-C)<(5000*K))and(((O-L)/2)>(abs(O-C)))
Up trend: (C>(e10H))
Down trend: (C<(e10L))
cool down 7 bars: (( any buy condition )and((e07(absM))==0))
possible Pivot High: (H==(hot30))and((CC))
possible Pivot Low: (L==(lot30))and((C>H )or(O0)), goShort ((A>0)and((A )<0)), Enter Signal delay=0, Exit Signal delay=0, Alternate Trades=true
take profit 1 =0.4% (30%), take profit 2 =0.7%, trailing stop loss=0.2%, intrabar, start capital=1000$, qty=5%, fee=0.05%, no Session Filter
Image 1
6. Usage
First you need to attach some signals from external Indicators. In the example above we use the Stochastic RSI indicator from TradingView. Load the Stochastic RSI indicator to the chart. Then you go to the settings menu of this script, choose in the drop-down menu of Input A the signal .
In case you wanna use a signal which is not in the drop-down menu of Input A do the following:
1) You need to know the name of the boolean (or integer) variable of your indicator which hold the desired signal. Lets say that this boolean variable is called BUY. If this BUY variable is not plotted on the chart you simply add the following code line at the end of your pine script.
For boolean (true/false) BUY variables use this:
plot(BUY ? 1:0,'Your buy condition hold in that variable BUY',display = display.data_window)
And in case your script's BUY variable is an integer or float then use instate the following code line:
plot(BUY ,'Your buy condition hold in that variable BUY',display = display.data_window)
2) Probably the name of this BUY variable in your indicator is not BUY. Simply replace in the code line above the BUY with the name of your script's trade condition variable.
3) Do the same procedure for your SELL variable. Then save your changed Indicator script.
4) Then add the changed Indicator script from step before and this backtester script to the chart ...
5) and go to the settings of it. Choose under "Settings -> Input A " your Indicator. So in the example above choose .
The form is usually: ' : BUY'. Then you see something like Image 1
6) Decide about each trade logic for Go Long and Go Short . In this Example we use for GoLong if "Stoch RSI: K" is smaller then 20. The "Stoch RSI: K" we already loaded it in input A. So we set under Go Long (A<20) and set Enter Signal Delay to 0.
Now we setup Go Short if "Stoch RSI: K" is bigger then 80. So we set under Go Short A>80. Enter Signal Delay is already set.
7) For the Exit conditions you can choose (trailing) Stop loss or Take Profit or Exit by Indicator Signal. What ever comes first triggers the exit. If you like to use an EMA Indicator for the Exit by Indicator just load it in a free input slot B, D, E, F or use the inbuild EMA. For this example we use the inbuild EMA of the last 7 values of close. It is called by the following equation: (e07C). So to exit a long trade when the close price crossunder this EMA you have to type in Exit Long ((e07C)>C). For exit a short trade enter in Exit Short ((e07C)
Optimal MA FinderIntroduction to the "Optimal MA Finder" Indicator
The "Optimal MA Finder" is a powerful and versatile tool designed to help traders optimize their moving average strategies. This script combines flexibility, precision, and automation to identify the most effective moving average (MA) length for your trading approach. Whether you're aiming to improve your long-only strategy or implement a buy-and-sell methodology, the "Optimal MA Finder" is your go-to solution for enhanced decision-making.
What Does It Do?
The script evaluates a wide range of moving average lengths, from 10 to 500, to determine which one produces the best results based on historical data. By calculating critical metrics such as the total number of trades and the profit factor for each MA length, it identifies the one that maximizes profitability. It supports both simple moving averages (SMA) and exponential moving averages (EMA), allowing you to tailor the analysis to your preferred method.
The logic works by backtesting each MA length against the price data and assessing the performance under two strategies:
Buy & Sell: Includes both long and short trades.
Long Only: Focuses solely on long positions for more conservative strategies.
Once the optimal MA length is identified, the script overlays it on the chart, highlighting periods when the price crosses over or under the optimal MA, helping traders identify potential entry and exit points.
Why Is It Useful?
This indicator stands out for its ability to automate a task that is often labor-intensive and subjective: finding the best MA length. By providing a clear, data-driven answer, it saves traders countless hours of manual testing while significantly enhancing the accuracy of their strategies. For example, instead of guessing whether a 50-period EMA is more effective than a 200-period SMA, the "Optimal MA Finder" will pinpoint the exact length and type of MA that has historically yielded the best results for your chosen strategy.
Key Benefits:
Precision: Identifies the MA length with the highest profit factor for maximum profitability.
Automation: Conducts thorough backtesting without manual effort.
Flexibility: Adapts to your preferred MA type (SMA or EMA) and trading strategy (Buy & Sell or Long Only).
Real-Time Feedback: Provides actionable insights by plotting the optimal MA directly on your chart and highlighting relevant trading periods.
Example of Use: Imagine you're trading a volatile stock and want to optimize your long-only strategy. By applying the "Optimal MA Finder," you discover that a 120-period EMA results in the highest profit factor. The indicator plots this EMA on your chart, showing you when to consider entering or exiting positions based on price movements relative to the EMA.
In short, the "Optimal MA Finder" empowers traders by delivering data-driven insights and improving the effectiveness of trading strategies. Its clear logic, combined with robust automation, makes it an invaluable tool for both novice and experienced traders seeking consistent results.
Fourier For Loop [BackQuant]Fourier For Loop
PLEASE Read the following, as understanding an indicator's functionality is essential before integrating it into a trading strategy. Knowing the core logic behind each tool allows for a sound and strategic approach to trading.
Introducing BackQuant's Fourier For Loop (FFL) — a cutting-edge trading indicator that combines Fourier transforms with a for-loop scoring mechanism. This innovative approach leverages mathematical precision to extract trends and reversals in the market, helping traders make informed decisions. Let's break down the components, rationale, and potential use-cases of this indicator.
Understanding Fourier Transform in Trading
The Fourier Transform decomposes price movements into their frequency components, allowing for a detailed analysis of cyclical behavior in the market. By transforming the price data from the time domain into the frequency domain, this indicator identifies underlying patterns that traditional methods may overlook.
In this script, Fourier transforms are applied to the specified calculation source (defaulted to HLC3). The transformation yields magnitude values that can be used to score market movements over a defined range. This scoring process helps uncover long and short signals based on relative strength and trend direction.
Why Use Fourier Transforms?
Fourier Transforms excel in identifying recurring cycles and smoothing noisy data, making them ideal for fast-paced markets where price movements may be erratic. They also provide a unique perspective on market volatility, offering traders additional insights beyond standard indicators.
Calculation Logic: For-Loop Scoring Mechanism
The For Loop Scoring mechanism compares the magnitude of each transformed point in the series, summing the results to generate a score. This score forms the backbone of the signal generation system.
Long Signals: Generated when the score surpasses the defined long threshold (default set at 40). This indicates a strong bullish trend, signaling potential upward momentum.
Short Signals: Triggered when the score crosses under the short threshold (default set at -10). This suggests a bearish trend or potential downside risk.'
Thresholds & Customization
The indicator offers customizable settings to fit various trading styles:
Calculation Periods: Control how many periods the Fourier transform covers.
Long/Short Thresholds: Adjust the sensitivity of the signals to match different timeframes or risk preferences.
Visualization Options: Traders can visualize the thresholds, change the color of bars based on trend direction, and even color the background for enhanced clarity.
Trading Applications
This Fourier For Loop indicator is designed to be versatile across various market conditions and timeframes. Some of its key use-cases include:
Cycle Detection: Fourier transforms help identify recurring patterns or cycles, giving traders a head-start on market direction.
Trend Following: The for-loop scoring system helps confirm the strength of trends, allowing traders to enter positions with greater confidence.
Risk Management: With clearly defined long and short signals, traders can manage their positions effectively, minimizing exposure to false signals.
Final Note
Incorporating this indicator into your trading strategy adds a layer of mathematical precision to traditional technical analysis. Be sure to adjust the calculation start/end points and thresholds to match your specific trading style, and remember that no indicator guarantees success. Always backtest thoroughly and integrate the Fourier For Loop into a balanced trading system.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future .
INDEX:BTCUSD
INDEX:ETHUSD
BINANCE:SOLUSD
Interest Rate Trading (Manually Added Rate Decisions) [TANHEF]Interest Rate Trading: How Interest Rates Can Guide Your Next Move.
How were interest rate decisions added?
All interest rate decision dates were manually retrieved from the 'Record of Policy Actions' and 'Minutes of Actions' on the Federal Reserve's website due to inconsistent dates from other sources. These were manually added as Pine Script currently only identifies rate changes, not pauses.
█ Simple Explanation:
This script is designed for analyzing and backtesting trading strategies based on U.S. interest rate decisions which occur during Federal Open Market Committee (FOMC) meetings, to make trading decisions. No trading strategy is perfect, and it's important to understand that expectations won't always play out. The script leverages historical interest rate changes, including increases, decreases, and pauses, across multiple economic time periods from 1971 to the present. The tool integrates two key data sources for interest rates—USINTR and FEDFUNDS—to support decision-making around rate-based trades. The focus is on identifying opportunities and tracking trades driven by interest rate movements.
█ Interest Rate Decision Sources:
As noted above, each decision date has been manually added from the 'Record of Policy Actions' and 'Minutes of Actions' documents on the Federal Reserve's website. This includes +50 years of more than 600 rate decisions.
█ Interest Rate Data Sources:
USINTR: Reflects broader U.S. interest rate trends, including Treasury yields and various benchmarks. This is the preferred option as it corresponds well to the rate decision dates.
FEDFUNDS: Tracks the Federal Funds Rate, which is a more specific rate targeted by the Federal Reserve. This does not change on the exact same days as the rate decisions that occur at FOMC meetings.
█ Trade Criteria:
A variety of trading conditions are predefined to suit different trading strategies. These conditions include:
Increase/Decrease: Standard rate increases or decreases.
Double/Triple Increase/Decrease: A series of consecutive changes.
Aggressive Increase/Decrease: Rate changes that exceed recent movements.
Pause: Identification of no changes (pauses) between rate decisions, including double or triple pauses.
Complex Patterns: Combinations of pauses, increases, or decreases, such as "Pause after Increase" or "Pause or Increase."
█ Trade Execution and Exit:
The script allows automated trade execution based on selected criteria:
Auto-Entry: Option to enter trades automatically at the first valid period.
Max Trade Duration: Optional exit of trades after a specified number of bars (candles).
Pause Days: Minimum duration (in days) to validate rate pauses as entry conditions. This is especially useful for earlier periods (prior to the 2000s), where rate decisions often seemed random compared to the consistency we see today.
█ Visualization:
Several visual elements enhance the backtesting experience:
Time Period Highlighting: Economic time periods are visually segmented on the chart, each with a unique color. These periods include historical phases such as "Stagflation (1971-1982)" and "Post-Pandemic Recovery (2021-Present)".
Trade and Holding Results: Displays the profit and loss of trades and holding results directly on the chart.
Interest Rate Plot: Plots the interest rate movements on the chart, allowing for real-time tracking of rate changes.
Trade Status: Highlights active long or short positions on the chart.
█ Statistics and Criteria Display:
Stats Table: Summarizes trade results, including wins, losses, and draw percentages for both long and short trades.
Criteria Table: Lists the selected entry and exit criteria for both long and short positions.
█ Economic Time Periods:
The script organizes interest rate decisions into well-defined economic periods, allowing traders to backtest strategies specific to historical contexts like:
(1971-1982) Stagflation
(1983-1990) Reaganomics and Deregulation
(1991-1994) Early 1990s (Recession and Recovery)
(1995-2001) Dot-Com Bubble
(2001-2006) Housing Boom
(2007-2009) Global Financial Crisis
(2009-2015) Great Recession Recovery
(2015-2019) Normalization Period
(2019-2021) COVID-19 Pandemic
(2021-Present) Post-Pandemic Recovery
█ User-Configurable Inputs:
Rate Source Selection: Choose between USINTR or FEDFUNDS as the primary interest rate source.
Trade Criteria Customization: Users can select the criteria for long and short trades, specifying when to enter or exit based on changes in the interest rate.
Time Period: Select the time period that you want to isolate testing a strategy with.
Auto-Entry and Pause Settings: Options to automatically enter trades and specify the number of days to confirm a rate pause.
Max Trade Duration: Limits how long trades can remain open, defined by the number of bars.
█ Trade Logic:
The script manages entries and exits for both long and short trades. It calculates the profit or loss percentage based on the entry and exit prices. The script tracks ongoing trades, dynamically updating the profit or loss as price changes.
█ Examples:
One of the most popular opinions is that when rate starts begin you should sell, then buy back in when rate cuts stop dropping. However, this can be easily proven to be a difficult task. Predicting the end of a rate cut is very difficult to do with the the exception that assumes rates will not fall below 0.25%.
2001-2009
Trade Result: +29.85%
Holding Result: -27.74%
1971-2024
Trade Result: +533%
Holding Result: +5901%
█ Backtest and Real-Time Use:
This backtester is useful for historical analysis and real-time trading. By setting up various entry and exit rules tied to interest rate movements, traders can test and refine strategies based on real historical data and rate decision trends.
This powerful tool allows traders to customize strategies, backtest them through different economic periods, and get visual feedback on their trading performance, helping to make more informed decisions based on interest rate dynamics. The main goal of this indicator is to challenge the belief that future events must mirror the 2001 and 2007 rate cuts. If everyone expects something to happen, it usually doesn’t.
Descriptive Backtesting Framework (DBF)As the name suggests, this is a backtesting framework made to offer full backtesting functionality to any custom indicator in a visually descriptive way.
Any trade taken will be very clear to visualize on the chart and the equity line will be updated live allowing us to use the REPLAY feature to view the strategy performing in real time.
Stops and Targets will also get draw on the chart with labels and tooltips and there will be a table on the top right corner displaying lots of descriptive metrics to measure your strategy's performance.
IF YOU DECIDE TO USE THIS FRAMEWORK, PLEASE READ **EVERYTHING** BELOW
HOW TO USE IT
Step 1 - Insert Your Strategy Indicators:
Inside this framework's code, right at the beginning, you will find a dedicated section where you can manually insert any set of indicators you desire.
Just replace the example code in there with your own strategy indicators.
Step 2 - Specify The Conditions To Take Trades:
After that, there will be another section where you need to specify your strategy's conditions to enter and exit trades.
When met, those conditions will fire the trading signals to the trading engine inside the framework.
If you don't wish to use some of the available signals, please just assign false to the signal.
DO NOT DELETE THE SIGNAL VARIABLES
Step 3 - Specify Entry/Exit Prices, Stops & Targets:
Finally you'll reach the last section where you'll be able to specify entry/exit prices as well as add stops and targets.
On most cases, it's easier and more reliable to just use the close price to enter and exit trades.
If you decide to use the open price instead, please remember to change step 2 so that trades are taken on the open price of the next candle and not the present one to avoid the look ahead bias.
Stops and targets can be set in any way you want.
Also, please don't forget to update the spread. If your broker uses commissions instead of spreads or a combination of both, you'll need to manually incorporate those costs in this step.
And that's it! That's all you have to do.
Below this section you'll now see a sign warning you about not making any changes to the code below.
From here on, the framework will take care of executing the trades and calculating the performance metrics for you and making sure all calculations are consistent.
VISUAL FEATURES:
Price candles get painted according to the current trade.
They will be blue during long trades, purple on shorts and white when no trade is on.
When the framework receives the signals to start or close a trade, it will display those signals as shapes on the upper and lower limits of the chart:
DIAMOND: represents a signal to open a trade, the trade direction is represented by the shape's color;
CROSS: means a stop loss was triggered;
FLAG: means a take profit was triggered;
CIRCLE: means an exit trade signal was fired;
Hovering the mouse over the trade labels will reveal:
Asset Quantity;
Entry/Exit Prices;
Stops & Targets;
Trade Profit;
Profit As Percentage Of Trade Volume;
**Please note that there's a limit as to how many labels can be drawn on the chart at once.**
If you which to see labels from the beginning of the chart, you'll probably need to use the replay feature.
PERFORMANCE TABLE:
The performance table displays several performance metrics to evaluate the strategy.
All the performance metrics here are calculated by the framework. It does not uses the oficial pine script strategy tester.
All metrics are calculated in real time. If using the replay feature, they will be updated up to the last played bar.
Here are the available metrics and their definition:
INITIAL EQUITY: the initial amount of money we had when the strategy started, obviously...;
CURRENT EQUITY: the amount of money we have now. If using the replay feature, it will show the current equity up to the last bar played. The number on it's right side shows how many times our equity has been multiplied from it's initial value;
TRADE COUNT: how many trades were taken;
WIN COUNT: how many of those trades were wins. The percentage at the right side is the strategy WIN RATE;
AVG GAIN PER TRADE: the average percentage gain per trade. Very small values can indicate a fragile strategy that can behave in unexpected ways under high volatility conditions;
AVG GAIN PER WIN: the average percentage gain of trades that were profitable;
AVG GAIN PER LOSS: the average percentage loss on trades that were not profitable;
EQUITY MAX DD: the maximum drawdown experienced by our equity during the entire strategy backtest;
TRADE MAX DD: the maximum drawdown experienced by our equity after one single trade;
AVG MONTHLY RETURN: the compound monthly return that our strategy was able to create during the backtested period;
AVG ANNUAL RETURN: this is the strategy's CAGR (compound annual growth rate);
ELAPSED MONTHS: number of months since the backtest started;
RISK/REWARD RATIO: shows how profitable the strategy is for the amount of risk it takes. Values above 1 are very good (and rare). This is calculated as follows: (Avg Annual Return) / mod(Equity Max DD). Where mod() is the same as math.abs();
AVAILABLE SETTINGS:
SPREAD: specify your broker's asset spread
ENABLE LONGS / SHORTS: you can keep both enable or chose to take trades in only one direction
MINIMUM BARS CLOSED: to avoid trading before indicators such as a slow moving average have had time to populate, you can manually set the number of bars to wait before allowing trades.
INITIAL EQUITY: you can specify your starting equity
EXPOSURE: is the percentage of equity you wish to risk per trade. When using stops, the strategy will automatically calculate your position size to match the exposure with the stop distance. If you are not using stops then your trade volume will be the percentage of equity specified here. 100 means you'll enter trades with all your equity and 200 means you'll use a 2x leverage.
MAX LEVERAGE ALLOWED: In some situations a short stop distance can create huge levels of leverage. If you want to limit leverage to a maximum value you can set it here.
SEVERAL PLOTTING OPTIONS: You'll be able to specify which of the framework visuals you wish to see drawn on the chart.
FRAMEWORK **LIMITATIONS**:
When stop and target are both triggered in the same candle, this framework isn't able to enter faster timeframes to check which one was triggered first, so it will take the pessimistic assumption and annul the take profit signal;
This framework doesn't support pyramiding;
This framework doesn't support both long and short positions to be active at the same time. So for example, if a short signal is received while a long trade is open, the framework will close the long trade and then open a short trade;
FINAL CONSIDERATIONS:
I've been using this framework for a good time and I find it's better to use and easier to analyze a strategy's performance then relying on the oficial pine script strategy tester. However, I CANNOT GUARANTEE IT TO BE BUG FREE.
**PLEASE PERFORM A MANUAL BACKTEST BEFORE USING ANY STRATEGY WITH REAL MONEY**
Filtered MACD with Backtest [UAlgo]The "Filtered MACD with Backtest " indicator is an advanced trading tool designed for the TradingView platform. It combines the Moving Average Convergence Divergence (MACD) with additional filters such as Moving Average (MA) and Average Directional Index (ADX) to enhance trading signals. This indicator aims to provide more reliable entry and exit points by filtering out noise and confirming trends. Additionally, it includes a comprehensive backtesting module to simulate trading strategies and assess their performance based on historical data. The visual backtest module allows traders to see potential trades directly on the chart, making it easier to evaluate the effectiveness of the strategy.
🔶 Customizable Parameters :
Price Source Selection: Users can choose their preferred price source for calculations, providing flexibility in analysis.
Filter Parameters:
MA Filter: Option to use a Moving Average filter with types such as EMA, SMA, WMA, RMA, and VWMA, and a customizable length.
ADX Filter: Option to use an ADX filter with adjustable length and threshold to determine trend strength.
MACD Parameters: Customizable fast length, slow length, and signal smoothing for the MACD indicator.
Backtest Module:
Entry Type: Supports "Buy and Sell", "Buy", and "Sell" strategies.
Stop Loss Types: Choose from ATR-based, fixed point, or X bar high/low stop loss methods.
Reward to Risk Ratio: Set the desired take profit level relative to the stop loss.
Backtest Visuals: Display entry, stop loss, and take profit levels directly on the chart with
colored backgrounds.
Alerts: Configurable alerts for buy and sell signals.
🔶 Filtered MACD : Understanding How Filters Work with ADX and MA
ADX Filter:
The Average Directional Index (ADX) measures the strength of a trend. The script calculates ADX using the user-defined length and applies a threshold value.
Trading Signals with ADX Filter:
Buy Signal: A regular MACD buy signal (crossover of MACD line above the signal line) is only considered valid if the ADX is above the set threshold. This suggests a stronger uptrend to potentially capitalize on.
Sell Signal: Conversely, a regular MACD sell signal (crossunder of MACD line below the signal line) is only considered valid if the ADX is above the threshold, indicating a stronger downtrend for potential shorting opportunities.
Benefits: The ADX filter helps avoid whipsaws or false signals that might occur during choppy market conditions with weak trends.
MA Filter:
You can choose from various Moving Average (MA) types (EMA, SMA, WMA, RMA, VWMA) for the filter. The script calculates the chosen MA based on the user-defined length.
Trading Signals with MA Filter:
Buy Signal: A regular MACD buy signal is only considered valid if the closing price is above the MA value. This suggests a potential uptrend confirmed by the price action staying above the moving average.
Sell Signal: Conversely, a regular MACD sell signal is only considered valid if the closing price is below the MA value. This suggests a potential downtrend confirmed by the price action staying below the moving average.
Benefits: The MA filter helps identify potential trend continuation opportunities by ensuring the price aligns with the chosen moving average direction.
Combining Filters:
You can choose to use either the ADX filter, the MA filter, or both depending on your strategy preference. Using both filters adds an extra layer of confirmation for your signals.
🔶 Backtesting Module
The backtesting module in this script allows you to visually assess how the filtered MACD strategy would have performed on historical data. Here's a deeper dive into its features:
Backtesting Type: You can choose to backtest for buy signals only, sell signals only, or both. This allows you to analyze the strategy's effectiveness in different market conditions.
Stop-Loss Types: You can define how stop-loss orders are placed:
ATR (Average True Range): This uses a volatility measure (ATR) multiplied by a user-defined factor to set the stop-loss level.
Fixed Point: This allows you to specify a fixed dollar amount or percentage value as the stop-loss.
X bar High/Low: This sets the stop-loss at a certain number of bars (defined by the user) above/below the bar's high (for long positions) or low (for short positions).
Reward-to-Risk Ratio: Define the desired ratio between your potential profit and potential loss on each trade. The backtesting module will calculate take-profit levels based on this ratio and the stop-loss placement.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
MetaFOX DCA (ASAP-RSI-BB%B-TV)Welcome To ' MetaFOX DCA (ASAP-RSI-BB%B-TV) ' Indicator.
This is not a Buy/Sell signals indicator, this is an indicator to help you create your own strategy using a variety of technical analyzing options within the indicator settings with the ability to do DCA (Dollar Cost Average) with up to 100 safety orders.
It is important when backtesting to get a real results, but this is impossible, especially when the time frame is large, because we don't know the real price action inside each candle, as we don't know whether the price reached the high or low first. but what I can say is that I present to you a backtest results in the worst possible case, meaning that if the same chart is repeated during the next period and you traded for the same period and with the same settings, the real results will be either identical to the results in the indicator or better (not worst). There will be no other factors except the slippage in the price when executing orders in the real trading, So I created a feature for that to increase the accuracy rate of the results. For more information, read this description.
Below I will explain all the properties and settings of the indicator:
A) 'Buy Strategies' Section: Your choices of strategies to Start a new trade: (All the conditions works as (And) not (OR), You have to choose one at least and you can choose more than one).
- 'ASAP (New Candle)': Start a trade as soon as possible at the opening of a new candle after exiting the previous trade.
- 'RSI': Using RSI as a technical analysis condition to start a trade.
- 'BB %B': Using BB %B as a technical analysis condition to start a trade.
- 'TV': Using tradingview crypto screener as a technical analysis condition to start a trade.
B) 'Exit Strategies' Section: Your choices of strategies to Exit the trades: (All the conditions works as (And) not (OR), You can choose more than one, But if you don't want to use any of them you have to activate the 'Use TP:' at least).
- 'ASAP (New Candle)': Exit a trade as soon as possible at the opening of a new candle after opening the previous trade.
- 'RSI': Using RSI as a technical analysis condition to exit a trade.
- 'BB %B': Using BB %B as a technical analysis condition to exit a trade.
- 'TV': Using tradingview crypto screener as a technical analysis condition to exit a trade.
C) 'Main Settings' Section:
- 'Trading Fees %': The Exchange trading fees in percentage (trading Commission).
- 'Entry Price Slippage %': Since real trading differs from backtest calculations, while in backtest results are calculated based on the open price of the candle, but in real trading there is a slippage from the open price of the candle resulting from the supply and demand in the real time trading, so this feature is to determine the slippage Which you think it is appropriate, then the entry prices of the trades will calculated higher than the open price of the start candle by the percentage of slippage that you set. If you don't want to calculate any slippage, just set it to zero, but I don't recommend that if you want the most realistic results.
Note: If (open price + slippage) is higher than the high of the candle then don't worry, I've kept this in consideration.
- 'Use SL': Activate to use stop loss percentage.
- 'SL %': Stop loss percentage.
- 'SL settings options box':
'SL From Base Price': Calculate the SL from the base order price (from the trade first entry price).
'SL From Avg. Price': Calculate the SL from the average price in case you use safety orders.
'SL From Last SO.': Calculate the SL from the last (lowest) safety order deviation.
ex: If you choose 'SL From Avg. Price' and SL% is 5, then the SL will be lower than the average price by 5% (in this case your SL will be dynamic until the price reaches all the safety orders unlike the other two SL options).
Note: This indicator programmed to be compatible with '3COMMAS' platform, but I added more options that came to my mind.
'3COMMAS' DCA bots uses 'SL From Base Price'.
- 'Use TP': Activate to use take profit percentage.
- 'TP %': Take profit percentage.
- 'Pure TP,SL': This feature was created due to the differences in the method of calculations between API tools trading platforms:
If the feature is not activated and (for example) the TP is 5%, this means that the price must move upward by only 5%, but you will not achieve a net profit of 5% due to the trading fees. but If the feature is activated, this means that you will get a net profit of 5%, and this means that the price must move upward by (5% for the TP + the equivalent of trading fees). The same idea is applied to the SL.
Note: '3COMMAS' DCA bots uses activated 'Pure TP,SL'.
- 'SO. Price Deviation %': Determines the decline percentage for the first safety order from the trade start entry price.
- 'SO. Step Scale': Determines the deviation multiplier for the safety orders.
Note: I'm using the same method of calculations for SO. (safety orders) levels that '3COMMAS' platform is using. If there is any difference between the '3COMMAS' calculations and the platform that you are using, please let me know.
'3COMMAS' DCA bots minimum 'SO. Price Deviation %' is (0.21)
'3COMMAS' DCA bots minimum 'SO. Step Scale' is (0.1)
- 'SO. Volume Scale': Determines the base order size multiplier for the safety orders sizes.
ex: If you used 10$ to buy at the trade start (base order size) and your 'SO. Volume Scale' is 2, then the 1st SO. size will be 20, the 2nd SO. size will be 40 and so on.
- 'SO. Count': Determines the number of safety orders that you want. If you want to trade without safety orders set it to zero.
'3COMMAS' DCA bots minimum 'SO. Volume Scale' is (0.1)
- 'Exchange Min. Size': The exchange minimum size per trade, It's important to prevent you from setting the base order Size less than the exchange limit. It's also important for the backtest results calculations.
ex: If you setup your strategy settings and it led to a loss to the point that you can't trade any more due to insufficient funds and your base order size share from the strategy becomes less than the exchange minimum trade size, then the indicator will show you a warning and will show you the point where you stopped the trading (It works in compatible with the initial capital). I recommend to set it a little bit higher than the real exchange minimum trade size especially if you trade without safety orders to not stuck in the trade if you hit the stop loss
- 'BO. Size': The base order size (funds you use at the trade entry).
- 'Initial Capital': The total funds allocated for trading using your strategy settings, It can be more than what is required in the strategy to cover the deficit in case of a loss, but it should not exceed the funds that you actually have for trading using this strategy settings, It's important to prevent you from setting up a strategy which requires funds more than what you have. It's also has other important benefits (refer to 'Exchange Min. Size' for more information).
- 'Accumulative Results': This feature is also called re-invest profits & risk reduction. If it's not activated then you will use the same funds size in each new trade whether you are in profit or loss till the (initial capitals + net results) turns insufficient. If it's activated then you will reuse your profits and losses in each new trade.
ex: The feature is active and your first trade ended with a net profit of 1000$, the next trade will add the 1000$ to the trade funds size and it will be distributed as a percentage to the BO. & SO.s according to your strategy settings. The same idea in case of a loss, the trade funds size will be reduced.
D) 'RSI Strategy' Section:
- 'Buy': RSI technical condition to start a trade. Has no effect if you don't choose 'RSI' option in 'Buy Strategies'.
- 'Exit': RSI technical condition to exit a trade. Has no effect if you don't choose 'RSI' option in 'Exit Strategies'.
E) 'TV Strategy' Section:
- 'Buy': TradingView Crypto Screener technical condition to start a trade. Has no effect if you don't choose 'TV' option in 'Buy Strategies'.
- 'Exit': TradingView Crypto Screener technical condition to exit a trade. Has no effect if you don't choose 'TV' option in 'Exit Strategies'.
F) 'BB %B Strategy' Section:
- 'Buy': BB %B technical condition to start a trade. Has no effect if you don't choose 'BB %B' option in 'Buy Strategies'.
- 'Exit': BB %B technical condition to exit a trade. Has no effect if you don't choose 'BB %B' option in 'Exit Strategies'.
G) 'Plot' Section:
- 'Signals': Plots buy and exit signals.
- 'BO': Plots the trade entry price (base order price).
- 'AVG': Plots the trade average price.
- 'AVG options box': Your choice to plot the trade average price type:
'Avg. With Fees': The trade average price including the trading fees, If you exit the trade at this price the trade net profit will be 0.00
'Avg. Without Fees': The trade average price but not including the trading fees, If you exit the trade at this price the trade net profit will be a loss equivalent to the trading fees.
- 'TP': Plots the trade take profit price.
- 'SL': Plots the trade stop loss price.
- 'Last SO': Plots the trade last safety order that the price reached.
- 'Exit Price': Plots a mark on the trade exit price, It plots in 3 colors as below:
Red (Default): Trade exit at a loss.
Green (Default): Trade exit at a profit.
Yellow (Default): Trade exit at a profit but this is a special case where we have to calculate the profits before reaching the safety orders (if any) on that candle (compatible with the idea of getting strategy results at the worst case).
- 'Result Table': Plots your strategy result table. The net profit percentage shown is a percentage of the 'initial capital'.
- 'TA Values': Plots your used strategies Technical analysis values. (Green cells means valid condition).
- 'Help Table': Plots a table to help you discover 100 safety orders with its deviations and the total funds needed for your strategy settings. Deviations shown in red is impossible to use because its price is <= 0.00
- 'Portfolio Chart': Plots your Portfolio status during the entire trading period in addition to the highest and lowest level reached. It's important when evaluating any strategy not only to look at the final result, but also to look at the change in results over the entire trading period. Perhaps the results were worryingly negative at some point before they rose again and made a profit. This feature helps you to see the whole picture.
- 'Welcome Message': Plots a welcome message and showing you the idea behind this indicator.
- 'Green Net Profit %': It plots the 'Net Profit %' in the result table in green color if the result is equal to or above the value that you entered.
- 'Green Win Rate %': It plots the 'Win Rate %' in the result table in green color if the result is equal to or above the value that you entered.
- 'User Notes Area': An empty text area, Feel free to use this area to write your notes so you don't forget them.
The indicator will take care of you. In some cases, warning messages will appear for you. Read them carefully, as they mean that you have done an illogical error in the indicator settings. Also, the indicator will sometimes stop working for the same reason mentioned above. If that happens then click on the red (!) next to the indicator name and read the message to find out what illogical error you have done.
Please enjoy the indicator and let me know your thoughts in the comments below.






















