# Alerts ## Backtester Alerts | Buy Alerts | Sell Alerts | | :------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------: | | ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/alerts/long.png) | ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/alerts/short.png) | Users can get alerted for any action executed by a strategy, from opening positions to closing them. The way alerts work is the same across all the Backtester scripts. The message field in the **Alert Messages** setting section of each Backtester allows for the strategy to send a custom alert message depending on the action taken by the strategy, if no messages are set the strategy will send default messages. In order for alerts to return custom user set messages the `{{strategy.order.alert_message}}` should be set on the message field of the Tradingview alert menu. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/alerts/alert.png) Backtester (PAC) does not have Exit Long/Short TP/SL alerts, instead only having Exit Long/Short ## Alerts Placeholders Users can use placeholders in the messages set from the **Alert Messages** setting section to return market data, take profit/stop losses values, chart ticker and timeframe...etc. | Placeholder | Description | | :----------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | |
`{open}`
|
Current opening price
| |
`{high}`
|
Current high price
| |
`{low}`
|
Current low price
| |
`{close}`
|
Current closing price
| |
`{volume}`
|
Current volume
| |
`{time}`
|
Current unix time (in milliseconds)
| |
`{ticker}`
|
Chart ticker (e.g: for BINANCE:BTCUSDT the ticker name is BTCUSDT)
| |
`{prefix}`
|
Ticker prefix (e.g: for BINANCE:BTCUSDT the ticker prefix is BINANCE)
| |
`{timeframe}`
|
Chart timeframe
| |
`{tp}`
|
Take profit value
| |
`{sl}`
|
Stop loss value
| New long entry generated at `{time}` and price `{close}` on `{ticker}{timeframe}` with take profit `{tp}` and stop loss `{sl}` # Forecasting ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/forecasting/settings.png) Being able to anticipate where price might evolve after a trade can be useful to plan potential exit points, set take profits/stop loss as well as knowing when user set ones might get hit...etc. All backtesting toolkits include a forecasting tool able to provide forecasts from the most recent trade executed by the backtester. ## Using Forecasts ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/forecasting/forecasting.png) Forecasts can be enabled from the "FORECAST" settings group by enabling the "Show Forecast" toggle. Each forecast is influenced by the price evolution made during previous respective long and short trades, as such forecasts for long positions are different from the ones of short positions. Users can select the maximum length of forecast using the "Forecasting Length" setting. Because of the forecasting algorithm used, forecasts can have a lower length than the one selected by the user depending on the average bars in trade. Very frequent trades will generally return short price forecasts due to the lack of available data. ### Forecasting Area ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/forecasting/area.png) By default, forecasts are displayed alongside an area, indicating where future prices might evolve. The area extremities can help users potentially determines exit points with there interaction with the price, but can also help reference the performance of a current trade relative to past trades. Areas extremities are representative of past trades performances. For example: * For long positions: A lower extremity not significantly going below the entry price can indicate good past performance for long positions. * For short positions: An upper extremity not significantly going above the entry price can indicate good past performance for short positions. If an area is no longer visible in a point in time of the forecast it means that there is not enough data for that point in time. ### Forecasting Memory Users can control the influence older trades have on the forecast using the "Maximum Forecast Memory" setting, with lower values using a shorter term memory, discarding older information more quickly. Low values of this setting allow obtaining more diverse forecasts for new trades, while higher values will return forecasts less subject to change over time. ### Take Profits Levels From Forecast When forecasts are displayed, users can set take profits using the **nth** percentile of a returned forecast. This can be done from the "TPS & SLS" settings, by selecting "Forecast" in the "Long TP" and/or "Short TP". The numerical setting selected at the right of the drop-down menus determines the percentile used, and should be set within the range \[0, 100] in order to work. Percentiles values can affect the returned levels as follows: * In case of a long trade, a lower set percentile will return take profits closer to the entry price, potentially triggering sooner. * In case of a short trade, a lower set percentile will return take profits further away from the entry price, potentially triggering later. Do note that because forecasts are based on the strategy entries, take profits levels based on it can be subject to repainting, except when using a backtesting window based on a date. # Entry Rules ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/entry/settings.png) Backtester (OSC) allows user to set their own long/short entry rules from features of the Oscillator Matrix™ as well as external indicators. Entry rules can be created separately for both long and short entries, and can be set using up to 8 different user set conditions. Each can enabled by toggling them on using the toggle input on the left of each condition, if the enabled conditions are valid, the strategy will open a corresponding market order. ## Oscillator Matrix™ Conditions Conditions for 6 features of the Oscillator Matrix™ are included. These include: * Money Flow conditions * OverFlow conditions * HyperWave conditions * Reversals conditions * Divergences conditions * Confluence conditions The first dropdown determines the specific condition used for that feature, these can include generic conditional operators such as `Greater Than` or `Crossing`, or conditions proper to certain features such as `Any Bullish` in the Hyperwave conditions. The second input setting allows the user to enter a numerical values, which is used when `Greater Than`, `Lower Than`, `Equal`, `Crossing Over`, `Crossing Under`, or `Crossing` are used. For example if the user wants to go **Long** when the HyperWave oscillator cross over 80 the following settings would be used: ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/entry/example-osc.png) ## External Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/entry/externals.png) Users can use the output of external indicators on the chart as input to set entry conditions. The second dropdown of external condition settings determines which conditional operator to use on both external outputs. These include: * Greater Than * Lower Than * Equal * Crossing Over * Crossing Under * Crossing The third external condition works similarly but instead of comparing two external outputs the condition will compare an external output specified in the condition first dropdown with a user set value in the third dropdown using a conditional operator set on the second dropdown. This last condition is particularly useful for oscillators. Here is an example of the third external condition being set for an RSI crossing over 50. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/entry/example-external.png) ## Using Conditions Together More complex entry rules can be created by using multiple conditions together, this is done thanks to the **Step** dropdown setting on the right of each condition (below each condition for conditions 4 and 5). The *Step* setting is directly related to the Step & Match algorithm and work in two ways: * When two or more conditions have the same step number, both conditions are evaluated. Used to test matching conditions. * When two or more conditions have different step numbers, each conditions will be evaluated in order, testing for the first step and switching to the next step once the previous one is true. When the final step is true the strategy will open a market order. Used to create sequence of conditions. This operation is complementary, as you can create a sequence of conditions with one step consisting of two or more matching conditions as long as they have the same step number. A user wanting to go long when a bullish divergence occurs after any bullish reversal while money flow was bullish (over 50) could do it as follows: ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/example-stepmatch.png) ### Invalidate Step The "Invalidate" step allows to set a condition as an "invalidation condition". When this condition is triggered while a sequence of conditions is incomplete, the sequence will restart at step 1. If multiple steps are set as "Invalidate" any of the conditions being true will reset the sequence of conditions, as such not all of them are required to be true for the sequence of conditions to reset. Let's take an example where we use 2 regular steps and one "Invalidate" step. The position will be opened when step 2 trigger after step 1 has been triggered. Step 1 condition trigger, we will now evaluate step 2 from now on. Invalidation step condition trigger, we reset the sequence and evaluate step 1 just after. ### Invalidation Behaviors Invalidation behaviors allows adding more restrictions to a sequence of conditions, users can use two different invalidation behaviors described below: #### Invalidate On Step 1 The "Invalidate On Step 1" behavior allows to reset an incomplete sequence of conditions when the condition on step 1 trigger. This prevents the first step condition from happening in between other steps of the condition sequence. This behavior is useful when the first step of our sequence of conditions needs to never be repeated during the sequence. Let's take an example where we use 3 regular steps. Step 1 condition trigger, we will now evaluate step 2 from now on. Step 2 condition trigger, we will now evaluate step 3 from now on. Step 1 condition trigger, we start evaluating step 2 from now. #### Invalidate On Any Repeated Step The "Invalidate On Any Repeated Step" behavior allows to reset an incomplete sequence of conditions when a step is triggered such that it does not respect the set order of conditions. This behavior is useful when we want a perfectly ordered sequence of conditions to complete, without any step repeating itself. Let's take an example where we use 3 regular steps. Step 1 condition trigger, we will now evaluate step 2 from now on. Step 2 condition trigger, we will now evaluate step 3 from now on. Step 1 or 2 conditions trigger, we start evaluating step 1 from now. ## No Existing Positions Requirement Users can enable the **Don't Allow Trades Until Closed** setting in order to only open trade when no existing positions are open. This setting allows waiting for a position to be closed before one can be opened. Enabling **Don't Allow Trades Until Closed** for long positions will prevent opening shorts as long as a long position is opened. If this same setting is not enabled for short conditions then shorts can effectively be closed by new long positions. # Exit Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/exits/settings.png) Users can close any position on a profit or loss using specific crossing conditions obtained from external sources. Exits conditions can be enabled in the **EXIT CONDITIONS** settings section. Oscillators are intended to be used as external source when it comes to TP/SL conditions, but users can directly create scripts returning scaled outputs from overlay indicators. ### Exit Take Profit Long/Short take profits exits conditions will exit a long or short position when a set condition is met such that the position exit on a profit. Take profits conditions are triggered if they are toggled on for a specific order (Long/Short) and if the selected external source is either **Crossing**, **Crossing Up**, or **Crossing Down**, **Greater Than**, **Lower Than**, or **Equal** to the numerical value specified by the user. ### Exit Stop Losses Long/Short stop losses exits conditions will exit a long or short order when a set condition is met such that the position exit on a loss. Stop losses conditions are triggered if they are toggled on for a specific order (Long/Short) and if the selected external source is either **Crossing**, **Crossing Up**, or **Crossing Down**, **Greater Than**, **Lower Than**, or **Equal** to the numerical value specified by the user. ### Time Exits Time exits allow users to exit trade from a specific time of the day. Note that trades are still exited at the opening of the next bar. The timezone is the same as the one of the chart symbol. ### Placeholders ![Exit Long Take Profit when closing price cross the upper Bollinger band extremity](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/osc/exits/placeholder.png) Users who do not wish to use a numerical value to evaluate a condition with an external source may use a placeholder instead, which allows using prices. The following placeholders are supported: * `open` : Opening price * `high` : High price * `low` : Low price * `close` : Closing price * `hl2` : Median price * `ohlc4` : Average price * `hlc3` : Typical price * `hlcc4` : Weighted price ## Partial Exits ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/partial.png) Users can exit a percentage of an existing position by specifying a percentage lower than 100%. This can lead to sequential exit, with reduced exposure each time an exit is triggered. # Introduction Backtester (OSC) is a script that allows users to perform backtests using features from our [Oscillator Matrix™](/docs/toolkits/oscillator-matrix/introduction) toolkit. Users can create their own entry & exit conditions as well as control take-profit and stop-loss placement. Each core component of the backtester are described in the following pages: # Backtest Parameters The Backtester (OSC) use the following default properties: | Property | Default | Description | | ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Backtesting Window | Bars | Determines how the backtesting interval is set. If `Bars` is selected the most recent specified amount (in `Window (Bars)`) will be used to backtest the strategy. If `Date` is selected the interval will be set using the specified starting and ending dates, while using "Entire History" will use all the available historical data | | Window (Bars) | 2000 | Amount of the most recent bars used to backtest the strategy if `Bars` is selected in `Backtesting Window` | | Window Start | 2024-01-01 00:00 | Starting date of the backtesting strategy if `Date` is selected in `Backtesting Window` | | Window End | 2024-01-01 00:00 | Ending date of the backtesting strategy if `Date` is selected in `Backtesting Window` and if the `Window End` toggle is enabled | | Initial Capital | 10 000 | Initital amount of funds available at the start of the backtest | | Base Currency | Default | Currency used for performing the backtest, backtest statistics will be expressed using this curreny. If `Default` is selected the symbol currency is used | | Order Size | 1 Contract | Determines the amount of contracts/currency to buy or sell, can be expressed in contracts, currency, or percent of equity | | Commission | 0% | Fees paid per clotured trades, can be expressed as currency per contracts, currency per order, or % of the total transation value | | Margin for long position | 0% | Equity percentage required to fund a position | | Margin for short position | 0% | Equity percentage required to fund a position | These should be adjusted to return more precise and accurate results of the real performance of a trading strategy. # Disclaimer Backtests are not indicative of future results. Backtesting strategies on synthetic data does not return representative results of a strategy. Backtests should be performed on charts returning real closing prices. See [here](https://www.tradingview.com/script/q9laJNG9-Backtesting-on-Non-Standard-Charts-Caution-PineCoders-FAQ/) for more information. *CFTC Rule 4.41 - Hypothetical or Simulated performance results have certain limitations, unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not been executed, the results may have under-or-over compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profit or losses similar to those shown.* # Take Profit & Stop Loss ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/tpsl.png) Users can set take profits and stop losses orders allowing a certain degree of money management in the backtest. Take profits and stop loss orders can be enabled and adjusted from the **FIXED TPS & SLS** settings section. Take profits and stop losses orders are placed relative to the price preceding a trade, and might not be filled at the exact price set by the user. ## TP/SL Options Take profits and stop losses for specific orders can be enabled from the toggles present in their settings section. Take profits and stop losses can be set using various methods described below: | Option | Description | | :-----------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | Price |
Set the take profit/stop loss orders at the specified price.
| | Currency |
Set the take profit/stop loss orders a specified amount of currency away from the closing price preceding the entry of a long/short order.
| | Ticks |
Set the take profit/stop loss orders a specified amount of ticks away from the closing price preceding the entry of a long/short order.
| | % |
Set the take profit/stop loss orders a specified percentage away from the closing price preceding the entry of a long/short order.
| | ATR |
Set the take profit/stop loss orders *N* average true ranges away from the closing price preceding the entry of a long/short order, where *N* is a specified multiplier.
| | Forecast |
(Only available for take profits orders) Use a percentile of a returned forecast to set take profits. Forecasts must be enabled in order for this to work.
| | Trailing Stop |
(Only available for stop loss orders) Enable a percentage based trailing stop. A position will be exited if price reach the trailing stop.
| The average true range used to set take profits/stop losses orders make use of a period of 200 bars. ### Trailing Stop ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/trailing.png) Users can use a percentage based trailing stop to exit positions. The trailing stop will move in the direction of interest if its distance with the low price(in case of long positions) or high price (in case of short positions) is greater than the specified percentage. ### Take Profits Levels From Forecast When forecasts are displayed, users can set take profits using the **nth** percentile of a returned forecast. This can be done from the "TPS & SLS" settings, by selecting "Forecast" in the "Long TP" and/or "Short TP". The numerical setting selected at the right of the drop-down menus determines the percentile used, and should be set within the range \[0, 100] in order to work. Percentiles values can affect the returned levels as follows: * In case of a long trade, a lower set percentile will return take profits closer to the entry price, potentially triggering sooner. * In case of a short trade, a lower set percentile will return take profits further away from the entry price, potentially triggering later. Do note that because forecasts are based on the strategy entries, take profits levels based on it can be subject to repainting, except when using a backtesting window based on a date. # Entry Rules Backtester (PAC) allows users to set their own long/short entry rules from price action related concepts as well as external indicators. Entry rules can be built as sequences of conditions, matching conditions, or a mix of both. More details are provided in the section below. Entry rules can be created separately for both long and short entries, and can be set using up to 6 different user set conditions. Each can enabled by toggling them on using the toggle input on the left of each condition, if the enabled conditions are valid, the strategy will open a corresponding market order. Three types of distinct conditions are available, each described in the sections below. ## Price Action Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/pac-settings.png) Conditions 1, 2, and 3 work the same way, and allow using conditions from market structures, volumetric order blocks, imbalances, and liquidity grabs. The first dropdown includes options: *Bullish* and *Bearish*, and determines the origin of the selected condition in the second dropdown. The second dropdown includes the list of price action related conditions, these include: | Condition | Description | | :-----------------: | :------------------------------------------------------: | | CHoCH or BOS | Triggered on a change of character or break of structure | | CHoCH | Triggered on a change of character | | BOS | Triggered on a break of structure | | Mitigated OB | Triggered once price mitigates an order block | | Within OB | Triggered if price is within the area of an order block | | Entered OB | Triggered once price enters the area of an order block | | Exit OB | Triggered once price exits the area of an order block | | Entered Imbalance | Triggered once price enters the area of an imbalance | | Within Imbalance | Triggered if price is within the area of an imbalance | | Mitigated Imbalance | Triggered once price mitigates an imbalance | | Exit Imbalance | Triggered once price exits an imbalance | | Liquidity Grab | Triggered once a liquidity grab is detected | For example if the user wants to go **Long** when a new **Bullish** **CHoCH** the following settings would be used: ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/example-pac.png) User can change the settings of each price action concept by scrolling down the settings, each concept has its own setting group. To learn more about each concept see: [Market Structures](/docs/toolkits/price-action-concepts/market-structures) [Order Blocks](/docs/toolkits/price-action-concepts/order-blocks) [Imbalances](/docs/toolkits/price-action-concepts/imbalances) [Liquidity Grabs](/docs/toolkits/price-action-concepts/liquidity) ## External Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/external-settings.png) Users can use the output of external indicators on the chart as input to set entry conditions. The second dropdown of external condition settings determines which conditional operator to use on both external outputs. These include: * Greater Than * Lower Than * Equal * Crossing Over * Crossing Under * Crossing The third external condition works similarly but instead of comparing two external outputs the condition will compare an external output specified in the condition first dropdown with a user set value in the third dropdown using a conditional operator set on the second dropdown. This last condition is particularly useful for oscillators. Here is an example of the third external condition being set for price crossing over a simple moving average. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/example-external.png) ## Session Condition ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/session.png) Condition 6 is a session condition, with an active status if current time is within the specified session interval. Session timezone is the same as the one of the chart symbol exchange (UTC for cryptocurrencies) ## Using Conditions Together More complex entry rules can be created by using multiple conditions together, this is done thanks to the **Step** dropdown setting on the right of each condition (below each condition for conditions 4 and 5). The *Step* setting is directly related to the Step & Match algorithm and work in two ways: * When two or more conditions have the same step number, both conditions are evaluated. Used to test matching conditions. * When two or more conditions have different step numbers, each conditions will be evaluated in order, testing for the first step and switching to the next step once the previous one is true. When the final step is true the strategy will open a market order. Used to create sequence of conditions. This operation is complementary, as you can create a sequence of conditions with one step consisting of two or more matching conditions as long as they have the same step number. A user wanting to go long when a bullish break of structure occurs after price mitigated a bearish order block while price was above its 20 period moving average could do it as follows: ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/entry/example-stepmatch.png) ### Invalidate Step The "Invalidate" step allows to set a condition as an "invalidation condition". When this condition is triggered while a sequence of conditions is incomplete, the sequence will restart at step 1. If multiple steps are set as "Invalidate" any of the conditions being true will reset the sequence of conditions, as such not all of them are required to be true for the sequence of conditions to reset. Let's take an example where we use 2 regular steps and one "Invalidate" step. The position will be opened when step 2 trigger after step 1 has been triggered. Step 1 condition trigger, we will now evaluate step 2 from now on. Invalidation step condition trigger, we reset the sequence and evaluate step 1 just after. ### Invalidation Behaviors Invalidation behaviors allows adding more restrictions to a sequence of conditions, users can use two different invalidation behaviors described below: #### Invalidate On Step 1 The "Invalidate On Step 1" behavior allows to reset an incomplete sequence of conditions when the condition on step 1 trigger. This prevents the first step condition from happening in between other steps of the condition sequence. This behavior is useful when the first step of our sequence of conditions needs to never be repeated during the sequence. Let's take an example where we use 3 regular steps. Step 1 condition trigger, we will now evaluate step 2 from now on. Step 2 condition trigger, we will now evaluate step 3 from now on. Step 1 condition trigger, we start evaluating step 2 from now. #### Invalidate On Any Repeated Step The "Invalidate On Any Repeated Step" behavior allows to reset an incomplete sequence of conditions when a step is triggered such that it does not respect the set order of conditions. This behavior is useful when we want a perfectly ordered sequence of conditions to complete, without any step repeating itself. Let's take an example where we use 3 regular steps. Step 1 condition trigger, we will now evaluate step 2 from now on. Step 2 condition trigger, we will now evaluate step 3 from now on. Step 1 or 2 conditions trigger, we start evaluating step 1 from now. ## No Existing Positions Requirement Users can enable the **Don't Allow Trades Until Closed** setting in order to only open trade when no existing positions are open. This setting allows waiting for a position to be closed before one can be opened. Enabling **Don't Allow Trades Until Closed** for long positions will prevent opening shorts as long as a long position is opened. If this same setting is not enabled for short conditions then shorts can effectively be closed by new long positions. # Exit Rules The strategy can include custom long/short orders exits rules. These can be created in a similar way than entry rules by using two available conditions, and can evaluate price action features as well as the output of external indicators on your chart. ## Price Action Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/pac/exits/settings.png) Conditions *Exit Long 1* and *Exit Short 1* allow using conditions from market structures, volumetric order blocks, and imbalances. The first dropdown includes options: *Bullish* and *Bearish* and determines the origin of the selected condition in the second dropdown. The second dropdown includes the list of price action related conditions, these include: | Condition | Description | | :-----------------: | :------------------------------------------------------: | | CHoCH or BOS | Triggered on a change of character or break of structure | | CHoCH | Triggered on a change of character | | BOS | Triggered on a break of structure | | Mitigated OB | Triggered once price mitigates an order block | | Within OB | Triggered if price is within the area of an order block | | Entered OB | Triggered once price enters the area of an order block | | Entered Imbalance | Triggered once price enters the area of an imbalance | | Within Imbalance | Triggered if price is within the area of an imbalance | | Mitigated Imbalance | Triggered once price mitigates an imbalance | ## External Conditions Conditions *Exit Long 2* and *Exit Short 2* allow the user to use the output of external indicators on the chart as input for setting exit conditions. These allow setting a condition based on two different external indicators output, with The first and third dropdowns determining which external output to use. The second dropdown determines which conditional operator to use on both external outputs. These include: * Greater Than * Lower Than * Equal * Crossing Over * Crossing Under * Crossing ## Using Conditions Together More complex exit rules can be created by using multiple conditions together, this is done thanks to the **Step** dropdown setting on the right of each condition (below each condition for *Exit Long 2* and *Exit Short 2*). The *Step* setting is directly related to the Step & Match algorithm and works in two ways: * When two or more conditions have the same step number, both conditions are evaluated. Used to test matching conditions. * When two or more conditions have different step numbers, each condition will be evaluated in order, testing for the first step and switching to the next step once the previous one is true. When the final step is true the strategy will open a market order. Used to create sequence of conditions. This operation is complementary, as you can create a sequence of conditions with one step consisting of two or more matching conditions as long as they have the same step number. ## Time Exits Time exits allow users to exit trade from a specific time of the day. Note that trades are still exited at the opening of the next bar. The timezone is the same as the one of the chart symbol. ## Partial Exits ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/partial.png) Users can exit a percentage of an existing position by specifying a percentage lower than 100%. This can lead to sequential exit, with reduced exposure each time an exit is triggered. ## Only Exit On A Profit Enabling "Only Exit On A Profit" allows only triggering an exit if this exit leads to a profit, effectively preventing any exit that would lead to a loss. This can be useful to increase winrates of strategies. Enabling this setting alongside "Dont allow trades until closed" can prevent any losing trade from being exited, leading to a theoretical 100% winrate without a stop-loss. Do note however that a unprofitable trade can be held for an unlimited amount of time, leading to unrealistic scenarios. # Introduction Backtester (PAC) is a script that allows users to perform advanced backtests on all features from our [Price Action Concepts™](../../docs/toolkits/price-action-concepts/introduction) toolkit. Users can create their own entry & exit conditions as well as control take-profit & stop-loss placement. Each core components of the system is described on the following pages: # Backtest Parameters The Backtester (PAC) uses the following default properties: | Property | Default | Description | | ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Backtesting Window | Bars | Determines how the backtesting interval is set. If `Bars` is selected the most recent specified amount (in `Window (Bars)`) will be used to backtest the strategy. If `Date` is selected the interval will be set using the specified starting and ending dates, while using "Entire History" will use all the available historical data | | Window (Bars) | 2000 | Amount of the most recent bars used to backtest the strategy if `Bars` is selected in `Backtesting Window` | | Window Start | 2024-01-01 00:00 | Starting date of the backtesting strategy if `Date` is selected in `Backtesting Window` | | Window End | 2024-01-01 00:00 | Ending date of the backtesting strategy if `Date` is selected in `Backtesting Window` and if the `Window End` toggle is enabled | | Initial Capital | 10 000 | Initital amount of funds available at the start of the backtest | | Base Currency | Default | Currency used for performing the backtest, backtest statistics will be expressed using this curreny. If `Default` is selected the symbol currency is used | | Order Size | 1 Contract | Determines the amount of contracts/currency to buy or sell, can be expressed in contracts, currency, or percent of equity | | Commission | 0% | Fees paid per clotured trades, can be expressed as currency per contracts, currency per order, or % of the total transaction value | | Margin for long position | 0% | Equity percentage required to fund a position | | Margin for short position | 0% | Equity percentage required to fund a position | These should be adjusted to return more precise and accurate results of the real performance of a trading strategy. # Disclaimer Backtests are not indicative of future results. Backtesting strategies on synthetic data does not return representative results of a strategy. Backtests should be performed on charts returning real closing prices. See [here](https://www.tradingview.com/script/q9laJNG9-Backtesting-on-Non-Standard-Charts-Caution-PineCoders-FAQ/) for more information. *CFTC Rule 4.41 - Hypothetical or Simulated performance results have certain limitations, unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not been executed, the results may have under-or-over compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profit or losses similar to those shown.* # Take Profit & Stop Loss ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/tpsl.png) Users can set take profits and stop losses orders allowing a certain degree of money management in the backtest. Take profits and stop loss orders can be enabled and adjusted from the **FIXED TPS & SLS** settings section. Take profits and stop losses orders are placed relative to the price preceding a trade, and might not be filled at the exact price set by the user. ## TP/SL Options Take profits and stop losses for specific orders can be enabled from the toggles present in their settings section. Take profits and stop losses can be set using various methods described below: | Option | Description | | :-----------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | Price |
Set the take profit/stop loss orders at the specified price.
| | Currency |
Set the take profit/stop loss orders a specified amount of currency away from the closing price preceding the entry of a long/short order.
| | Ticks |
Set the take profit/stop loss orders a specified amount of ticks away from the closing price preceding the entry of a long/short order.
| | % |
Set the take profit/stop loss orders a specified percentage away from the closing price preceding the entry of a long/short order.
| | ATR |
Set the take profit/stop loss orders *N* average true ranges away from the closing price preceding the entry of a long/short order, where *N* is a specified multiplier.
| | Forecast |
(Only available for take profits orders) Use a percentile of a returned forecast to set take profits. Forecasts must be enabled in order for this to work.
| | Trailing Stop |
(Only available for stop loss orders) Enable a percentage based trailing stop. A position will be exited if price reach the trailing stop.
| The average true range used to set take profits/stop losses orders make use of a period of 200 bars. ### Trailing Stop ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/trailing.png) Users can use a percentage based trailing stop to exit positions. The trailing stop will move in the direction of interest if its distance with the low price(in case of long positions) or high price (in case of short positions) is greater than the specified percentage. ### Take Profits Levels From Forecast When forecasts are displayed, users can set take profits using the **nth** percentile of a returned forecast. This can be done from the "TPS & SLS" settings, by selecting "Forecast" in the "Long TP" and/or "Short TP". The numerical setting selected at the right of the drop-down menus determines the percentile used, and should be set within the range \[0, 100] in order to work. Percentiles values can affect the returned levels as follows: * In case of a long trade, a lower set percentile will return take profits closer to the entry price, potentially triggering sooner. * In case of a short trade, a lower set percentile will return take profits further away from the entry price, potentially triggering later. Do note that because forecasts are based on the strategy entries, take profits levels based on it can be subject to repainting, except when using a backtesting window based on a date. # Entry Rules ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/entry/settings.png) Backtester (S\&O) makes use of various features within the Signals & Overlays™ toolkit such as [Confirmation and Contrarian Signals](/docs/toolkits/signals-overlays/signals) or [Overlays indicators](/docs/toolkits/signals-overlays/indicator-overlay) to specify entry rules for the strategy. More information regarding signal settings can be found [here](/docs/toolkits/signals-overlays/signal-settings) By default, backtesting is performed using the most recent 2000 bars, this value can be changed from the **Backtest Window (Bars)** setting, the user can also perform a backtest between two specified dates using the "Date" options in "Backtesting Window", or using all the available chart history by using "Entire History" (note that this will not allow the optimizer to run). ## Long/Short Entry Conditions Users can specify their strategy respective long/short entry rules from the **LONG CONDITIONS** and **SHORT CONDITIONS** settings sections, using the following available options: | Condition | Options | Options (2) | Description | | :------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | Signal Type | | |
Enter a position on the occurrence of the user specified signal. Users can select between the Confirmation and Contrarian signals algorithm (Long/Short conditions can use different algorithms), these are affected by the selected Sensitivity and Autopilot frequency settings.

Selecting "Bullish Classifier" or "Bearish Classifier" will open positions on the occurence of a signal with the same classification as the one specified by the user on the rightmost input.
| | Reversal Zones | | |
Enter a position if price is above/under or within the specified extremities.
| | Smart Trail | | |
Enter a position if the Smart Trail switch bullish/bearish or if it is currently bullish or bearish.
| | Trend Tracer | | |
Enter a position if the Trend Tracer switch bullish/bearish or if it is currently bullish or bearish.
| | Trend Catcher | | |
Enter a position if the Trend Catcher switch bullish/bearish or if it is currently bullish or bearish.
| | Neo Cloud | | |
Enter a position if the Neo Cloud switch bullish/bearish or if it is currently bullish or bearish.
| | Trend Strength | | |
Enter a position if the Trend Strength is greater or lower than the specified value.
| | Session | Session interval | |
Enter a position if it is within the user specified session interval.
| | External Condition 1 | | |
Enter a position if the tested condition between the first specified external source and second one is true.
| | External Condition 2 | | |
Enter a position if the tested condition between the first specified external source and second one is true.
| | External Condition 3 | | |
Enter a position if the tested condition between the first specified external source and second one is true. Users can use price placeholers such as open, high, low, close, hl2, ohlc4, hlc3, and hlcc4 instead of a numerical value in the second source input.
| Multiple conditions can be enabled at the same time, in which case the backtester will require all conditions to be true in order to execute an order. If the **Exit On Signal** setting is enabled, existing positions will be exited on the occurrence of a confirmation/contrarian signal if enabled. ## No Existing Positions Requirement Users can enable the **Don't Allow Trades Until Closed** setting in order to only open trade when no existing positions are open. This setting allows waiting for a position to be closed before one can be opened. Enabling **Don't Allow Trades Until Closed** for long positions will prevent opening shorts as long as a long position is opened. If this same setting is not enabled for short conditions then shorts can effectively be closed by new long positions. # Exit Conditions ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/exits/settings.png) Users can close any position on a profit or loss using specific crossing conditions obtained from a user selected external source and/or by using our builtins exits. Exits conditions can be enabled in the **EXIT CONDITIONS** settings section. ## External Exits ### Exit Take Profit Long/Short take profits exits conditions will exit a long or short position when a set condition is met such that the position exit on a profit. Take profits conditions are triggered if they are toggled on for a specific order (Long/Short) and if the selected external source is either **Crossing**, **Crossing Up**, or **Crossing Down**, **Greater Than**, **Lower Than**, or **Equal** to the numerical value specified by the user. ### Exit Stop Losses Long/Short stop losses exits conditions will exit a long or short order when a set condition is met such that the position exit on a loss. Stop losses conditions are triggered if they are toggled on for a specific order (Long/Short) and if the selected external source is either **Crossing**, **Crossing Up**, or **Crossing Down**, **Greater Than**, **Lower Than**, or **Equal** to the numerical value specified by the user. ### Placeholders ![Exit Long Take Profit when closing price cross the upper Bollinger band extremity](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/exits/placeholder.png) Users who do not wish to use a numerical value to evaluate a condition with an external source may use a placeholder instead, which allows using price data. The following placeholders are supported: * `open` : Opening price * `high` : High price * `low` : Low price * `close` : Closing price * `hl2` : Median price * `ohlc4` : Average price * `hlc3` : Typical price * `hlcc4` : Weighted price ## Builtins Exits Builtin exits are included for the selected signal algorithm, these are the same as the ones present in the Signals & Overlays™ toolkit and can be used in the Backtester to exit positions. Builtin exits will always exit a position on a profit. ## Time Exits Time exits allow users to exit trade from a specific time of the day. Note that trades are still exited at the opening of the next bar. The timezone is the same as the one of the chart symbol. ## Exit On Opposite Signal Enabling the **Exit On Opposite Signal** setting will close any position once an opposite signal is generated (if enabled). ## Partial Exits ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/partial.png) Users can exit a percentage of an existing position by specifying a percentage lower than 100%. This can lead to sequential exits, with reduced exposure each time an exit is triggered. # Introduction Backtester (S\&O) is a script that allows users to perform backtests using features from our [Signals & Overlays™](/docs/toolkits/signals-overlays/introduction) toolkit. Many options are included to provide more complete & diverse backtests to the user, and each core component of the system are described in the following pages: # Backtest Parameters The Backtester (S\&O) use the following default properties: | Property | Default | Description | | ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Backtesting Window | Bars | Determines how the backtesting interval is set. If `Bars` is selected the most recent specified amount (in `Window (Bars)`) will be used to backtest the strategy. If `Date` is selected the interval will be set using the specified starting and ending dates, while using "Entire History" will use all the available historical data | | Window (Bars) | 2000 | Amount of the most recent bars used to backtest the strategy if `Bars` is selected in `Backtesting Window` | | Window Start | 2024-01-01 00:00 | Starting date of the backtesting strategy if `Date` is selected in `Backtesting Window` | | Window End | 2024-01-01 00:00 | Ending date of the backtesting strategy if `Date` is selected in `Backtesting Window` and if the `Window End` toggle is enabled | | Initial Capital | 10 000 | Initital amount of funds available at the start of the backtest | | Base Currency | Default | Currency used for performing the backtest, backtest statistics will be expressed using this curreny. If `Default` is selected the symbol currency is used | | Order Size | 1 Contract | Determines the amount of contracts/currency to buy or sell, can be expressed in contracts, currency, or percent of equity | | Commission | 0% | Fees paid per clotured trades, can be expressed as currency per contracts, currency per order, or % of the total transation value | | Margin for long position | 0% | Equity percentage required to fund a position | | Margin for short position | 0% | Equity percentage required to fund a position | These should be adjusted to return more precise and accurate results of the real performance of a trading strategy. # Disclaimer Backtests are not indicative of future results. Backtesting strategies on synthetic data does not return representative results of a strategy. Backtests should be performed on charts returning real closing prices. See [here](https://www.tradingview.com/script/q9laJNG9-Backtesting-on-Non-Standard-Charts-Caution-PineCoders-FAQ/) for more information. *CFTC Rule 4.41 - Hypothetical or Simulated performance results have certain limitations, unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not been executed, the results may have under-or-over compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profit or losses similar to those shown.* # Optimization ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/optimization/optimization.png) When signals are used to perform a backtest, the Backtester is able to return the **Sensitivity** setting that maximized a user specified statistic such as net profit, winrate, profit factor, or maximum drawdown. Certain settings will disable the optimization procedure, such as disabling the backtesting window or using autopilot. ## Procedure ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/optimization/settings.png) Users can choose to optimize net profit, winrate, profit factor, potential ratio $(\varphi)$ or maximum drawdown depending on the options selected from the **Optimize** drop-down menu within the **OPTIMIZER** settings section. The overall profit or loss achieved (higher is better). The percentage of winning trades (higher is better). The gross profits over gross losses generated by the strategy (higher is better). A value higher than 1 suggest that the strategy generated more profits than losses. The greatest decline of the strategy relative to the highest net profits (Lower is better). A lower value is indicative of a strategy less subject to large downside variability. The ratio between the sum of maximum potential profits you could have made in your trades over the sum of maximum potential losses you could have made in your trades (higher is better). Higher values indicates that the entries generated by the strategy have the potential to lead to larger profits compared to losses. Lower values however might be indicative of a more risky strategy, with more frequent exposure to larger potential losses. If the backtest with the highest potential ratio is not the one with the highest potential profit then it can be indicative of a strategy with more potential with a tendency to exit trades potentially too late. Optimization can be performed on any given range for the **Sensitivity** setting. Optimizing the **Sensitivity** setting using a large range of values and/or using a large backtest window can increase computation time, potentially returning time-out errors. Results from the optimizer can vary from the backtest results returned by the strategy, this is due to the difference between how the Tradingview backtesting engine opens positions compared to the internal engine used to perform optimization within the script. Using different signal algorithms for long/short entry rules can return very different results from the optimizer compared to backtesting results. Take profits and/or stop losses orders are taken into account by the internal engine if these are enabled, however, there can still exist a great degree of disparity between results from the backtest and results returned by the optimizer. ### Warmup Period The warmup period allows the script to compute the signal algorithms *n* bars prior to the backtesting window, where *n* is the selected warmup period. This allows to backtest signals that are closer to the ones returned by the Signals & Overlays™ toolkit, returning more accurate optimized settings as a result. ## Optimization Dashboard ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/optimization/dashboard.png) Users can see the backtests results for sensitivity values within the specified optimization range on a dashboard shown on the top-right of their chart. This dashboard presents results in descending order, with results associated to the best optimized statistic appearing on top. ### Simple ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/optimization/simple.png) Users that do not wish to have a large dashboard on the chart can use the **Simple** optimization dashboard. This dashboard will only return the **Sensitivity** setting that optimize the selected statistic alongside the statistic of interest. ### Display ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/s-o/optimization/display.png) Users can control the location as well as hide the optimization dashboard on the chart from the **DISPLAY** settings section. A dashboard location set to **None** will hide it from the chart as well as disable the optimizer. # Take Profit & Stop Loss ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/tpsl.png) Users can set take profits and stop losses orders allowing a certain degree of money management in the backtest. Take profits and stop loss orders can be enabled and adjusted from the **FIXED TPS & SLS** settings section. Take profits and stop losses orders are placed relative to the price preceding a trade, and might not be filled at the exact price set by the user. ## TP/SL Options Take profits and stop losses for specific orders can be enabled from the toggles in their settings section. Take profits and stop losses can be set using various methods described below: | Option | Description | | :-----------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | Price |
Set the take profit/stop loss orders at the specified price.
| | Currency |
Set the take profit/stop loss orders a specified amount of currency away from the closing price preceding the entry of a long/short order.
| | Ticks |
Set the take profit/stop loss orders a specified amount of ticks away from the closing price preceding the entry of a long/short order.
| | % |
Set the take profit/stop loss orders a specified percentage away from the closing price preceding the entry of a long/short order.
| | ATR |
Set the take profit/stop loss orders *N* average true ranges away from the closing price preceding the entry of a long/short order, where *N* is a specified multiplier.
| | Forecast |
(Only available for take profits orders) Use a percentile of a returned forecast to set take profits. Forecasts must be enabled in order for this to work.
| | Trailing Stop |
(Only available for stop loss orders) Enable a percentage-based trailing stop. A position will be exited if the price reaches the trailing stop.
| The average true range used to set take profits/stop losses orders uses a period of 200 bars. ### Trailing Stop ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/backtesters/trailing.png) Users can use a percentage-based trailing stop to exit positions. The trailing stop will move in the direction of interest if its distance with the low price (in case of long positions) or high price (in case of short positions) is greater than the specified percentage. ### Take Profits Levels From Forecast When forecasts are displayed, users can set take profits using the **nth** percentile of a returned forecast. This can be done from the "TPS & SLS" settings, by selecting "Forecast" in the "Long TP" and/or "Short TP". The numerical setting selected at the right of the drop-down menus determines the percentile used, and should be set within the range \[0, 100] in order to work. Percentiles values can affect the returned levels as follows: * In case of a long trade, a lower set percentile will return take profits closer to the entry price, potentially triggering sooner. * In case of a short trade, a lower set percentile will return take profits further away from the entry price, potentially triggering later. Do note that because forecasts are based on the strategy entries, take profits levels based on it can be subject to repainting, except when using a backtesting window based on a date. # FAQ Get answers to frequently asked questions including how to get access, product questions, and everything you need to know about billing. ## Access Sign up to any plan on [our website](https://luxalgo.com). After purchasing a subscription, you will be prompted to **connect your accounts** & get instant access. If you are having trouble, you can always email [support@luxalgo.com](mailto:support@luxalgo.com) with your TradingView & Discord usernames and our support team will grant you full access right away. The **Premium Plan** is the most popular choice since it works for any trading style and includes the full set of our Signals & Overlays™, Oscillator Matrix™, and Price Action Concepts™ toolkits & screeners. Choose the Essential Plan for simple features like support/resistance, trend lines, patterns and more. This plan is also great for serious traders who just want to speed up their analysis with our Price Action Concepts™ toolkit & screener. Choose the Ultimate Plan if you're a data-driven trader. It has 3 backtesters that allow you to backtest all of our toolkits seamlessly. Make sure the username you used to connect your TradingView account is correct. If so, **refresh your browser/app** and then check your your Indicators --> Invite-only scripts folder on TradingView again. If you just created a TradingView account as you signed up for a LuxAlgo core platform subscription, it may take 5 - 10 minutes to be indexed in TradingView's userbase first. Please wait and then try entering your username again within our Connect Accounts user portal. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/faq/image521.png) If you still don't have access after this, please send an email to [support@luxalgo.com](mailto:support@luxalgo.com) or message us on our website with your email & TradingView username and our support team will grant you full access right away. ## Products All of our exclusive tools in our core platform subscriptions function on any market available on TradingView such as stocks, crypto, forex, and commodities on all timeframes including 1m, 5m, 15m, 1h, 4H, 1D, etc. The tools we provide on every plan can hypothetically fit any style of trading (scalping, swing trading, investing, etc) for finding market insights. There is no specific win rate applicable to mention regarding our signals due to the way they were designed & intended to be used as conlfuence in your analysis. We offer two signal modes; Confirmation (most popular) and Contrarian to help users get optimal signals for their trading style. Their intended usage is meant to form confluence within your technical analysis and they are not meant to be followed blindly. Past performance is not necessarily indicative of future results. All features within our toolkits do **not** repaint. Everything appears in real-time and are confirmed & permanent on the chart once the candle a signal was generated on has closed. Repainting is where past results of an indicator or a signal change based on data in the future. Various indicators have this behavior for useful purposes including only a small few of our hundreds of free indicators, not any of our paid indicators. Within our Signals & Overlays toolkit, any signal is confirmed only once the candle is closed. This means a signal could appear on your chart but not be confirmed until that candle is closed and the next candle has started. Our alerts in Discord will **never** notify you on any signal until the candle has closed and confirmed it. If you're adding alerts for our toolkits within TradingView, make sure to always select the "Once per bar close" configuration. You don't need to upgrade your TradingView account, our exclusive tools work with 100% functionality on the basic plan of TradingView (free). [You can sign up for free here](https://www.tradingview.com/gopro/?share_your_love=LuxAlgo). Yes, our Essential & Premium plans are absolutely great for beginners. Every plan we offer comes with many tutorials as well as access to our highly active community where users can get 24/7 support, discuss strategies, & go through daily analysis amongst each other using LuxAlgo. Our Ultimate Plan was specifically designed for data-driven traders who want to do more advanced backtesting. We designed our exclusive tools as a comprehensive suite to use to for discretionary analysis, however, you could hypothetically use third-party platforms to create automated strategies via webhooks to automate trades. We do not provide resources directly for this as we believe & promote indicators are best used as supportive tools for decison making. Our core subscription plans with our exclusive tools work only on TradingView (free web-based charting platform) and you can trade on any platform in real-time based on those charts. We do offer free tools for MetaTrader 4/5 via the LuxAlgo Library, however, our exclusive tools specifically work on TradingView. Yes, TradingView supports real-time data for the majority of tickers you can find on the platform. Only a small portion of them (mostly futures contracts) require a small monthly fee to access real-time data. Just as much as we pride ourselves as the world's largest provider of trading indicators, we pride ourselves as having the most innovative trading products in the world. Our exclusive tools have deeper customization and were solely designed from years of user-feedback to give the most professional workflows possible to help you as a trader. Price action traders who like to keep things simple benefit from our Essential plan, strong technical traders love our Premium plan for all of our toolkits + screeners, and the data-driven traders seek our Ultimate plan for our advanced backtesting capabilities. This error message appears when an user does not have access to the indicator. If you've already registered your TradingView username within our Connect Accounts portal and you're seeing this message, refresh your browser or app and make sure you're logged in on the TradingView profile you entered. If that still doesn't work, email [support@luxalgo.com](mailto:support@luxalgo.com) your TradingView username & you'll be granted access right away. If you have not signed up with us, you'll see this error when trying to add our premium indicators to your chart. You can get instant access [here](https://luxalgo.com/pricing). This error generally occurs when TradingView can't handle script loads under high traffic. This error can appear when a high number of features are enabled. Changing settings within the indicators, or hiding/unhiding it will make the script recalculate and potentially fix the issue. We are always trying to improve the performance of the toolkit in order to limit these issues. This error generally occurs when a TradingView study exceeds the memory limit fixed by TradingView. This error can't be directly prevented and will generally be returned when using anything below the 1 minute timeframe. We recommend users to stay with minute and higher timeframes to avoid potential errors with our premium toolkits. ## Billing You can cancel your subscription anytime by logging into your account on [our website](https://luxalgo.com) or by simply reaching out to [support@luxalgo.com](mailto:support@luxalgo.com) and we will assist you right away the same day! Once your subscription has been canceled, you will have access for the rest of the time in the plan you purchased and you will not be charged again. You can re-activate a subscription that you previously cancelled by purchasing a plan again on our [pricing page](https://luxalgo.com/pricing). Once you select the plan you want to subscribe back with, make sure to login to the same account you used with your previous subscription. You can upgrade your subscription by logging in on [our website](https://luxalgo.com/pricing). Once logged in, select your plan of choice to upgrade to and you will see a pop-up modal with the details. We automatically convert any remaining time into a value of days on your new plan so you have a longer period of time on your newly upgraded subscription. You can extend your current subscription up to 3 times on [our website](https://luxalgo.com/pricing). Keep in mind that we only allow extending a subscription 3 times and it is for annual plans only. For special limited time offers we do you can receive discounts which are all automatically applied, displayed on the pricing cards, and for the first payment of your subscription only. You can always get up to 50% off the total price you'd pay monthly by choosing to pay annually on our plans. We offer a 30 day money back guarantee so you can try our exclusive tools for 30 days risk free. We also have hundreds of free indicators you can try on our [Library](https://luxalgo.com/library) to experience our free tools first. No, the price you signed up for is the price you will keep forever as long as you stay signed up. We will **never** change the price of your subscription. All members are grandfathered into the price they first signed up at regardless of any price increases we may do in the future. Please keep in mind that all coupons used on LuxAlgo.com are for the first interval of your subscription only. All future billing intervals aside from the first one will be at the full price of the subscription you chose. It's instant access. Immediately after you sign up we prompt you with a place to connect your TradingView & Discord accounts for access. If you missed this, please check your confirmation email for a link to connect your accounts to get instant accesss. As long as you enter your TradingView username correctly within your account, it'll appear instantly on your TradingView account under your "Invite-only scripts" folder after you refresh TradingView in your browser/app. If you are having trouble, please reply to your confirmation email with your TradingView username and our support team will ensure you have full access right away. Within your account, you can optionally downgrade your plan which will only start once your current plan ends. For example if you have 15 days left in your Ultimate Plan and you're downgrading to Premium, the Premium plan will start in 15 days at full price. Yes, we allow username changes in most scenarios as long as it's not too frequent. You may send your new username alongside your old username to [support@luxalgo.com](mailto:support@luxalgo.com) and our support team will adjust this for you manually right away. Our support team typically responds within only minutes (10-15 minutes maximum) whether you email [support@luxalgo.com](mailto:support@luxalgo.com) or message us on our [website](https://luxalgo.com) every day of the week. # How To Get Updates ## Applying An Update On Tradingview updates are easy to apply. Once an update is available, refresh your chart, then a purple 🔄 icon will be visible near the indicator title, click on it and click on "Update to latest version". ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/how-to-update/update.png) You can also apply an update by following these steps: 1. Refresh your browser or mobile app 2. Remove the indicator from your chart 3. Re-add it from your invite-only indicators The latest version of the indicator should appear. Make sure to save your **Chart Layout** on Tradingview after successfully installing an update so you can ensure it will stay ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/how-to-update/image172.png) ## Receiving Updates Notifications We always announce our updates on our community Discord server & [X Account](https://x.com/LuxAlgo). You can also receive update notifications on your TradingView charts directly by going to: `settings -> notifications -> SCRIPTS YOU'VE ADDED TO FAVORITES OR LIKED` ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/how-to-update/image125.png) Make sure to follow the LuxAlgo account on [TradingView](https://www.tradingview.com/u/LuxAlgo/#published-scripts) to ensure you are notified when we push updates with new features to our exclusive tools! # Quickstart Start learning about how LuxAlgo works within minutes. Hero Light Hero Dark ## Getting Started with LuxAlgo Welcome to the LuxAlgo documentation guide. Click any of the buttons below to learn how to get setup, use our tools, and enhance your trading experience. Learn how to setup exclusive LuxAlgo tools on TradingView In-depth guides on how to use our exclusive toolkits In-depth guides on how to use our screeners In-depth guides on our toolkit backtesters ## Frequently Asked Questions Need quick answers to general questions about our website, products, or billing? Click the button below to visit our FAQ. Read through our frequently asked questions ## Join our Community Need further support or want to give us some feedback? You can [join our community](https://discord.com/invite/LUX) or drop us an email at [support@luxalgo.com](mailto:support@luxalgo.com). # How To Use Discord Discord is a free instant-messaging platform for participating in communities. Below you will find the basics on how to create a free Discord account and how to get access as a LuxAlgo subscriber. This is the platform where we host our 150,000+ member community with automated alerts, strategy forums, and various bots to further optimize your experience at LuxAlgo. ## Create A Free Discord Account To create a Discord account go to the [Discord website](https://discord.com), download the Discord app (or open it from the browser) and enter your desired username. ## Joining The Discord ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/join-discord/discordbanner.png) When you first join our server, you won't be able to see anything besides our public channels. You can et help in the **#support** channel, see our announcements, get useful information regarding LuxAlgo, and learn how to sign up. If you haven't already joined the server, [click here.](https://discord.gg/lux) ## Exclusive Roles Once you get a subscription on our website, you will be able to connect your Discord account to our system which will give you exclusive perks. The @Essential, @Premium, and @Ultimate Discord roles are granted to users depending on the plan they chose from [our website](https://luxalgo.com/pricing). Users are prompted to connect their Discord account right after they sign up, however, we also send Subscription Confirmation email which includes a link to our portal where they can connect their Discord account to receive the role. Every exclusive role includes full access to our highly active community channels where traders discuss all markets using LuxAlgo, alongside strategy forums, thousands of automated scanner alerts, and more. The @Ultimate role will specifically give users access to a backtesting forum where our data-driven traders discuss strategy creation & share backtesting data. To get your exclusive role, click "Connect Accounts" from your Subscription Confirmation email and then click the 'Authorize Discord' button in the portal and your role will be granted automatically. If you are having trouble, please reply to the Subscription Confirmation email with your Discord username and our support team will ensure you have full access right away. # TradingView Alerts In this page, we show you the specifics of how to set up any alert on TradingView. If you want to learn how to set up specific alerts on our LuxAlgo toolkits specifically, you can see the following [video](https://youtu.be/olKQq5XR5S0?t=38). Alerts can be created to trigger on any user set condition, like crosses between two indicators, price entering or exiting a channel...etc. Users can be notified when the condition is trigerred via phone notifications, emails, SMS, and more through webhooks. ## How To Create An Alert To create an alert you can: * Click on the alert button at the top of your chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image510.png) * From the alert manager ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image370.png) * Using hotkeys `ALT + A` (Windows) or `⌥ + A` (Mac) ## Trigger Conditions Users can select the conditions used to trigger an alert in the condition menu, selecting the indicators and a set of rules used to trigger an alert. The second drop down menu controls the specific alert trigger conditions, while the other drop down controls the elements/plots to be used for conditions. Indicators return plots, which are visual elements that can be used to set the alert condition. Plots are used to visualize series of values, conditions, etc. Note that indicators can return multiple plots. Available conditions to set custom alerts are explained below: ### Crossing/Crossing Up/Crossing Down ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/crossing_conditions.png) Crossing conditions are commonly used and allow users to be alerted when two elements cross each other. Three crossing conditions are available, **Crossing**, **Crossing Up**, **Crossing Down**. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/crossing.png) **Crossing** will alert on any crosses between two selected plots/values. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/crossingUp.png) **Crossing Up** will alert only when the first selected element crosses over the second one. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/crossingDown.png) **Crossing Down** will alert only when the first selected element crosses over the second one. ### Entering/Exiting Channel **Entering/Exiting Channels** conditions will trigger when any selected element enter or exit user selected upper/lower bounds. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/enteringChannel.png) The **Entering Channel** condition will trigger when the element in the first drop-down menu cross-under the selected upper bound or cross-over the selected lower bound. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/exitingChannel.png) The **Exiting Channel** condition will trigger when the element in the first drop-down menu cross-over the selected upper bound or cross-under the selected lower bound. ### Outside/Inside Channel ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/outsideChannel.png) **Outside/Inside Channels** conditions will trigger when any selected element is outside or within selected upper/lower bounds. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/insideChannel.png) ### Greater/Less Than ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/greaterThan.png) The **Greater Than** and **Less Than** conditions will trigger when a selected element is greater or less than a selected element or value. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/lessThan.png) ## How To Use Placeholders ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image257.png) Placeholders allow for the value of a variable to be returned in an alert message. This variable can be the closing price of a symbol (`{{close}}`), the time frame of the chart the alert is created on (`{{interval}}`), and even the value of an indicator. This is done using the `{{plot("Name")}}` placeholder, where `"Name"` is the name of the plot you want the value to be returned in the alert message. Note that only the first 22 plots in an indicator can be used in placeholders. Note that `plot("Name")` must be part of the indicator selected in the alert condition. ## Warning Message ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image276.png) When you create an alert using certain indicators such as the Signals & Overlays™ indicator, you might see a warning message, this is caused by internal Pinescript functions used in the script that may have a repainting behavior when set in a specific way. The alerts provided by the LuxAlgo indicators **do not repaint** and as such, you can click on **continue anyway**. ## Managing Alerts The alerts manager menu allows you to manage the alerts you have currently set. From there you can create, remove, pause, reactivate, clone, search, sort and edit your alerts. To access the alert manager menu click on the alerts icon represented by an alarm symbol at the top left of the chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image370.png) If you want to remove all your current alerts click on the three horizontal dots at the right of the "add alert" icon, then select "remove all". ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image476.png) For more information on how to manage alerts go [here](https://www.tradingview.com/support/solutions/43000595311-manage-alerts/). ### Updating Alerts It is important to note that if one of the indicator settings is **changed after the alert is created**, then the alert will be **triggered using the old settings**. In order to update an alert go to the alert manager and click on edit. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image.png) In the first drop-down menu of the **Condition** section, select the second indicator with the same name as the one first used to create the alert you want to update and save the alert. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-alerts/image515.png) # How To Setup Once you've signed up on [our website](https://luxalgo.com/pricing) and entered your TradingView username within the "Connect Accounts" portal, you will have instant access to use our exclusive tools. In order to use the exclusive tools, you need to open a chart on TradingView. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-tradingview/image603.png) Once your chart is open, click on **Indicators** (or type **/** ) to open the indicator menu, then click on "**Invite-only Scripts**". You should see the toolkit names appear in this folder and you can click on one them to add to your chart. Remember, you don't need to use all of these tools at once. It is suggested for users to explore through our tools to find a couple features that fit most optimally in your trading. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-tradingview/image571.png) If you don't see the invite-only scripts folder or the locks appear red, please first try refreshing your browser/app. If this still doesn't have them show up, please email [support@luxalgo.com](mailto:support@luxalgo.com) with your TradingView username or contact live-chat on our website and our team will grant you access right away. If you want to quickly access our toolkits you can add them to your favorites by clicking on the star at the right of their names in the folder. You will then be able to load the starred indicators directly from your favorites tab while on your charts. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/setup-tradingview/image560.png) # What Is TradingView? ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/logo-preview-2.png) [TradingView ](https://www.tradingview.com)is a free charting platform and social network where traders/investors can **look** at financial charts and use a wide variety of tools to spot opportunity in every market across Stocks, Forex, Crypto, Futures & Commodities. TradingView users can connect most brokers to trade directly on the platform and **leap** into opportunities as they are presented in real time from their charts. This is the platform where we host our exclusive LuxAlgo toolkits. You can create a free account on TradingView and then sign up on [our website](https://luxalgo.com/pricing) to receive instant-access to use our toolkits. ## How To Create A TradingView Account In order to create a TradingView account, you need to go to the TradingView [homepage](https://www.tradingview.com). Click on "Sign in" at the top right of the homepage, then click on "Sign up" at the bottom of the current window. You can sign up using your social media profiles or an email address. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image581.png) ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image637.png) ## TradingView Charts ### How To Open A Chart On TradingView ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image538.png) You can open a chart on TradingView by clicking on 'Chart', located at the top left of the website when you are logged in. ### How To Change Symbol ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image50.png) You can change the symbol of the chart by clicking on the top left section containing the current chart ticker. You can also directly type the name of the symbol on your keyboard. Once you click on it, you will be able to search for specific symbols. You can also filter out symbols by markets or exchange. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image468.png) ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image348.png) ### Change Chart Timeframe ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image99.png) Timeframes determine the frequency at which a new candle is displayed on the chart. To change the timeframe of your chart simply click on the section at the right of the ticker name and select a timeframe of interest. You can also type the timeframe directly on your keyboard to change it. ### Add Indicators To Your Chart ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image441.png) Click on the **Indicators** button at the top of the chart. This will open a menu where you can search for the indicator and click on it to add it to your chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image296.png) ### Save A Chart Layout You can create, delete and save chart layouts on TradingView if you wish to save your indicator & chart settings on specific tickers/timeframes. Once you make a change on a layout, you will need to save these changes, all you need to do is to click on the cloud symbol at the top right of the chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image356.png) ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/tradingview/image225.png) You can also save a chart layout by pressing `ctrl + s` or `cmd + s` for mac users, on your keyboard. # What Is LuxAlgo? LuxAlgo is the world’s largest provider of trading indicators (free & paid). We're mostly known for the hundreds of free tools we've created for 5+ charting platforms like TradingView, however, we also have exclusive tools on [our website](https://luxalgo.com). The exclusive tools we offer are the best of our best work and are actively updated from our community's feedback. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/what-is-luxalgo/what-is-luxalgo.png) We also have a community Discord of 150,000+ traders that discuss markets with our toolkits, receive thousands of alerts, and improve their strategies with a large strategy forum. LuxAlgo users typically integrate a few features in the toolkits and incorporate them as an additional workflow in their trading analysis. Access to these tools are all within our subscription plans you can [sign up](https://luxalgo.com/pricing) for on our website. ## Why choose LuxAlgo? * Hundreds indicators made for the world on various charting platforms, millions of users, mostly free. * We have the #1 most followed profile on TradingView (500,000+ followers). * LuxAlgo was nominated as Pine Wizard by TradingView for 2024. The only company/team to join their hall of fame. * Our Signals & Overlays toolkit is the highest ever-rated paid indicator in history at 20,000+ likes. Our team is also made up of active traders who trade with our tools live multiple times a week to contribute to our community. See it all for yourself on TradingView [profile](https://www.tradingview.com/u/LuxAlgo/#published-scripts). ## Why It Can Work Traders typically have several questions after seeing LuxAlgo, one of them being: > *What advantages do these paid indicators give me over free ones?* And the most important one: > *Will I make profits using them?* It would be presumptuous and dishonest on our part to tell you the indicators we provide work like a charm and will guarantee you huge returns in a short amount of time, markets are more complicated than that. No indicator is capable of guaranteeing an improvement to your performance by itself, nor is any strategy capable of maintaining a percentage accuracy over time; money printers do not exist. Our tools are designed to generate easily understandable workflows for your analysis and we actively update the toolkits over time which is what actually can make them useful for you in your trading journey. ## The User And The Indicator A trader may expect indicators to work by themselves without requiring any user interaction; just set them running, forget them, and make profits. "If an indicator can't generate returns under these conditions then it isn't worth using." The worth of a technical indicator will hardly be found in its ability to make you money by itself, the complexity of price variations makes this far too difficult. A technical indicator is not smart nor adaptable enough to overcome such extreme conditions, however, this is not the case of the experienced trader, who will not use the indicator as a money printer, but as a supportive tool for decision making. We believe that the success lies in the association of the *user* and the *indicator.* The indicator can access and process large amounts of data, delivering a large quantity of useful and easy to interpret information which the trader can't really do by themselves, but he/she is smart, aware of a lot of external factors, and can manage their money. > *When I was passing tests to work at a private investment fund, we needed to work alongside an automated trading algorithm, I thought that we just had to let it run, but no, we had to stop the algorithm during huge volatile markets movements, limiting risk, so we had to team up with the algorithm to make it work, this changed my vision on technical indicators and their usability in trading.* > > — *alexgrover* An indicator that gives non-redundant information that is easy to customize throughout any trader's journey will create a strong pairing; and this is what LuxAlgo aims to provide. ## Embracing Your Trading Style If you are not free you won't go far, some traders find themselves as natural contrarians going against the trend, others ride with the trend, however, whatever your trading style is -- LuxAlgo embraces it. Our toolkits give you features that absolutely any style of trader can use to their fullest potential. This is part of the success of our toolkits with traders; while a lot of indicators give you a two-dimensional picture of the market, we give you a three-dimensional picture, giving you the liberty to trade the indicators the way you want via easily customizable all-in-one indicators, used either as as a standalone or in confluence with other forms of analysis. # Elements This page list out all the information returned by the OSC screener. The Screener (OSC) supports various core features from the **Oscillator Matrix™**, each listed out below. ## Screener Elements | Element | Description | Default | | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Price | Most recent price value | Enabled | | Volume | Most recent volume | Disabled | | %Change | Most recent price percent change | Enabled | | Change | Most recent price change | Disabled | | Rating | Most recent ticker rating. The rating is given depending on the percentage of bullish information returned by all enabled screener elements for a specific ticker | Enabled | | HWO Signal | Most recent HyperWave signal on the ticker | Enabled | | Money Flow | Most recent Money Flow oscillator value on the ticker | Enabled | | Overflow | Most recent Overflow value on the ticker | Enabled | | HyperWave | Most recent Overflow value on the ticker | Enabled | | Reversal | Most recent Reversal signal detected on the ticker | Enabled | | Divergence | Most recent divergence detected between the associated ticker price and associated ticker HyperWave | Enabled | | Confluence | Most recent confluence status detected on the ticker | Enabled | Each element can be disabled/enabled from the screener settings. ## Ratings The screener ratings indicate the confluence of all returned screener data for each individual ticker by measuring the percentage of bullish indications returned by the enabled screener elements. Ratings are determined as follows: * ▲ Strong Bullish (more than 80% of the returned information is bullish) * △ Bullish (60% to 80% of the returned information is bullish) * ― Neutral (40% to 60% of the returned information is bullish) * ▽ Bearish (20% to 60% of the returned information is bullish) * ▼ Strong Bearish (less than 20% of the returned information is bullish) ## Indicator Settings Users can control the settings of the included indicators in the screener from their respective settings group, these include: #### Smart Money Flow * Main Length * Smooth #### HyperWave * Main Length * Signal & Signal Length * Divergence Sensitivity #### Reversals * Reversal Factor ## Colors Users are able to change the color of the information returned by each element from the "Screener Elements" settings. # Filtering This page explain how users can curate the information returned by the OSC screener using the filtering features. From the "Screener Elements" settings users are able to filter out undesired information returned by the screener. This is done from the dropdown setting located on each "Screener Elements" settings. Certain elements returning specific information from a list of supported options will have a filter allowing to select a precise option, while elements returning a value on the screener will make use of conditional operators (Above/Below). Users can set a filtering condition on multiple elements, allowing them to display the tickers that respect the user set filtering conditions. # Introduction ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/osc/introduction/screener.png) The Screener (OSC) is a useful tool able to return recent information from various features in the **Oscillator Matrix™** toolkit for up to 10 user set tickers with customizable timeframe. In order to use the screener the best way possible it is first advised to fully understand the [Oscillator Matrix™](/docs/toolkits/oscillator-matrix/introduction) toolkit. Provided below are pages describing all key features included. Having access to the **Oscillator Matrix™** will automatically grant you access to the OSC screener. ## Tickers Users can change tickers as well as their respective timeframes from the screener settings. Default tickers include: * BTCUSDT * ETHUSDT * SOLUSDT * ADAUSDT * SPX * AAPL * TSLA * NVDA * EURUSD * GBPUSD The default timeframe used for all is the user chart timeframe. Supported tickers includes all tickers available on Tradingview (note that this availability can be affected by your Tradingview plan). Users can also use the same ticker but different timeframes, allowing to perform multi timeframe analysis of the **Oscillator Matrix™** toolkit. However, duplicated tickers with the same timeframe will result in the duplicate ticker to not appear on the screener. ## Display Users are offered a high degree of freedom when it comes to the placement of the screener. By default, the screener is located on a different pane, with the options to select the following positions: * Top Center * Top Right * Top Left * Bottom Center * Bottom Right * Bottom Left It is also common for more compact screeners to be directly on the price chart, this is possible with this screener by drag and dropping it to the user chart, or by moving it to the existing pane above assuming the screener is in a pane below the price chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/pane.png) ## Notes Tradingview is not a friendly environment when it comes to running more complete screeners, this cause various limitations showcased below: ### Computation The computation of a screener on Tradingview is very intensive, as such you can expect rare calculations timeouts. When this occurs simply force the screener recalculation by modifying one setting or adding the screener again to your chart. ### Inconsistency It is possible to observe inconsistencies when observing the screener on a chart with a specific symbol due to screener tickers having being on different market. The crypto market operates 24/7 while stock markets have opening and closing times, this can cause the screener to return different information when observing it from a cryptocurrency or stock/currency pair. # Sorting This page explain how users can sort a specific element returned by the PAC screener using the Sort By feature. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/sort.png) Users can sort certain elements returning/or with an associated numerical information in either a descending or ascending order. This can be useful to see specific tickers first or last depending on the sorted data on the screener. Supported elements for sorting include: * Rating * Money Flow * HyperWave * None When "None" is selected the screener tickers appear as per their order in the Tickers settings. ![Tickers sorted by rating in a descending order](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/osc/sorting/sorted.png) # Elements This page list out all the information returned by the PAC screener. The Screener (OSC) supports various core features from the **Price Action Concepts™**, each listed out below. ## Screener Elements | Element | Description | Default | | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Price | Most recent price value | Enabled | | Volume | Most recent volume | Disabled | | %Change | Most recent price percent change | Enabled | | Change | Most recent price change | Disabled | | Rating | Most recent ticker rating. The rating is given depending on the percentage of bullish information returned by all enabled screener elements for a specific ticker | Enabled | | Structure | Most recent market structure returned on the ticker | Enabled | | Order Block | Price position relative to the most recent Order Block area detected on the ticker | Enabled | | Buy OB Volume | Buy volume associated to the most recently detected Order Block on the ticker | Disabled | | Sell OB Volume | Sell volume associated to the most recently detected Order Block on the ticker | Disabled | | OB Volume | Total volume associated to the most recently detected Order Block on the ticker | Enabled | | Imbalances | Status of the most recent detected imbalance | Enabled | | P\&D Zones | Price position relative to the most recent premium/equilibirum/discount zones on the ticker | Disabled | | Liquidity Grabs | Most recent detected liquidity grab | Enabled | | EQHL | Most recent detected equal high/low | Disabled | Each element can be disabled/enabled from the screener settings. ## Ratings The screener ratings indicate the confluence of all returned screener data for each individual ticker by measuring the percentage of bullish indications returned by the enabled screener elements. Ratings are determined as follows: * ▲ Strong Bullish (more than 80% of the returned information is bullish) * △ Bullish (60% to 80% of the returned information is bullish) * ― Neutral (40% to 60% of the returned information is bullish) * ▽ Bearish (20% to 60% of the returned information is bullish) * ▼ Strong Bearish (less than 20% of the returned information is bullish) ## Indicator Settings Users can control the settings of the included indicators in the screener from the "Indicator Settings" settings group, these include: * Market Structure Length * Order Block Length * Imbalance Type * EQHL Period ## Colors Users are able to change the color of the information returned by each element from the "Screener Elements" settings. # Filtering This page explain how users can curate the information returned by the PAC screener using the filtering features. From the "Screener Elements" settings users are able to filter out undesired information returned by the screener. This is done from the dropdown setting located on each "Screener Elements" settings. Certain elements returning specific information from a list of supported options will have a filter allowing to select a precise option, while elements returning a value on the screener will make use of conditional operators (Above/Below). Users can set a filtering condition on multiple elements, allowing them to display the tickers that respect the user set filtering conditions. # Introduction ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/pac/introduction/screener.png) The Screener (PAC) is a useful tool able to return recent information from various features in the **Price Action Concepts™** toolkit for up to 10 user set tickers with customizable timeframe. In order to use the screener the best way possible it is first advised to fully understand the [Price Action Concepts™](/docs/toolkits/price-action-concepts/introduction) toolkit. Provided below are pages describing all key features included. Having access to the **Price Action Concepts™** will automatically grant you access to the PAC screener. ## Tickers Users can change tickers as well as their respective timeframes from the screener settings. Default tickers include: * BTCUSDT * ETHUSDT * SOLUSDT * ADAUSDT * SPX * AAPL * TSLA * NVDA * EURUSD * GBPUSD The default timeframe used for all is the user chart timeframe. Supported tickers includes all tickers available on Tradingview (note that this availability can be affected by your Tradingview plan). Users can also use the same ticker but different timeframes, allowing to perform multi timeframe analysis of the **Price Action Concepts™** toolkit. However, duplicated tickers with the same timeframe will result in the duplicate ticker to not appear on the screener. ## Display Users are offered a high degree of freedom when it comes to the placement of the screener. By default, the screener is located on a different pane, with the options to select the following positions: * Top Center * Top Right * Top Left * Bottom Center * Bottom Right * Bottom Left It is also common for more compact screeners to be directly on the price chart, this is possible with this screener by drag and dropping it to the user chart, or by moving it to the existing pane above assuming the screener is in a pane below the price chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/pane.png) ## Notes Tradingview is not a friendly environment when it comes to running more complete screeners, this cause various limitations showcased below: ### Computation The computation of a screener on Tradingview is very intensive, as such you can expect rare calculations timeouts. When this occurs simply force the screener recalculation by modifying one setting or adding the screener again to your chart. ### Inconsistency It is possible to observe inconsistencies when observing the screener on a chart with a specific symbol due to screener tickers having being on different market. The crypto market operates 24/7 while stock markets have opening and closing times, this can cause the screener to return different information when observing it from a cryptocurrency or stock/currency pair. # Sorting This page explain how users can sort a specific element returned by the OSC screener using the Sort By feature. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/sort.png) Users can sort certain elements returning/or with an associated numerical information in either a descending or ascending order. This can be useful to see specific tickers first or last depending on the sorted data on the screener. Supported elements for sorting include: * Rating * Structure * OB Volume * OB Buy Volume * OB Sell Volume * None When "None" is selected the screener tickers appear as per their order in the Tickers settings. ![Tickers sorted by rating in a descending order](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/osc/sorting/sorted.png) # Elements This page list out all the information returned by the S&O screener. The Screener (S\&O) supports various core features from the **Signals & Overlays™**, each listed out below. ## Screener Elements | Element | Description | Default | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Price | Most recent price value | Enabled | | Volume | Most recent volume | Disabled | | %Change | Most recent price percent change | Enabled | | Change | Most recent price change | Disabled | | Rating | Most recent ticker rating. The rating is given depending on the percentage of bullish information returned by all enabled screener elements for a specific ticker | Enabled | | Signal | Most recent confirmation or contrarian signal returned on the ticker | Enabled | | Exits | Number of exits signals returned since the most recent signal | Enabled | | Smart Trail | Current Smart Trail Status | Enabled | | Reversal Zones | Current price position relative to Reversal Zones | Disabled | | Trend Catcher | Current Trend Catcher Status | Enabled | | Trend Tracer | Current Trend Tracer Status | Enabled | | Neo Cloud | Current Neo Cloud Status | Disabled | | Trend Strength | Current Trend Strength value | Enabled | | Lux Volatility | Current Lux Volatility value | Enabled | | Squeeze Index | Current Squeeze Index value | Enabled | | Volume Sentiment | Current Volume Sentiment value | Disabled | Each element can be disabled/enabled from the screener settings. ## Ratings The screener ratings indicate the confluence of all returned screener data for each individual ticker by measuring the percentage of bullish indications returned by the enabled screener elements. Ratings are determined as follows: * ▲ Strong Bullish (more than 80% of the returned information is bullish) * △ Bullish (60% to 80% of the returned information is bullish) * ― Neutral (40% to 60% of the returned information is bullish) * ▽ Bearish (20% to 60% of the returned information is bullish) * ▼ Strong Bearish (less than 20% of the returned information is bullish) ## Signal Settings The most recent signal returned by the screener is affected by the "Signal" settings group. These settings allow changing the sensitivity of the signals as well as the signal algorithm, with users having the option to select Confirmation or Contrarian signals. ## Overlays Settings Overlay indicators screener elements are affected by their respective settings located in the "Overlays" settings group. Each overlay has an associated setting affecting their output. These settings range from 1 to 5, with higher values allowing the overlay to return indications for longer-term trends. ## Colors Users are able to change the color of the information returned by each element from the "Screener Elements" settings. # Filtering This page explain how users can curate the information returned by the S&O screener using the filtering features. From the "Screener Elements" settings users are able to filter out undesired information returned by the screener. This is done from the dropdown setting located on each "Screener Elements" settings. Certain elements returning specific information from a list of supported options will have a filter allowing to select a precise option, while elements returning a value on the screener will make use of conditional operators (Above/Below), except the Lux Volatility. Users can set a filtering condition on multiple elements, allowing them to display the tickers that respect the user set filtering conditions. # Introduction ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/s-o/introduction/screener.png) The Screener (S\&O) is a useful tool able to return recent information from various features in the **Signals & Overlays™** toolkit for up to 10 user set tickers with customizable timeframe. In order to use the screener the best way possible it is first advised to fully understand the [Signals & Overlays™](/docs/toolkits/signals-overlays/introduction) toolkit. Provided below are pages describing all key features included. Having access to the **Signals & Overlays™** will automatically grant you access to the S\&O screener. ## Tickers Users can change tickers as well as their respective timeframes from the screener settings. Default tickers include: * BTCUSDT * ETHUSDT * SOLUSDT * ADAUSDT * SPX * AAPL * TSLA * NVDA * EURUSD * GBPUSD The default timeframe used for all is the user chart timeframe. Supported tickers includes all tickers available on Tradingview (note that this availability can be affected by your Tradingview plan). Users can also use the same ticker but different timeframes, allowing to perform multi timeframe analysis of the **Signals & Overlays™** toolkit. However, duplicated tickers with the same timeframe will result in the duplicate ticker to not appear on the screener. ## Display Users are offered a high degree of freedom when it comes to the placement of the screener. By default, the screener is located on a different pane, with the options to select the following positions: * Top Center * Top Right * Top Left * Bottom Center * Bottom Right * Bottom Left It is also common for more compact screeners to be directly on the price chart, this is possible with this screener by drag and dropping it to the user chart, or by moving it to the existing pane above assuming the screener is in a pane below the price chart. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/pane.png) ## Notes Tradingview is not a friendly environment when it comes to running more complete screeners, this cause various limitations showcased below: ### Computation The computation of a screener on Tradingview is very intensive, as such you can expect rare calculations timeouts. When this occurs simply force the screener recalculation by modifying one setting or adding the screener again to your chart. ### Inconsistency It is possible to observe inconsistencies when observing the screener on a chart with a specific symbol due to screener tickers having being on different market. The crypto market operates 24/7 while stock markets have opening and closing times, this can cause the screener to return different information when observing it from a cryptocurrency or stock/currency pair. # Sorting This page explain how users can sort a specific element returned by the S&O screener using the Sort By feature. ![](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/sort.png) Users can sort certain elements returning/or with an associated numerical information in either a descending or ascending order. This can be useful to see specific tickers first or last depending on the sorted data on the screener. Supported elements for sorting include: * Rating * Trend Strength * Lux Volatility * Squeeze Index * Volume Sentiment * Exits * None When "None" is selected the screener tickers appear as per their order in the Tickers settings. ![Tickers sorted by rating in a descending order](https://mintlify.s3-us-west-1.amazonaws.com/luxalgo/public/images/screeners/s-o/sorting/sorted.png) # Alerts