Backtest strategy Iris V0.3Backtesting strategy win 2 filters EMA and RSI on diffrent time frames
Recommanded for scalping only (1m Tile frame)
In den Scripts nach "backtest" suchen
Backtest Larry Williams 9.1 ( exemplo) - JBBacktest simples para compra no rompimento do topo do primeiro candle que abre abaixo e fecha acima da ema de 9 periodos e venda no rompimento do fundo do primeiro candle que fecha abaixo da ema de 9
Backtest any Indicator [Target Mode] StrategyUniversal Backtester Strategy with Sequential Logic
This strategy serves as a highly versatile, universal backtesting engine designed to test virtually any indicator-based trading system without requiring custom code for every new idea. It transforms standard indicator comparisons into a robust trading strategy with advanced features like sequential entry steps, dynamic target modes, and automated webhook alerts.
The core philosophy of this script is flexibility. Whether you are testing simple crossovers (e.g., MA Cross) or complex multi-stage setups (e.g., RSI overbought followed by a MACD flip), this tool allows you to configure logic via the settings panel and immediately see backtested results with professional-grade risk management.
Core Logic: Source vs. Target Mode
The fundamental building block of this strategy is the "Comparator" engine. Instead of hard-coding specific indicators, the script allows users to define logic slots (L1-L5 for Longs, S1-S5 for Shorts).
Each slot operates on a flexible comparison logic:
Source: The primary indicator you are testing (e.g., Close Price, RSI, Volume).
Operator: The condition to check (Equal/Cross, Greater Than, Less Than).
Target Mode:
Value Mode: Compares the Source against a fixed number (e.g., RSI > 70).
Source Mode: Compares the Source against another dynamic indicator (e.g., Close > SMA 200).
This "Target Mode" switch allows the strategy to adapt to almost any technical analysis concept, from oscillator levels to moving average trends.
Advanced Entry System: Sequential Steps (1-5)
Unlike standard backtesters that usually require all conditions to happen simultaneously (AND logic), this strategy implements a State Machine for sequential execution. Each of the 5 entry slots (L1-L5 / S1-S5) is assigned a "Step" number.
The logic flows as follows:
Stage 1: The strategy waits for all conditions assigned to "Step 1" to be true.
Latch & Wait: Once Step 1 is met, the strategy "remembers" this and advances to Stage 2. It waits for a subsequent bar to satisfy Step 2 conditions.
Trigger: The actual trade entry is only executed once the highest assigned step is completed.
Example Use Case:
Step 1: Price closes below the Lower Bollinger Band (Dip).
Step 2: RSI crosses back above 30 (Confirmation).
Execution: Buy Signal triggers on the Step 2 confirmation candle.
This creates a realistic "Setup -> Trigger" workflow common in professional trading, preventing premature entries.
Exit Logic & Risk Management
The strategy employs a dual-layer exit system to maximize profit retention and protect capital.
1. Signal-Based Exits (OR Logic) There are 5 configurable exit slots (LX1-LX5 / SX1-SX5). Unlike entries, these operate on "OR" logic. If any enabled exit condition is met (e.g., RSI becomes overbought OR Price crosses below EMA), the position is closed immediately.
2. Hard Stop & Take Profit
Fixed %: Users can set a hard percentage-based Stop Loss and Take Profit.
Trailing Stop: A toggleable "Trailing?" feature allows the Stop Loss to dynamically trail the price.
Longs: The SL moves up as the price makes new highs.
Shorts: The SL moves down as the price makes new lows.
Automated Alerts & Webhooks
This script is built with automation in mind. It includes a dedicated makeJson() function that constructs a JSON payload compatible with most trading bots (e.g., 3Commas, TradersPost, Tealstreet).
Alert Modes Supported: | Alert Type | Description | | :--- | :--- | | Order Fills Only | Triggers standard TradingView strategy alerts when the broker emulator fills an order. | | Alert() Function | Triggers specific JSON payloads defined in the code ("action": "buy", "ticker": "MNQ", etc.). |
The script automatically calculates the alert quantity based on your equity percentage settings, ensuring the payload matches your backtest sizing.
Dashboard & Visuals
To aid in rapid analysis, the strategy includes visual tools directly on the chart:
Performance Table: A dashboard (top-right) displays real-time stats including Net Profit, Win Rate, Profit Factor, and Max Drawdown.
Trade Markers: Custom labels (goLong, exLong) show exactly where trades opened and closed, including the trade number and profit percentage.
SL/TP Visualization: Dynamic step-lines (Orange for SL, Lime for TP) show exactly where your protection levels are sitting, helping you visually verify if your stops are too tight or too loose.
Backtest - Strategy Builder [AlgoAlpha]🟠 OVERVIEW
This script by AlgoAlpha is a modular Strategy Builder designed to let traders test custom trade entry and exit logic on TradingView without writing their own Pine code. It acts as a framework where users can connect multiple external signals, chain them in sequences, and run backtests with built-in leverage, margin, and risk controls. Its main strength is flexibility—you can define up to five sequential steps for entry and exit conditions on both long and short sides, with logic connectors (AND/OR) controlling how conditions combine. This lets you test complex multi-step confirmation workflows in a controlled, visual backtesting environment.
🟠 CONCEPTS
The system works by linking external signals —these can be values from other indicators, and/or custom sources—to conditional checks like “greater than,” “less than,” or “crossover.” You can stack these checks into steps , where all conditions in a step must pass before the sequence moves to the next. This creates a chain of logic that must be completed before a trade triggers. On execution, the strategy sizes positions according to your chosen leverage mode ( Cross or Isolated ) and allocation method ( Percent of equity or absolute USD value]). Liquidation prices are simulated for both modes, allowing realistic margin behaviour in testing. The script also tracks performance metrics like Sharpe, Sortino, profit factor, drawdown, and win rate in real time.
🟠 FEATURES
Up to 5 sequential steps for both long and short entries, each with multiple conditions linked by AND/OR logic.
Two leverage modes ( Cross and Isolated ) with independent long/short leverage multipliers.
Separate multi-step exit triggers for longs and shorts, with optional TP/SL levels or opposite-side triggers for flipping positions.
Position sizing by equity percent or fixed USD amount, applied before leverage.
Realistic liquidation price simulation for margin testing.
Built-in trade gating and validation—prevents trades if configuration rules aren’t met (e.g., no exit defined for an active side).
Full performance dashboard table showing live strategy status, warnings, and metrics.
Configurable bar coloring based on position side and TP/SL level drawing on chart.
Integration with TradingView's strategy backtester, allowing users to view more detailed metrics and test the strategy over custom time horizons.
🟠 USAGE
Add the strategy to your chart. In the settings, under Master Settings , enable longs/shorts, select leverage mode, set leverage multipliers, and define position sizing. Then, configure your Long Trigger and Short Trigger groups: turn on conditions, pick which external signal they reference, choose the comparison type, and assign them to a sequence step. For exits, use the corresponding Exit Long Trigger and Exit Short Trigger groups, with the option to link exits to opposite-side entries for auto-flips. You can also enable TP and/or SL exits with custom sources for the TP/SL levels. Once set, the strategy will simulate trades, show performance stats in the on-chart table, and highlight any configuration issues before execution. This makes it suitable for testing both simple single-signal systems and complex, multi-filtered strategies under realistic leverage and margin constraints.
🟠 EXAMPLE
The backtester on its own does not contain any indicator calculation; it requires input from external indicators to function. In this example, we'll be using AlgoAlpha's Smart Signals Assistant indicator to demonstrate how to build a strategy using this script.
We first define the conditions beforehand:
Entry :
Longs – SSA Bullish signal (strong OR weak)
Shorts – SSA Bearish signal (strong OR weak)
Exit
Longs/Shorts: (TP/SL hit OR opposing signal fires)
Other Parameters (⚠️Example only, tune this based on proper risk management and settings)
Long Leverage: default (3x)
Short Leverage: default (3x)
Position Size: default (10% of equity)
Steps
Load up the required indicators (in this example, the Smart Signals Assistant).
Ensure the required plots are being output by the indicator properly (signals and TP/SL levels are being plotted).
Open the Strategy Builder settings and scroll down to "CONDITION SETUP"; input the signals from the external indicator.
Configure the exit conditions, add in the TP/SL levels from the external indicator, and add an additional exit condition → {{Opposite Direction}} Entry Trigger.
After configuring the entry and exit conditions, the strategy should now be running. You can view information on the strategy in TradingView's backtesting report and also in the Strategy Builder's information table (default top right corner).
It is important to note that the strategy provided above is just an example, and the complexity of possible strategies stretches beyond what was shown in this short demonstration. Always incorporate proper risk management and ensure thorough testing before trading with live capital.
Bezahltes Script
Backtest Service Program (BASE) [FAF-Software-Solutions]{Deutsche Beschreibung folgt der englischen Beschreibung}
█ OVERVIEW
With BASE you can quick and easy create, test or optimize seasonal trading strategies. Seasonality is a strong, if not the strongest, trading approach to making money in the capital markets over the long term. Whether individually or in combination with other strategies, seasonality is a tool for your trading that should not be underestimated.
We have packed this script with everything you need for a meaningful seasonal analysis. Define entry and exit times according to day of the week, day of the month and the month itself, very easily via the settings window. Determine the period to be evaluated and, if desired, add a stop loss and / or a take profit to add a healthy risk and money management to your strategy. Since this is a pine strategy script, the usual trading view strategy parameters such as account size, commission, slippage, etc. are also available and you can set up your backtest even more realistically and therefore more truthfully.
Would you like to evaluate the behavior of a certain share over the turn of the year, would you like to find out which day of the week in gold has been the most profitable over the past 50 years or just check the "Sell in May" effect? This is exactly what we created this script for. With just a few clicks you can evaluate approaches such as the "Sell in May" effect or the "Santa Claus Rally", you can check which day of the week, which day of the month or which month is the strongest in an instrument and develop individual strategy systems from this.
█ FEATURES
The script input window has the following setting options:
• Backtest start / Backtest end: Set your Backtast Range here.
• Trade direction: Decide whether your strategy should open buy or sell positions.
• Pyramiding Indicates how many positions can be open at the same time (maximum 10 positions)
• Stop Loss / Take Profit: In order to optimize your strategy, you have the option of adding profit and loss levels (visible in the chart) to your open positions.
This enables you to adapt your trading system to your risk and money management. The stop and take profit levels are freely selectable.
• Entrys / Exits: Divided into days of the week, days of month and months itself, you can individually choose when you want to open and close a position.
• Advanced Filter: Seasonally, the 4-year election cycle of the US presidential election has a strong impact on the markets.
In order to be able to develop analyzes in connection with this cycle, there is an advanced filter to be able to filter the different election years.
█ HOW TO USE
After the script has been added to the chart, the input window opens immediately and you can easily select your strategy parameters. After confirming your selection, all trades will be added to the chart and you will find the key metrics for your system in the Tradingview Strategy Tester. If you have added a stop or profit level, you can also see this graphically in the chart and thus analyze every trade in the chart very precisely.
The entry and exit fields can be selected individually to be activated. If no selection is made, e.g. no selection for the weekday entry, then there is no longer any filtering and entry / exit is possible on any weekday. As soon as a selection is made under the entry / exit parameters, the system filters according to the criteria made during the selection. A position is always opened / closed at the closing price (close) of the candle, at which all selected criteria match.
█ LIMITATIONS
This script is just a tool for your trading. You dont receive any finished trading strategy or backtest, but a program with which you can create and optimize your own seasonal trading strategies without any programming knowledge.
This script was developed for seasonal back tests over a long history and therefore works best in a time resolution greater than or equal to the daily chart (1D).
█ IMPORTANT
The strategy results shown here were made with the default script settings in the SPX symbol. In order to test the pure seasonality, no slippage and commission are included in the default inputs. By default, 100% of the capital is used to open a position. These settings allow a quick check of seasonality without the distortion from commissions, slippage or margin calls, but to get a real strategy you need to add these things later. If you have identified a seasonal phase and want to build a trading strategy from it, you have to add realistic commission and slippage and adjust the positionsize. The backtesting results shown here are chosen randomly and are not a real strategy. The strategy key metrics are therefore not relevant and the chart is only used to illustrate the script design
Use the link below to get more information
═════════════════════════════════════════════════════════════════════════
█ ÜBERSICHT
Mit der BASE kannst Du schnell und unkompliziert saisonale Handelsstrategien erstellen, testen oder optimieren. Die Saisonalität ist ein starker, wenn nicht sogar der stärkste Handelsansatz, um langfristig Geld an den Kapitalmärkten zu verdienen. Ob nun einzeln oder in Kombination mit anderen Strategien, die Saisonalität ist ein nicht zu unterschätzendes Hilfsmittel für deinen Handel.
Dieses Skript haben wir mit allem vollgepackt was du für eine aussagekräftige saisonale Auswertung benötigst. Definiere Ein- und Ausstiegszeitpunkte nach Wochentag, Tag des Monats und dem Monat selbst, ganz einfach über das Einstellungsfenster. Bestimme den auszuwertenden Zeitraum und ergänze wenn gewünscht einen Stop Loss und/oder einen Take Profit um deiner Strategie ein gesundes Risiko- und Moneymanagement hinzuzufügen. Da es sich hierbei um ein Pine-Strategieskript handelt stehen Dir die üblichen Tradingview Strategieparameter wie Kontogröße, Kommission, Slippage usw. ebenfalls zur Verfügung und Du kannst deinen Backtest noch realistischer und damit auch wahrheitsgemäßer aufstellen.
Du möchtest das Verhalten einer bestimmten Aktie über den Jahreswechsel auswerten, möchtest herausfinden welcher Wochentag in Gold über die letzten 50 Jahre der profitabelste war oder einfach mal eben den "Sell in May" Ansatz überprüfen? Genau hierfür haben wir dieses Skript erstellt. Mit wenigen Klicks kannst Du Ansätze wie den "Sell in May" Effekt oder die "Santa Claus Rally" auswerten, kannst prüfen welcher Wochentag, welcher Tag des Monats oder welcher Monat der stärkste in einem Instrument ist und daraus ganz individuelle Strategie-Systeme entwickeln.
█ EIGENSCHAFTEN
Das Eingabefenster des Skripts hat folgende Einstellungsmöglichkeiten:
• Backtest start / Backtest end: Hier legst Du fest für welchen Zeitraum dein Backtest erstellt werden soll.
• Trade direction: In diesem Feld wird bestimmt ob die Positionen in Long- oder Short-Richtung eröffnet werden sollen.
• Pyramiding Gibt an wie viele Positionen zu selben Zeit offen stehen können (maximal 10 Positionen möglich)
• Stop Loss / Take Profit: Um deine Strategie optimieren zu können hast Du die Möglichkeit Gewinn- und Verlustlevel (sichtbar im Chart) zu deinen offenen Positionen hinzuzufügen.
Dadurch ist es Dir möglich dein Handelssystem an dein Risiko- und Moneymanagement anzupassen. Die Stop Loss und Take Profit Level sind frei wählbar.
• Entrys / Exits: Unterteilt in Wochentage, Kalendertage und Monate kannst Du hier ganz individuell auswählen zu welchem Zeitpunkt Du eine Position eröffnen und schließen möchtest.
• Advanced Filter: Saisonal betrachtet beeinflusst der 4-jährige Wahlzyklus der US-Präsidentschaftswahlen die Märkte stark.
Um Analysen im Zusammenhang mit diesem Zyklus entwickeln zu können gibt es hierfür einen erweiterten Filter um die verschiedenen Wahljahre filtern zu können.
█ ANWENDUNG
Nachdem das Skript auf den Chart aufgerufen wurde öffnet sich sofort das Eingabefenster in welchem Du deine Strategieparameter auswählen kannst. Nach dem Bestätigen der Auswahl kannst du sofort deine Trades auf dem Chart erkennen und hast über den Tradingview Strategie-Tester die Auswertung zu deinem System vorliegen. Wenn du ein Stop Loss oder Take Profit Level hinzugefügt hast kannst Du auch dieses grafisch auf dem Chart erkennen und so jeden Trade im Chart ganz genau analysieren.
Die Entry und Exit Felder können einzeln angewählt und somit aktiviert werden. Ist in einer Reihe wie beispielsweise den Wochentagen keiner der Tage ausgewählt so wird nicht mehr nach den Wochentagen gefiltert und ein Einstieg/ Ausstieg ist zu jedem Wochentag möglich. Sobald unter den Entry/ Exit Parametern eine Auswahl getroffen wird filtert das System nach den in der Auswahl getroffenen Kriterien. Es wird immer zum Schlusskurs (Close) der Kerze eingestiegen bei der alle ausgewählten Kriterien übereinstimmen.
█ EINSCHRÄNKUNGEN
Dieses Skript stellt ausschließlich ein Hilfsmittel für deinen Handel dar. Du erhältst keine fertigen Handelsstrategien oder Backtests sondern ein Tool mit welchem Du ohne Programmierkenntnisse in der Lage bist eigene saisonale Handelsstrategien zu erstellen und zu optimieren.
Das Skript wurde für saisonale Backtests über eine lange Historie entwickelt und arbeitet daher am besten in den Zeitfenstern größer oder gleich dem Tageschart (1D).
█ WICHTIG
Die hier gezeigten Strategieergebnisse wurden mit den Standard-Skripteinstellungen im SPX-Symbol erstellt. Um die reine Saisonalität zu testen, sind in den Standardeingaben keine Slippage und Provision enthalten. Standardmäßig wird 100% des Kapitals verwendet, um eine Position zu eröffnen. Diese Einstellungen ermöglichen eine schnelle Prüfung der Saisonalität ohne Verzerrungen durch Provisionen, Slippage oder Margin Calls. Um eine handelbare Strategie zu erhalten müssen die Angaben zu Slippage, Kommission und Positionsgröße aber später unbedingt ergänzt werden. Die hier gezeigten Backtesting-Ergebnisse wurden zufällig ausgewählt und sind keine echte Strategie. Die Strategiekennzahlen sind daher nicht relevant und das Chartbild dient nur zur Veranschaulichung des Skriptdesigns
Verwende den untenstehenden Link für mehr Informationen
Backtest AdapterThis is a proof-of-concept Backtest Adapter that can be used with my recent publication "Machine Learning: Lorentzian Classification" located here:
This adapter is helpful because it enables interactive backtesting with TradingView's built-in "Strategy Tester" framework without the need to translate the logic from an "indicator" script to a "strategy" script.
To use this, one must have the "Machine Learning: Lorentzian Classification" script and this Backtest Adapter open simultaneously on the same chart. From there, simply change the "Source" setting of the Backtest Adapter to "Lorentzian Classification: Backtest Stream" to transfer the entry/exit signals stream to the Backtest Adapter.
For an example of how to implement your own backtest stream in your indicators, please refer to the "Backtesting" section in the source code of the "Machine Learning: Lorentzian Classification" script, which is shown below for convenience:
Backtesting on Non-Standard Charts: Caution! - PineCoders FAQMuch confusion exists in the TradingView community about backtesting on non-standard charts. This script tries to shed some light on the subject in the hope that traders make better use of those chart types.
Non-standard charts are:
Heikin Ashi (HA)
Renko
Kagi
Point & Figure
Range
These chart types are called non-standard because they all transform market prices into synthetic views of price action. Some focus on price movement and disregard time. Others like HA use the same division of bars into fixed time intervals but calculate artificial open, high, low and close (OHLC) values.
Non-standard chart types can provide traders with alternative ways of interpreting price action, but they are not designed to test strategies or run automated traded systems where results depend on the ability to enter and exit trades at precise price levels at specific times, whether orders are issued manually or algorithmically. Ironically, the same characteristics that make non-standard chart types interesting from an analytical point of view also make them ill-suited to trade execution. Why? Because of the dislocation that a synthetic view of price action creates between its non-standard chart prices and real market prices at any given point in time. Switching from a non-standard chart price point into the market always entails a translation of time/price dimensions that results in uncertainty—and uncertainty concerning the level or the time at which orders are executed is detrimental to all strategies.
The delta between the chart’s price when an order is issued (which is assumed to be the expected price) and the price at which that order is filled is called slippage . When working from normal chart types, slippage can be caused by one or more of the following conditions:
• Time delay between order submission and execution. During this delay the market may move normally or be subject to large orders from other traders that will cause large moves of the bid/ask levels.
• Lack of bids for a market sell or lack of asks for a market buy at the current price level.
• Spread taken by middlemen in the order execution process.
• Any other event that changes the expected fill price.
When a market order is submitted, matching engines attempt to fill at the best possible price at the exchange. TradingView strategies usually fill market orders at the opening price of the next candle. A non-standard chart type can produce misleading results because the open of the next candle may or may not correspond to the real market price at that time. This creates artificial and often beneficial slippage that would not exist on standard charts.
Consider an HA chart. The open for each candle is the average of the previous HA bar’s open and close prices. The open of the HA candle is a synthetic value, but the real market open at the time the new HA candle begins on the chart is the unrelated, regular open at the chart interval. The HA open will often be lower on long entries and higher on short entries, resulting in unrealistically advantageous fills.
Another example is a Renko chart. A Renko chart is a type of chart that only measures price movement. The purpose of a Renko chart is to cluster price action into regular intervals, which consequently removes the time element. Because Trading View does not provide tick data as a price source, it relies on chart interval close values to construct Renko bricks. As a consequence, a new brick is constructed only when the interval close penetrates one or more brick thresholds. When a new brick starts on the chart, it is because the previous interval’s close was above or below the next brick threshold. The open price of the next brick will likely not represent the current price at the time this new brick begins, so correctly simulating an order is impossible.
Some traders have argued with us that backtesting and trading off HA charts and other non-standard charts is useful, and so we have written this script to show traders what happens when order fills from backtesting on non-standard charts are compared to real-world fills at market prices.
Let’s review how TV backtesting works. TV backtesting uses a broker emulator to execute orders. When an order is executed by the broker emulator on historical bars, the price used for the fill is either the close of the order’s submission bar or, more often, the open of the next. The broker emulator only has access to the chart’s prices, and so it uses those prices to fill orders. When backtesting is run on a non-standard chart type, orders are filled at non-standard prices, and so backtesting results are non-standard—i.e., as unrealistic as the prices appearing on non-standard charts. This is not a bug; where else is the broker emulator going to fetch prices than from the chart?
This script is a strategy that you can run on either standard or non-standard chart types. It is meant to help traders understand the differences between backtests run on both types of charts. For every backtest, a label at the end of the chart shows two global net profit results for the strategy:
• The net profits (in currency) calculated by TV backtesting with orders filled at the chart’s prices.
• The net profits (in currency) calculated from the same orders, but filled at market prices (fetched through security() calls from the underlying real market prices) instead of the chart’s prices.
If you run the script on a non-standard chart, the top result in the label will be the result you would normally get from the TV backtesting results window. The bottom result will show you a more realistic result because it is calculated from real market fills.
If you run the script on a normal chart type (bars, candles, hollow candles, line, area or baseline) you will see the same result for both net profit numbers since both are run on the same real market prices. You will sometimes see slight discrepancies due to occasional differences between chart prices and the corresponding information fetched through security() calls.
Features
• Results shown in the Data Window (third icon from the top right of your chart) are:
— Cumulative results
— For each order execution bar on the chart, the chart and market previous and current fills, and the trade results calculated from both chart and market fills.
• You can choose between 2 different strategies, both elementary.
• You can use HA prices for the calculations determining entry/exit conditions. You can use this to see how a strategy calculated from HA values can run on a normal chart. You will notice that such strategies will not produce the same results as the real market results generated from HA charts. This is due to the different environment backtesting is running on where for example, position sizes for entries on the same bar will be calculated differently because HA and standard chart close prices differ.
• You can choose repainting/non-repainting signals.
• You can show MAs, entry/exit markers and market fill levels.
• You can show candles built from the underlying market prices.
• You can color the background for occurrences where an order is filled at a different real market price than the chart’s price.
Notes
• On some non-standard chart types you will not obtain any results. This is sometimes due to how certain types of non-standard types work, and sometimes because the script will not emit orders if no underlying market information is detected.
• The script illustrates how those who want to use HA values to calculate conditions can do so from a standard chart. They will then be getting orders emitted on HA conditions but filled at more realistic prices because their strategy can run on a standard chart.
• On some non-standard chart types you will see market results surpass chart results. While this may seem interesting, our way of looking at it is that it points to how unreliable non-standard chart backtesting is, and why it should be avoided.
• In order not to extend an already long description, we do not discuss the particulars of executing orders on the realtime bar when using non-standard charts. Unless you understand the minute details of what’s going on in the realtime bar on a particular non-standard chart type, we recommend staying away from this.
• Some traders ask us: Why does TradingView allow backtesting on non-standard chart types if it produces unrealistic results? That’s somewhat like asking a hammer manufacturer why it makes hammers if hammers can hurt you. We believe it’s a trader’s responsibility to understand the tools he is using.
Takeaways
• Non-standard charts are not bad per se, but they can be badly used.
• TV backtesting on non-standard charts is not broken and doesn’t require fixing. Traders asking for a fix are in dire need of learning more about trading. We recommend they stop trading until they understand why.
• Stay away from—even better, report—any vendor presenting you with strategies running on non-standard charts and implying they are showing reliable results.
• If you don’t understand everything we discussed, don’t use non-standard charts at all.
• Study carefully how non-standard charts are built and the inevitable compromises used in calculating them so you can understand their limitations.
Thanks to @allanster and @mortdiggiddy for their help in editing this description.
Look first. Then leap.
MACD, backtest 2015+ only, cut in half and doubledThis is only a slight modification to the existing "MACD Strategy" strategy plugin!
found the default MACD strategy to be lacking, although impressive for its simplicity. I added "year>2014" to the IF buy/sell conditions so it will only backtest from 2015 and beyond ** .
I also had a problem with the standard MACD trading late, per se. To that end I modified the inputs for fast/slow/signal to double. Example: my defaults are 10, 21, 10 so I put 20, 42, 20 in. This has the effect of making a 30min interval the same as 1 hour at 10,21,10. So if you want to backtest at 4hr, you would set your time interval to 2hr on the main chart. This is a handy way to make shorter time periods more useful even regardless of strategy/testing, since you can view 15min with alot less noise but a better response.
Used on BTCCNY OKcoin, with the chart set at 45 min (so really 90min in the strategy) this gave me a percent profitable of 42% and a profit factor of 1.998 on 189 trades.
Personally, I like to set the length/signals to 30,63,30. Meaning you need to triple the time, it allows for much better use of shorter time periods and the backtests are remarkably profitable. (i.e. 15min chart view = 45min on script, 30min= 1.5hr on script)
** If you want more specific time periods you need to try plugging in different bar values: replace "year" with "n" and "2014" with "5500". The bars are based on unix time I believe so you will need to play around with the number for n, with n being the numbers of bars.
Dual Timeframe SMA Ribbon Crossover Backtest// Backtesting Dual SMA Ribbon Crossover Strategy
// see f.bpcdn.co
// including time limiting
Turned this study into a backtest.
[BACKTEST] CMYK-RMI-SMA◊ Introduction
This script makes use of three RMI's and SMA's, that indicate Overbought/Oversold on different Periods that correspond with Frequency’s that move the market.
◊ Origin
This is an update on █▓▒░ CMYK ♦ RMI ♦ TRIPLE ░▒▓█
◊ Usage
This script is intended for Automated Trading on the 1-5 minute chart.
◊ Features Summary
Two Part Indicator
Strategy Type Selection
Three RMI's SMA's
Trend adjustment
Pump/Dump Entry Delay
Pyramiding
Ignore first entries
Take Profit
Interval between Entries
Multiring Fix
Alert signal Seperation
◊ Community
Wanna try this script out ? need help resolving a problem ?
CMYK :: discord.gg
AUTOVIEW :: discordapp.com
TRADINGVIEW UNOFFICIAL :: discord.gg
◊ Setting up Autoview Alerts
Use the study version of this script, To set up The Alerts Autoview Picks up on.
Goto the CMYK Discord for support and Settings.
◊ Backtesting
Use the strategy version of this script for backtesting.
◊ Contact
Wanna try this script out ? need help resolving a problem ?
CMYK :: discord.gg
Happy trades!!!
Backtesting ModuleDo you often find yourself creating new 'strategy()' scripts for each trading system? Are you unable to focus on generating new systems due to fatigue and time loss incurred in the process? Here's a potential solution: the 'Backtesting Module' :)
INTRODUCTION
Every trading system is based on four basic conditions: long entry, long exit, short entry and short exit (which are typically defined as boolean series in Pine Script).
If you can define the conditions generated by your trading system as a series of integers, it becomes possible to use these variables in different scripts in efficient ways. (Pine Script is a convenient language that allows you to use the integer output of one indicator as a source in another.)
The 'Backtesting Module' is a dynamic strategy script designed to adapt to your signals. It boasts two notable features:
⮞ It produces a backtest report using the entry and exit variables you define.
⮞ It not only serves for system testing but also to combine independent signals into a single system. (This functionality enables to create complex strategies and report on their success!)
The module tests Golden and Death cross signals by default, when you enter your own conditions the default signals will be neutralized. The methodology is described below.
PREPARATION
There are three simple steps to connect your own indicator to the Module.
STEP 1
Firstly, you must define entry and exit variables in your own script. Let's elucidate it with a straightforward example. Consider a system generating long and short signals based on the intersections of two moving averages. Consequently, our conditions would be as follows:
// Signals
long = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
short = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
Now, the question is: How can we convert boolean variables into integer variables? The answer is conditional ternary block, defined as follows:
// Entry & Exit
long_entry = long ? 1 : 0
long_exit = short ? 1 : 0
short_entry = short ? 1 : 0
short_exit = long ? 1 : 0
The mechanics of the Entry & Exit variables are simple. The variable takes on a value of 1 when your trading system generates the signal and if your system does not produce any signal, variable returns 0. In this example, you see how exit signals can be generated in a trading system that only contains entry signals. If you have a system with original exit signals, you can also use them directly. (Please mind the NOTES section below).
STEP 2
To utilize the Entry & Exit variables as source in another script, they must be plotted on the chart. Therefore, the final detail to include in the script containing your trading system would be as follows:
// Plot The Output
plot(long_entry, "Long Entry", display=display.data_window, editable=false)
plot(long_exit, "Long Exit", display=display.data_window, editable=false)
plot(short_entry, "Short Entry", display=display.data_window, editable=false)
plot(short_exit, "Short Exit", display=display.data_window, editable=false)
STEP 3
Now, we are ready to test the system! Load the Backtesting Module indicator onto the chart along with your trading system/indicator. Then set the outputs of your system (Long Entry, Long Exit, Short Entry, Short Exit) as source in the module. That's it.
FEATURES & ORIGINALITY
⮞ Primarily, this script has been created to provide you with an easy and practical method when testing your trading system.
⮞ I thought it might be nice to visualize a few useful results. The Backtesting Module provides insights into the outcomes of both long and short trades by computing the number of trades and the success percentage.
⮞ Through the 'Trade' parameter, users can specify the market direction in which the indicator is permitted to initiate positions.
⮞ Users have the flexibility to define the date range for the test.
⮞ There are optional features allowing users to plot entry prices on the chart and customize bar colors.
⮞ The report and the test date range are presented in a table on the chart screen. The entry price can be monitored in the data window.
⮞ Note that results are based on realized returns, and the open trade is not included in the displayed results. (The only exception is the 'Unrealized PNL' result in the table.)
STRATEGY SETTINGS
The default parameters are as follows:
⮞ Initial Balance : 10000 (in units of currency)
⮞ Quantity : 10% of equity
⮞ Commission : 0.04%
⮞ Slippage : 0
⮞ Dataset : All bars in the chart
For a realistic backtest result, you should size trades to only risk sustainable amounts of equity. Do not risk more than 5-10% on a trade. And ALWAYS configure your commission and slippage parameters according to pessimistic scenarios!
NOTES
⮞ This script is intended solely for development purposes. And it'll will be available for all the indicators I publish.
⮞ In this version of the module, all order types are designed as market orders. The exit size is the sum of the entry size.
⮞ As your trading conditions grow more intricate, you might need to define the outputs of your system in alternative ways. The method outlined in this description is tailored for straightforward signal structures.
⮞ Additionally, depending on the structure of your trading system, the backtest module may require further development. This encompasses stop-loss, take-profit, specific exit orders, quantity, margin and risk management calculations. I am considering releasing improvements that consider these options in future versions.
⮞ An example of how complex trading signals can be generated is the OTT Collection. If you're interested in seeing how the signals are constructed, you can use the link below.
THANKS
Special thanks to PineCoders for their valuable moderation efforts.
I hope this will be a useful example for the TradingView community...
DISCLAIMER
This is just an indicator, nothing more. It is provided for informational and educational purposes exclusively. The utilization of this script does not constitute professional or financial advice. The user solely bears the responsibility for risks associated with script usage. Do not forget to manage your risk. And trade as safely as possible. Best of luck!
*Backtesting System ⚉ OVERVIEW ⚉
One of the best Systems for Backtesting your Strategies.
Incredibly flexible, simple, fast and feature-rich system — will solve most of your queries without much effort.
Many systems for setting StopLoss, TakeProfit, Risk Management and advanced Filters.
All you need to do is plug in your indicator and start Backtesting .
I intentionally left the option to use my System on Full Power before you load your indicator into it.
The system uses the built-in simple and popular moving average crossover signal for this purpose. (EMA 50 & 200).
Also Highly Recommend that you Fully use ALL of the features of this system so that you understand how they work before you ask questions.
Also tried to leave TIPS for each feature everywhere, read Tips, activate them and see how they work.
But before you use this system, I Recommend you to read the following description in Full.
—————— How to connect your indicator in 2 steps:
Adapt your indicator by adding only 2 lines of code and then connect it to this Backtesting System.
Step 1 — Create your connector, For doing so:
• 1 — Find or create in your indicator where are the conditions printing the Long-Buy and Short-Sell signals.
• 2 — Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator wether it's a MACD, RSI , Pivots, or whatever indicator with Clear Buy and Sell conditions.
//@version=5
indicator('Moving Average Cross', overlay = true)
MA200 = ta.𝚎𝚖𝚊(close, 200)
MA50 = ta.𝚎𝚖𝚊(close, 50)
// Generate Buy and Sell conditions
buy = ta.crossover (MA200, MA50)
sell = ta.crossunder (MA200, MA50)
plot(MA200, color=color.green)
plot(MA50 , color=color.red )
bgcolor(color = buy ? color.green : sell ? color.red : na, title='SIGNALS')
// ———————————————— SIGNAL FOR SYSTEM ————————————————
Signal = buy ? +1 : sell ? -1 : 0
plot(Signal, title='🔌Connector🔌', display = display.none)
// —————— 🔥 The Backtesting System expects the value to be exactly +1 for the 𝚋𝚞𝚕𝚕𝚒𝚜𝚑 signal, and -1 for the 𝚋𝚎𝚊𝚛𝚒𝚜𝚑 signal
Basically, I identified my Buy & Sell conditions in the code and added this at the bottom of my indicator code
Now you can connect your indicator to the Backtesting System using the Step 2
Step 2 — Connect the connector
• 1 — Add your updated indicator to a TradingView chart and Add the Backtesting System as well to the SAME chart
• 2 — Open the Backtesting System settings and in the External Source field select your 🔌Connector🔌 (which comes from your indicator)
_______________________________
⚉ MAIN SETTINGS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
𝐄𝐱𝐭𝐞𝐫𝐧𝐚𝐥 𝐒𝐨𝐮𝐫𝐜𝐞 — Select your indicator. Add your indicator by following the 2 steps described above and select it in the menu. To familiarize yourself with the system until you select your indicator, you will have an in-built strategy of crossing the two moving EMA's of 50 and 200.
Long Deals — Enable/Disable Long Deals.
Short Deals — Enable/Disable Short Deals.
Wait End Deal — Enable/Disable waiting for a trade to close at Stop Loss/Take Profit. Until the trade closes on the Stop Loss or Take Profit, no new trade will open.
Reverse Deals — To force the opening of a trade in the opposite direction.
ReEntry Deal — Automatically open the same new deal after the deal is closed.
ReOpen Deal — Reopen the trade if the same signal is received. For example, if you are already in the long and a new signal is received in the long, the trade will reopen. * Does not work if Wait End Deal is enabled.
𝐓𝐚𝐤𝐞 𝐏𝐫𝐨𝐟𝐢𝐭:
None — Disables take profit. Useful if you only want to use dynamic stoplosses such as MA, Fast-Trailing, ATR Trail.
FIXED % — Fixed take profit in percent.
FIXED $ — Fixed Take in Money.
ATR — Fixed Take based on ATR.
R:R — Fixed Take based on the size of your stop loss. For example, if your stop is 10% and R:R=1, then the Take would be 10%. R:R=3 Take would be 30%, etc.
HH / LL — Fixed Take based on the previous maximum/minimum (extremum).
𝐒𝐭𝐨𝐩 𝐋𝐨𝐬𝐬:
None — Disables Stop Loss. Useful if you want to work without a stop loss. *Be careful if Wait End Deal is enabled, the trade may not close for a long time until it reaches the Take.
FIXED % — Fixed Stop in percent.
FIXED $ — Fixed Stop in Money.
TRAILING — Dynamic Trailing Stop like on the stock exchanges.
FAST TRAIL — Dynamic Fast Trailing Stop moves immediately in profit and stays in place if the price stands still or the price moves in loss.
ATR — Fixed Stop based on the ATR.
ATR TRAIL — Dynamic Trailing Stop based on the ATR.
LO / HI — A Fixed Stop based on the last Maximum/Minimum extemum. Allows you to place a stop just behind or above the low/high candle.
MA — Dynamic Stop based on selected Moving Average. * You will have 8 types of MA (EMA, SMA, HMA, etc.) to choose from, but you can easily add dozens of other MAs, which makes this type of stop incredibly flexible.
Add % — If true, then with the "𝗦𝘁𝗼𝗽 %" parameter you can add percentages to any of the current SL. Can be especially useful when using Stop - 𝗔𝗧𝗥 or 𝗠𝗔 or 𝗟𝗢/𝗛𝗜. For example with 𝗟𝗢/𝗛𝗜 to put a stop for the last High/Low and add 0.5% additional Stoploss.
Fixed R:R — If the stop loss is Dynamic (Trailing or MA) then if R:R true can also be made Dynamic * Use it carefully, the function is experimental.
_________________________________________
⚉ TAKE PROFIT LEVELS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
A unique method of constructing intermediate Take Profit Levels will allow you to select up to 5 intermediate Take Profit Levels and one intermediate Stop Loss.
Intermediate Take Profit Levels are perfectly calculated into 5 equal parts in the form of levels from the entry point to the final Take Profit target.
All you need to do is to choose the necessary levels for fixing and how much you want to fix at each level as a percentage. For example, TP 3 will always be exactly between the entry point and the Take Profit target. And the value of TP 3 = 50 will close 50% of the amount of the remaining size of the position.
Note: all intermediate SL/TP are closed from the remaining position amount and not from the initial position size, as TV does by default.
SL 0 Position — works in the same way as TP 1-5 but it's Stop. With this parameter you can set the position where the intermediate stop will be set.
Breakeven on TP — When activated, it allows you to put the stop loss at Breakeven after the selected TP is reached. For this function to work as it should - you need to activate an intermediate Take. For example, if TP 3 is activated and Breakeven on TP = 3, then after the price reaches this level, the Stop loss will go to Breakeven.
* This function will not work with Dynamic Stoplosses, because it simply does not make sense.
CoolDown # Bars — When activated, allows you to add a delay before a new trade is opened. A new trade after CoolDown will not be opened until # bars pass and a new signal appears.
_____________________________
⚉ TIME FILTERS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Powerful time filter code that allows you to filter data based on specific time zones, dates, and session days. This code is ideal for those who need to analyze data from different time zones and weed out irrelevant data.
With Time Filter, you can easily set the starting and ending time zones by which you want to filter the data.
You can also set a start and end date for your data and choose which days of the week to include in the analysis. In addition, you can specify start and end times for a specific session, allowing you to focus your analysis on specific time periods.
_________________________________
⚉ SIGNAL FILTERS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Signal Filters — allows you to easily customize and optimize your trading strategies based on 10 filters.
Each filter is designed to help you weed out inaccurate signals to minimize your risks.
Let's take a look at their features:
__________________________________
⚉ RISK MANAGEMENT ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Risk management tools that allow you to set the maximum number of losing trades in a row, a limit on the number of trades per day or week and other filters.
Loss Streak — Set Max number of consecutive loss trades.
Win Streak — Max Winning Streak Length.
Row Loss InDay — Max of consecutive days with a loss in a row.
DrawDown % — Max DrawDown (in % of strategy equity).
InDay Loss % — Set Max Intraday Loss.
Daily Trades — Limit the number of MAX trades per day.
Weekly Trades — Limit the number of MAX trades per week.
* 🡅 I would Not Recommend using these functions without understanding how they work.
Order Size — Position Size
• NONE — Use the default position size settings in Tab "Properties".
• EQUITY — The amount of the allowed position as a percentage of the initial capital.
• Use Net Profit — On/Off the use of profit in the following trades. *Only works if the type is EQUITY.
• SIZE — The size of the allowed position in monetary terms.
• Contracts — The size of the allowed position in the contracts. 1 Сontract = Сurrent price.
________________
⚉ NOTES ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
It is important to note that I have never worked with Backtesting and the functions associated with them before.
It took me about a month of slow work to build this system.
I want to say Big Thanks:
• The PineScripters🌲 group, the guys suggested how to implement some features. Especially @allanster
• Thanks to all those people who share their developments for free on TV and not only.
• I also thank myself for not giving up and finishing the project, and not trying to monetize the system by selling it. * Although I really want the money :)
I tried hard to make it as fast and convenient as possible for everyone who will use my code.
That's why I didn't use any libraries and dozens of heavy functions, and I managed to fit in 8+-functions for the whole code.
Absolutely every block of code I tried to make full-fledged modular, that it was easy to import/edit for myself (you).
I have abused the Ternary Pine operator a little (a lot) so that the code was as compact as possible.
Nevertheless, I tried very hard to keep my code very understandable even for beginners.
At last I managed to write 500 lines of code, making it one of the fastest and most feature-rich systems out there.
I hope everyone enjoys my work.
Put comments and write likes.
Backtest History Setup 1.0Script of strategy component to setup the backtext lookback. You setup the maximum days back in the history, which will be used for backtest.
Backtest [OptAlgo]This backtest script is designed to convert ideas or indicators into backtest results. The script creates buy/sell signals by comparing price sources against fixed values or other imported plots using many comparison methods. It has many features including multiple exit systems: TP/SL, custom plot-based stops and more. It supports full trading automation through webhook alerts with live signal processing.
🔢 Signal Creation System
→ Values Group : Compare price sources against fixed numerical values
→ Plots Group : Compare two different price sources/indicators against each other
→ Flexible Comparisons : 15+ comparison methods (equal, crossover, rising...)
→ Signal Types : Long, Short, Close All, Block signals, and combination signals
→ Merge Rules : Minimum condition requirements for signal activation
🔀 Advanced Signal Logic
→ Counter Signals : Choose between reversing positions or closing them
→ Signal Inversion : Flip all buy/sell signals with one toggle
→ External Signal Import : Import coded signals (1=Long, -1=Short, 0=Close)
→ Day Blocker : Enable/disable trading on specific weekdays
→ Session Control : Limit trading to specific market sessions
⚙️ Strategy Settings
→ Position Sides : All Ways, Long Only, or Short Only modes
→ Signal Control : Individual enable/disable for long and short signals
→ Counter Signal Mode : Reverse Open Position vs Close Open Position
→ Signal Reversal : Global signal inversion capability
🔰 Risk Management (Limiter Settings)
→ Leverage Control : Leverage with liquidation warnings
→ Drawdown Limit : Auto-halt strategy at specified drawdown percentage
→ Tradable Ratio : Use portion of available balance (0.01-1.0)
→ Contract Limit : Cap maximum contract size regardless of balance
🎯 TP/SL System
→ Fixed TP/SL : Set percentage-based take profit and stop loss
→ Custom Plot Stops : Use any indicator/plot as dynamic stop loss
→ ATR-Based Exits : Volatility-adjusted TP/SL using Average True Range
→ Realistic Protection : Prevents unrealistic TP/SL prices in live trading
→ Stop Modes : Instant (Sudden) vs Candle Close execution
→ ATR Stop Loss : Override fixed SL with volatility-based calculations
→ ATR Take Profit : Dynamic TP based on market volatility
→ Trailing Options : Safe, Normal, or Aggressive trailing methods
→ Calculation Modes : Normal, Volume-weighted, or Limited (with max %) options
→ Volume Integration : ATR levels adjust based on volume influx
🤖 Automation & Alerts
→ Webhook Integration : Send JSON alerts for automated execution
→ Live Signals : Real-time signal processing (every tick vs bar close)
→ Strategy Key : Unique identifier for automated systems
→ Early Entry : Send alerts X seconds before candle close
→ Fast Execution : Prevent signal lag in automated trading
🐞 Development Tools
→ Alert Plotting : Visualize signals directly on chart (disable for live alerts)
→ Professional Mode : Remove UI controls for faster calculation
→ Debug : Metrics are plotted in data window.
📊 Key Advantages
→ Multi-Condition Logic : Combine multiple indicators with flexible rules
→ Risk-First Design : Built-in drawdown and leverage protection
→ Automation Ready : Full webhook and alert system integration
⚠️ Important Warnings
→ High leverage combined with high SL may adjust to liquidation price
→ Use consistent leverage across all strategies on same trading isolated margin pair
→ Live signals require "Calculate on every tick" enabled in settings
→ Disable alert plotting when creating actual alerts to prevent latency
Strategy - Backtest Uber SSL Channel / SSL Indicator [UTS]Backtesting of Uber SSL Channel / SSL Indicator
Backtest with focus win/loss profitability. Formula: profitability = win / (win+loss)
Do not put too much weight on trade PNL as the value is not necessary correct.
For example: on SL or TP hit an open position is marked as to be closed but executed on the open a new candle, thus leads to incorrect PNL.
Default equity 50k
Default 2% Risk per trade
Default currency USD
Define backtest interval precisely by month, year, day
ATR (len: 14, smooth: SMA)
ATR based Stop-Loss, if hit trade will be closed and considered as loss
ATR based Take-Profit, if hit trade will be closed and considered as win
If TP or SL is hit trade is closed and of course considered as win/loss
---
DM me / Tip (see Signature) or Subscribe for access
Strategy - Backtest Uber ASH - Absolute Strength Histogram [UTS]Backtesting of Uber ASH - Absolute Strength Histogram
Backtest with focus win/loss profitability. Formula: profitability = win / (win+loss)
Do not put too much weight on trade PNL as the value is not necessary correct.
For example: on SL or TP hit an open position is marked as to be closed but executed on the open a new candle, thus leads to incorrect PNL.
Default equity 50k
Default 2% Risk per trade
Default currency USD
Define backtest interval precisely by month, year, day
ATR (len: 14, smooth: SMA)
ATR based Stop-Loss, if hit trade will be closed and considered as loss
ATR based Take-Profit, if hit trade will be closed and considered as win
If TP or SL is hit trade is closed and of course considered as win/loss
---
DM me / Tip (see Signature) or Subscribe for access
Supertrend Oscillators w/ MAs Backtest [loxx]Backtest for the following indicator:
Features
-3 selectable TPs with ATR
-Adjustable ATR and TPs levels
-Show shorts shorts or longs
-date ranges
Instructions:
-When you select the % per TP you must make sure they add up to 100% between the ones selected or no data will show
-Used to backtest corresponding indicator linked above
Future updates:
-Add lines for TPs and SL
Backtest Custom HiLo StrategyThis script implements the HiLo trend follower strategy for backtesting the HiLo indicator. It comes with some custom options. Among them is the Type option that allows to choose between the moving averages for the highs and lows (HiLo), or highest and lowest values for those moving averages, respectively (HiLo Activator).
[Backtest Crypto] Cross MAThis script is designed for testing the moving average crossover strategy.
Script settings:
Select testing range
Indicator settings: Select moving average type (EMA, SMA, WMA, SMMA, HMA) and period
Trade management: Select risk-to-reward ratio, stop-loss defined as min/max for a certain number of candles (you can set a desired number), option to partially lock in a position by moving the stop-loss to breakeven, trailing stop, or close a position on an opposite signal.
Option to limit the stop-loss by ATR to prevent it from becoming too large during volatile movements.
===============================================================
Скрипт предназначен для тестирования стратегии пересечение скользящих средних.
Настройки скрипта:
Выбор диапазона тестирования
Настройки индикатора: выбор типа скользящей (EMA, SMA, WMA, SMMA, HMA) и периода
Сопровождение сделки: выбор соотношения риска к прибыли, стоп-лосс определяется как мин/мах за определенное количество свечей (можно устанавливать желаемое количество), возможность частичной фиксации позиции с переносом стоп-лосса в безубыток, трейлинг-стоп, или закрытие позиции по противоположному сигналу.
Возможность ограничения стоп-лосса по ATR, чтобы при волатильных движениях он не был слишком большим.
Strategy-Based Breakout Backtest by AlturoiThis educational strategy is designed to help active traders learn how to turn trading ideas into data-driven decisions by testing strategies against historical price action before risking real capital.
The script walks through the step-by-step backtesting workflow on TradingView, showing how strategy logic, entries, exits, and risk rules translate into measurable performance metrics such as win rate, drawdown, and expectancy.
What this script helps you learn:
How to backtest on TradingView using Pine Script strategies
How the Strategy Tester calculates performance results
How to interpret win rate, drawdowns, and consistency
How to validate breakout and support/resistance concepts
How to identify structural edge — or flaws — before going live
This is not a signal service or financial advice. It is an educational framework meant to help traders understand proper backtesting techniques and avoid common mistakes when evaluating trading strategies.
Use this script as a learning template to experiment, modify logic, and improve your understanding of how professional backtesting on TradingView works.
Miyagi BacktesterMiyagi: The attempt at mastering something for the best results.
Miyagi indicators combine multiple trigger conditions and place them in one toolbox for traders to easily use, produce alerts, backtest, reduce risk and increase profitability.
The Miyagi Backtester is a standalone backtester which is to be applied to the chart after the Miyagi indicator to be backtested.
The backtester can only backtest one script at a time, and is meant to backtest ONCE PER BAR CLOSE entries.
It is currently not possible to backtest ONCE PER BAR entries.
The backtester will allow users to all Miyagi Indicators using DCA strategies to show returns over a selectable time period.
The backtester allows leverage, and as such users should be aware of the Maximum Amount for Bot Usage and Leverage Required Calculations.
The DCA Selector switch will allow users to backtest with, or without DCA.
Static DCA is used within the backtester and allows users to see DCA Statistics on closed trades.
How to use the Miyagi Backtester
Step 1: Apply the Miyagi Indicator of Choice to backtest (4in1/10in1/Strend).
DATE AND TIME RANGE:
-Date and time range to backtest.
TRADE:
-Entry source to backtest. Please select the "Outbound Entry Signal Sender"
-Trade Direction to backtest. This can be helpful to backtest according to your strategy (long or short).
-Take Profit % to backtest. This is the percent take profit to backtest. Slippage can be accounted for on the "Properties" tab.
-Stoploss % to backtest. This is the percent stoploss to backtest.
DCA:
DCA Checkbox: Enable the DCA Checkbox to backtest with DCA. Disable it to backtest without DCA.
Leverage: Input the Leverage you will trade with.
Base Order Size (% Equity): This is the Base order (BO) size to backtest in % of equity.
Safety Order Size (% Equity): This is the Safety order (SO) size to backtest in % of equity.
Number of DCA Orders: This is the maximum amount of DCA orders to place, or total DCA orders.
Price Deviation (% from initial order): This is the percent at which the first safety is placed.
Safety Order Step Scale: This is the scale at which is applied to the deviation for the step calculation to determine next SO placement.
Safety Order Volume Scale: This is the scale at which is applied to the safety orders for the volume calculation to determine SO Volume.
Real world DCA Example:
The process is as follows.
Base Order: This is your initial order size, $100 used for Base Order
Safety Order: This is your first safety order size, which is placed at the deviation. $100 Safety Order, it is good to keep the same size as your BO for your scaling to be effective.
Price deviation: This is the deviation at which your first Safety order is placed. 0.3-0.75% used by most of our members.
Safety Order Volume Scale: This is the scale at which is applied to the safety orders for the volume calculation. Scale of 2 used, which means that SO2 = (SO1) * 2, or $200. This scaling is typical for all following orders and as such SO3 = (SO2) *2, or $400.
Safety Order Step Scale: This is the scale at which is applied to the deviation for the step calculation. This is similar to the volume scale however the last order percentage is added.
Scale of 2 used, which means that SO2 % = ((Deviation) * 2) + (SO1%). (0.5% *2) + (0.5) = 1.5%.
This scaling is typical for all following orders except that the prior deviation is used and as such SO3 = ((Prior%) * 2) + (Deviation). (1.5% * 2) +(0.5%) or 3.5%.
Total SO Number: The calculations will continue going until the last SO. It is helpful to understand the amount of SO’s and scaling determines how efficient your DCA is.
Backtester Outputs include:
Net Profit to display net profit
Daily Net Profit to estimate
Percent Profitable which shows ratio of winning trades to losing trades.
Total Trades
Winning Trades
Losing Trades (only applicable if stoploss is used)
Buy & Hold Return (of the backtested asset) to compare if the strategy used beats buy & hold return.
Avg Trade Time is very helpful to see average trade time.
Max Trade Time is very helpful to see the maximum trade time.
Total Backtested Time will return total backtested time.
Initial Capital which is taken from the Properties tab.
Max amount for Bot Usage which can be helpful to see bot usage.
Leverage Required will show you the leverage required to sustain the DCA configuration.
Total SO Deviation will allow users to see the drop coverage their DCA provides.
Max Spent which is a % of total account spent on one trade.
Max Drawdown which displays the maximum drawdown of any trade.
Max % distance from entry shows the maximum distance price went away from entry prior to the trade closing.
Max SO Used which shows the maximum number of SO's used on a single trade
Avg SO Used which shows the average number of SO's used in all closed trades.
Deals closing with BO Only calculation will show how many trades are closed without DCA.
Deals closing with 1-7 SOs calculation will show how many trades are closed with DCA, and allow for fine-tuning.
Happy Trading!
This script will be effective to backtest and produce the best settings for each timeframe and pair across all STP Scripts.
This will take a lot of the manual work out of backtesting for our users while improving profit potential.
Happy Trading!
LuxAlgo - Backtester (S&O)The S&O Backtester is an innovative strategy script that encompasses features + optimization methods from our Signals & Overlays™ toolkit and combines them into one easy-to-use script for backtesting the most detailed trading strategies possible.
Our Signals & Overlays™ toolkit is notorious for its signal optimization methods such as the 'Optimal Sensitivity' displayed in its dashboard which provides optimization backtesting of the Sensitivity parameter for the Confirmation & Contrarian Signals.
This strategy script allows even more detailed & precise backtests than anything available previously in the Signals & Overlays™ toolkit; including External Source inputs allowing users to use any indicator including our other paid toolkits for take profit & stop loss customization to develop strategies, along with 10+ pre-built filters directly Signals & Overlays™' features.
🔶 Features
Full Sensitivity optimization within the dashboard to find the Best Win rates or Best Profits.
Counter Trade Mode to reverse signals in undesirable market conditions (may introduce higher drawdowns)
Built-in filters for Confirmation Signals w/ Indicator Overlays from Signals & Overlays™.
Built-in Confirmation exit points are available within the settings & on by default.
External Source Input to filter signals or set custom Take Profits & Stop Losses.
Optimization Matrix dashboard option showing all possible permutations of Sensitivity.
Option to Maximize for Winrate or Best Profit.
🔶 Settings
Sensitivity signal optimizations for the Confirmation Signals algorithm
Buy & Sell conditions filters with Indicator Overlays & External Source
Take Profit exit signals option
External Source for Take Profit & Stop Loss
Sensitivity ranges
Backtest window default at 2,000 bars
External source
Dashboard locations
🔶 Usage
Backtests are not necessarily indicative of future results, although a trader may want to use a strategy script to have a deeper understanding of how their strategy responds to varying market conditions, or to use as a tool for identifying possible flaws in a strategy that could potentially be indicative of good or bad performance in the future.
A strategy script can also be useful in terms of it's ability to generate more complete & configurable alerts, giving users the option to integrate with external processes.
In the chart below we are using default settings and built-in optimization parameters to generate the highest win rate.
Results like the above will vary & finding a strategy with a high win rate does not necessarily mean it will persist into the future, however, some indications of a well-optimized strategy are:
A high number of closed trades (100+) with a consistently green equity curve
An equity curve that outperforms buy & hold
A low % max drawdown compared to the Net Profit %.
Profit factor around 1.5 or above
In the chart below we are using the Trend Catcher feature from Signals & Overlays™ as a filter for standard Confirmation Signals + exits on a higher timeframe.
By filtering bullish signals only when the Trend Catcher is bullish, as well as bearish signals for when the Trend Catcher is bearish, we have a highly profitable strategy created directly from our flagship features.
While the Signals & Overlays features being used as built-in filters can generate interesting backtests, the provided External Sources can allow for even more creativity when creating strategies. This feature allows you to use many indicators from TradingView as filters or to trigger take-profit/stop-loss events, even if they aren't from LuxAlgo.
The chart below shows the HyperWave Oscillator from our Oscillator Matrix™ being used for take-profit exit conditions, exiting a long position on a profit when crossing 80, and exiting a short position when crossing 20.
🔶 Counter Trade Mode
Our thesis has always firmly remained to use Confirmation Signals within Signals & Overlays™ as a supportive tool to find trends & use as extra confirmation within strategies.
We included the counter-trade mode as a logical way to use the Confirmation signals as direct entries for longs & shorts within more contrarian trading strategies. Many traders can relate to using a trend-following indicator and having the market not respect its conditions for entries.
This mode directly benefits a trader who is aware that market conditions are generally not-so-perfect trends all the time. Acknowledging this, allows the user to use this to their advantage by introducing countertrend following conditions as direct entries, which tend to perform very well in ranging markets.
The big downfall of using counter-trade mode is the potential for very large max-drawdowns during trending market conditions. We suggest for making a strategy to consider introducing stop-loss conditions that can efficiently minimize max-drawdowns during the process of backtesting your creations.
Sensitivity Optimization
Within the Signals & Overlays™ toolkit, we allow users to adjust the Confirmation Signals with a Sensitivity parameter.
We believe the Sensitivity paramter is the most realistic way to generate the most actionable Confirmation Signals that can navigate various market conditions, and the Confirmation Signals algorithm was designed specifically with this in mind.
This script takes this parameter and backtests it internally to generate the most profitable value to display on the dashboard located in the top right of the chart, as well as an optimization table if users enable it to visualize it's backtesting.
In the image below, we can see the optimization table showing permutations of settings within the user-selected Sensitivity range.
The suggested best setting is given at the current time for the backtesting window that's customizable within the indicator. Optimized settings for technical indicators are not indicative of future results and the best settings are highly likely / guaranteed to change over time.
Optimizing signal settings has become a popular activity amongst technical analysts, however, the real-time beneficial applications of optimizing settings are limited & best described as complicated (even with forward testing).
🔶 Strategy Properties (Important)
We strongly recommend all users to ensure they adjust the Properties within the script settings to be in line with their accounts & trading platforms of choice to ensure results from strategies built are realistic.
🔶 How to access
You can see the Author's Instructions below to learn how to get access on our website.






















