Ichimoku Crosses_RSI_AITIchimoku Crosser_RSI_AIT
Overview
The "Ichimoku Cloud Crosses_AIT" strategy is a technical trading strategy that combines the Ichimoku Cloud components with the Relative Strength Index (RSI) to generate trade signals. This strategy leverages the crossovers of the Tenkan-sen and Kijun-sen lines of the Ichimoku Cloud, along with RSI levels, to identify potential entry and exit points for long and short trades. This guide explains the strategy components, conditions, and how to use it effectively in your trading.
1. Strategy Parameters
User Inputs
Tenkan-sen Period (tenkanLength): Default value is 21. This is the period used to calculate the Tenkan-sen line (conversion line) of the Ichimoku Cloud.
Kijun-sen Period (kijunLength): Default value is 120. This is the period used to calculate the Kijun-sen line (base line) of the Ichimoku Cloud.
Senkou Span B Period (senkouBLength): Default value is 52. This is the period used to calculate the Senkou Span B line (leading span B) of the Ichimoku Cloud.
RSI Period (rsiLength): Default value is 14. This period is used to calculate the Relative Strength Index (RSI).
RSI Long Entry Level (rsiLongLevel): Default value is 60. This level indicates the minimum RSI value for a long entry signal.
RSI Short Entry Level (rsiShortLevel): Default value is 40. This level indicates the maximum RSI value for a short entry signal.
2. Strategy Components
Ichimoku Cloud
Tenkan-sen: A short-term trend indicator calculated as the simple moving average (SMA) of the highest high and the lowest low over the Tenkan-sen period.
Kijun-sen: A medium-term trend indicator calculated as the SMA of the highest high and the lowest low over the Kijun-sen period.
Senkou Span A: Calculated as the average of the Tenkan-sen and Kijun-sen, plotted 26 periods ahead.
Senkou Span B: Calculated as the SMA of the highest high and lowest low over the Senkou Span B period, plotted 26 periods ahead.
Chikou Span: The closing price plotted 26 periods behind.
Relative Strength Index (RSI)
RSI: A momentum oscillator that measures the speed and change of price movements. It ranges from 0 to 100 and is used to identify overbought or oversold conditions.
3. Entry and Exit Conditions
Entry Conditions
Long Entry:
The Tenkan-sen crosses above the Kijun-sen (bullish crossover).
The RSI value is greater than or equal to the rsiLongLevel.
Short Entry:
The Tenkan-sen crosses below the Kijun-sen (bearish crossover).
The RSI value is less than or equal to the rsiShortLevel.
Exit Conditions
Exit Long Position: The Tenkan-sen crosses below the Kijun-sen.
Exit Short Position: The Tenkan-sen crosses above the Kijun-sen.
4. Visual Representation
Tenkan-sen Line: Plotted on the chart. The color changes based on its relation to the Kijun-sen (green if above, red if below) and is displayed with a line width of 2.
Kijun-sen Line: Plotted as a white line with a line width of 1.
Entry Arrows:
Long Entry: Displayed as a yellow triangle below the bar.
Short Entry: Displayed as a fuchsia triangle above the bar.
5. How to Use
Apply the Strategy: Apply the "Ichimoku Cloud Crosses_AIT" strategy to your chart in TradingView.
Configure Parameters: Adjust the strategy parameters (Tenkan-sen, Kijun-sen, Senkou Span B, and RSI settings) according to your trading preferences.
Interpret the Signals:
Long Entry: A yellow triangle appears below the bar when a long entry signal is generated.
Short Entry: A fuchsia triangle appears above the bar when a short entry signal is generated.
Monitor Open Positions: The strategy automatically exits positions based on the defined conditions.
Backtesting and Live Trading: Use the strategy for backtesting and live trading. Adjust risk management settings in the strategy properties as needed.
Conclusion
The "Ichimoku Cloud Crosses_AIT" strategy uses Ichimoku Cloud crossovers and RSI to generate trading signals. This strategy aims to capture market trends and potential reversals, providing a structured way to enter and exit trades. Make sure to backtest and optimize the strategy parameters to suit your trading style and market conditions before using it in a live trading environment.
"entry"に関するスクリプトを検索
TRADINGLibrary "TRADING"
This library is a client script for making a webhook signal formatted string to PoABOT server.
entry_message(password, percent, leverage, margin_mode, kis_number)
Create a entry message for POABOT
Parameters:
password (string) : (string) The password of your bot.
percent (float) : (float) The percent for entry based on your wallet balance.
leverage (int) : (int) The leverage of entry. If not set, your levereage doesn't change.
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
kis_number (int) : (int) The number of koreainvestment account. Default 1
Returns: (string) A json formatted string for webhook message.
order_message(password, percent, leverage, margin_mode, kis_number)
Create a order message for POABOT
Parameters:
password (string) : (string) The password of your bot.
percent (float) : (float) The percent for entry based on your wallet balance.
leverage (int) : (int) The leverage of entry. If not set, your levereage doesn't change.
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
kis_number (int) : (int) The number of koreainvestment account. Default 1
Returns: (string) A json formatted string for webhook message.
close_message(password, percent, margin_mode, kis_number)
Create a close message for POABOT
Parameters:
password (string) : (string) The password of your bot.
percent (float) : (float) The percent for close based on your wallet balance.
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
kis_number (int) : (int) The number of koreainvestment account. Default 1
Returns: (string) A json formatted string for webhook message.
exit_message(password, percent, margin_mode, kis_number)
Create a exit message for POABOT
Parameters:
password (string) : (string) The password of your bot.
percent (float) : (float) The percent for exit based on your wallet balance.
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
kis_number (int) : (int) The number of koreainvestment account. Default 1
Returns: (string) A json formatted string for webhook message.
manual_message(password, exchange, base, quote, side, qty, price, percent, leverage, margin_mode, kis_number, order_name)
Create a manual message for POABOT
Parameters:
password (string) : (string) The password of your bot.
exchange (string) : (string) The exchange
base (string) : (string) The base
quote (string) : (string) The quote of order message
side (string) : (string) The side of order messsage
qty (float) : (float) The qty of order message
price (float) : (float) The price of order message
percent (float) : (float) The percent for order based on your wallet balance.
leverage (int) : (int) The leverage of entry. If not set, your levereage doesn't change.
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
kis_number (int) : (int) The number of koreainvestment account.
order_name (string) : (string) The name of order message
Returns: (string) A json formatted string for webhook message.
in_trade(start_time, end_time, hide_trade_line)
Create a trade start line
Parameters:
start_time (int) : (int) The start of time.
end_time (int) : (int) The end of time.
hide_trade_line (bool) : (bool) if true, hide trade line. Default false.
Returns: (bool) Get bool for trade based on time range.
real_qty(qty, precision, leverage, contract_size, default_qty_type, default_qty_value)
Get exchange specific real qty
Parameters:
qty (float) : (float) qty
precision (float) : (float) precision
leverage (int) : (int) leverage
contract_size (float) : (float) contract_size
default_qty_type (string)
default_qty_value (float)
Returns: (float) exchange specific qty.
method set(this, password, start_time, end_time, leverage, initial_capital, default_qty_type, default_qty_value, margin_mode, contract_size, kis_number, entry_percent, close_percent, exit_percent, fixed_qty, fixed_cash, real, auto_alert_message, hide_trade_line)
Set bot object.
Namespace types: bot
Parameters:
this (bot)
password (string) : (string) password for poabot.
start_time (int) : (int) start_time timestamp.
end_time (int) : (int) end_time timestamp.
leverage (int) : (int) leverage.
initial_capital (float)
default_qty_type (string)
default_qty_value (float)
margin_mode (string) : (string) The margin mode for trade(only for OKX). "cross" or "isolated"
contract_size (float)
kis_number (int) : (int) kis_number for poabot.
entry_percent (float) : (float) entry_percent for poabot.
close_percent (float) : (float) close_percent for poabot.
exit_percent (float) : (float) exit_percent for poabot.
fixed_qty (float) : (float) fixed qty.
fixed_cash (float) : (float) fixed cash.
real (bool) : (bool) convert qty for exchange specific.
auto_alert_message (bool) : (bool) convert alert_message for exchange specific.
hide_trade_line (bool) : (bool) if true, Hide trade line. Default false.
Returns: (void)
method print(this, message)
Print message using log table.
Namespace types: bot
Parameters:
this (bot)
message (string)
Returns: (void)
method start_trade(this)
start trade using start_time and end_time
Namespace types: bot
Parameters:
this (bot)
Returns: (void)
method entry(this, id, direction, qty, limit, stop, oca_name, oca_type, comment, alert_message, when)
It is a command to enter market position. If an order with the same ID is already pending, it is possible to modify the order. If there is no order with the specified ID, a new order is placed. To deactivate an entry order, the command strategy.cancel or strategy.cancel_all should be used. In comparison to the function strategy.order, the function strategy.entry is affected by pyramiding and it can reverse market position correctly. If both 'limit' and 'stop' parameters are 'NaN', the order type is market order.
Namespace types: bot
Parameters:
this (bot)
id (string) : (string) A required parameter. The order identifier. It is possible to cancel or modify an order by referencing its identifier.
direction (string) : (string) A required parameter. Market position direction: 'strategy.long' is for long, 'strategy.short' is for short.
qty (float) : (float) An optional parameter. Number of contracts/shares/lots/units to trade. The default value is 'NaN'.
limit (float) : (float) An optional parameter. Limit price of the order. If it is specified, the order type is either 'limit', or 'stop-limit'. 'NaN' should be specified for any other order type.
stop (float) : (float) An optional parameter. Stop price of the order. If it is specified, the order type is either 'stop', or 'stop-limit'. 'NaN' should be specified for any other order type.
oca_name (string) : (string) An optional parameter. Name of the OCA group the order belongs to. If the order should not belong to any particular OCA group, there should be an empty string.
oca_type (string) : (string) An optional parameter. Type of the OCA group. The allowed values are: "strategy.oca.none" - the order should not belong to any particular OCA group; "strategy.oca.cancel" - the order should belong to an OCA group, where as soon as an order is filled, all other orders of the same group are cancelled; "strategy.oca.reduce" - the order should belong to an OCA group, where if X number of contracts of an order is filled, number of contracts for each other order of the same OCA group is decreased by X.
comment (string) : (string) An optional parameter. Additional notes on the order.
alert_message (string) : (string) An optional parameter which replaces the {{strategy.order.alert_message}} placeholder when it is used in the "Create Alert" dialog box's "Message" field.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
method order(this, id, direction, qty, limit, stop, oca_name, oca_type, comment, alert_message, when)
It is a command to place order. If an order with the same ID is already pending, it is possible to modify the order. If there is no order with the specified ID, a new order is placed. To deactivate order, the command strategy.cancel or strategy.cancel_all should be used. In comparison to the function strategy.entry, the function strategy.order is not affected by pyramiding. If both 'limit' and 'stop' parameters are 'NaN', the order type is market order.
Namespace types: bot
Parameters:
this (bot)
id (string) : (string) A required parameter. The order identifier. It is possible to cancel or modify an order by referencing its identifier.
direction (string) : (string) A required parameter. Market position direction: 'strategy.long' is for long, 'strategy.short' is for short.
qty (float) : (float) An optional parameter. Number of contracts/shares/lots/units to trade. The default value is 'NaN'.
limit (float) : (float) An optional parameter. Limit price of the order. If it is specified, the order type is either 'limit', or 'stop-limit'. 'NaN' should be specified for any other order type.
stop (float) : (float) An optional parameter. Stop price of the order. If it is specified, the order type is either 'stop', or 'stop-limit'. 'NaN' should be specified for any other order type.
oca_name (string) : (string) An optional parameter. Name of the OCA group the order belongs to. If the order should not belong to any particular OCA group, there should be an empty string.
oca_type (string) : (string) An optional parameter. Type of the OCA group. The allowed values are: "strategy.oca.none" - the order should not belong to any particular OCA group; "strategy.oca.cancel" - the order should belong to an OCA group, where as soon as an order is filled, all other orders of the same group are cancelled; "strategy.oca.reduce" - the order should belong to an OCA group, where if X number of contracts of an order is filled, number of contracts for each other order of the same OCA group is decreased by X.
comment (string) : (string) An optional parameter. Additional notes on the order.
alert_message (string) : (string) An optional parameter which replaces the {{strategy.order.alert_message}} placeholder when it is used in the "Create Alert" dialog box's "Message" field.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
method close_all(this, comment, alert_message, immediately, when)
Exits the current market position, making it flat.
Namespace types: bot
Parameters:
this (bot)
comment (string) : (string) An optional parameter. Additional notes on the order.
alert_message (string) : (string) An optional parameter which replaces the {{strategy.order.alert_message}} placeholder when it is used in the "Create Alert" dialog box's "Message" field.
immediately (bool) : (bool) An optional parameter. If true, the closing order will be executed on the tick where it has been placed, ignoring the strategy parameters that restrict the order execution to the open of the next bar. The default is false.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
method cancel(this, id, when)
It is a command to cancel/deactivate pending orders by referencing their names, which were generated by the functions: strategy.order, strategy.entry and strategy.exit.
Namespace types: bot
Parameters:
this (bot)
id (string) : (string) A required parameter. The order identifier. It is possible to cancel an order by referencing its identifier.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
method cancel_all(this, when)
It is a command to cancel/deactivate all pending orders, which were generated by the functions: strategy.order, strategy.entry and strategy.exit.
Namespace types: bot
Parameters:
this (bot)
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
method close(this, id, comment, qty, qty_percent, alert_message, immediately, when)
It is a command to exit from the entry with the specified ID. If there were multiple entry orders with the same ID, all of them are exited at once. If there are no open entries with the specified ID by the moment the command is triggered, the command will not come into effect. The command uses market order. Every entry is closed by a separate market order.
Namespace types: bot
Parameters:
this (bot)
id (string) : (string) A required parameter. The order identifier. It is possible to close an order by referencing its identifier.
comment (string) : (string) An optional parameter. Additional notes on the order.
qty (float) : (float) An optional parameter. Number of contracts/shares/lots/units to exit a trade with. The default value is 'NaN'.
qty_percent (float) : (float) Defines the percentage (0-100) of the position to close. Its priority is lower than that of the 'qty' parameter. Optional. The default is 100.
alert_message (string) : (string) An optional parameter which replaces the {{strategy.order.alert_message}} placeholder when it is used in the "Create Alert" dialog box's "Message" field.
immediately (bool) : (bool) An optional parameter. If true, the closing order will be executed on the tick where it has been placed, ignoring the strategy parameters that restrict the order execution to the open of the next bar. The default is false.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
ticks_to_price(ticks, from)
Converts ticks to a price offset from the supplied price or the average entry price.
Parameters:
ticks (float) : (float) Ticks to convert to a price.
from (float) : (float) A price that can be used to calculate from. Optional. The default value is `strategy.position_avg_price`.
Returns: (float) A price level that has a distance from the entry price equal to the specified number of ticks.
method exit(this, id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, comment_profit, comment_loss, comment_trailing, alert_message, alert_profit, alert_loss, alert_trailing, when)
It is a command to exit either a specific entry, or whole market position. If an order with the same ID is already pending, it is possible to modify the order. If an entry order was not filled, but an exit order is generated, the exit order will wait till entry order is filled and then the exit order is placed. To deactivate an exit order, the command strategy.cancel or strategy.cancel_all should be used. If the function strategy.exit is called once, it exits a position only once. If you want to exit multiple times, the command strategy.exit should be called multiple times. If you use a stop loss and a trailing stop, their order type is 'stop', so only one of them is placed (the one that is supposed to be filled first). If all the following parameters 'profit', 'limit', 'loss', 'stop', 'trail_points', 'trail_offset' are 'NaN', the command will fail. To use market order to exit, the command strategy.close or strategy.close_all should be used.
Namespace types: bot
Parameters:
this (bot)
id (string) : (string) A required parameter. The order identifier. It is possible to cancel or modify an order by referencing its identifier.
from_entry (string) : (string) An optional parameter. The identifier of a specific entry order to exit from it. To exit all entries an empty string should be used. The default values is empty string.
qty (float) : (float) An optional parameter. Number of contracts/shares/lots/units to exit a trade with. The default value is 'NaN'.
qty_percent (float) : (float) Defines the percentage of (0-100) the position to close. Its priority is lower than that of the 'qty' parameter. Optional. The default is 100.
profit (float) : (float) An optional parameter. Profit target (specified in ticks). If it is specified, a limit order is placed to exit market position when the specified amount of profit (in ticks) is reached. The default value is 'NaN'.
limit (float) : (float) An optional parameter. Profit target (requires a specific price). If it is specified, a limit order is placed to exit market position at the specified price (or better). Priority of the parameter 'limit' is higher than priority of the parameter 'profit' ('limit' is used instead of 'profit', if its value is not 'NaN'). The default value is 'NaN'.
loss (float) : (float) An optional parameter. Stop loss (specified in ticks). If it is specified, a stop order is placed to exit market position when the specified amount of loss (in ticks) is reached. The default value is 'NaN'.
stop (float) : (float) An optional parameter. Stop loss (requires a specific price). If it is specified, a stop order is placed to exit market position at the specified price (or worse). Priority of the parameter 'stop' is higher than priority of the parameter 'loss' ('stop' is used instead of 'loss', if its value is not 'NaN'). The default value is 'NaN'.
trail_price (float) : (float) An optional parameter. Trailing stop activation level (requires a specific price). If it is specified, a trailing stop order will be placed when the specified price level is reached. The offset (in ticks) to determine initial price of the trailing stop order is specified in the 'trail_offset' parameter: X ticks lower than activation level to exit long position; X ticks higher than activation level to exit short position. The default value is 'NaN'.
trail_points (float) : (float) An optional parameter. Trailing stop activation level (profit specified in ticks). If it is specified, a trailing stop order will be placed when the calculated price level (specified amount of profit) is reached. The offset (in ticks) to determine initial price of the trailing stop order is specified in the 'trail_offset' parameter: X ticks lower than activation level to exit long position; X ticks higher than activation level to exit short position. The default value is 'NaN'.
trail_offset (float) : (float) An optional parameter. Trailing stop price (specified in ticks). The offset in ticks to determine initial price of the trailing stop order: X ticks lower than 'trail_price' or 'trail_points' to exit long position; X ticks higher than 'trail_price' or 'trail_points' to exit short position. The default value is 'NaN'.
oca_name (string) : (string) An optional parameter. Name of the OCA group (oca_type = strategy.oca.reduce) the profit target, the stop loss / the trailing stop orders belong to. If the name is not specified, it will be generated automatically.
comment (string) : (string) Additional notes on the order. If specified, displays near the order marker on the chart. Optional. The default is na.
comment_profit (string) : (string) Additional notes on the order if the exit was triggered by crossing `profit` or `limit` specifically. If specified, supercedes the `comment` parameter and displays near the order marker on the chart. Optional. The default is na.
comment_loss (string) : (string) Additional notes on the order if the exit was triggered by crossing `stop` or `loss` specifically. If specified, supercedes the `comment` parameter and displays near the order marker on the chart. Optional. The default is na.
comment_trailing (string) : (string) Additional notes on the order if the exit was triggered by crossing `trail_offset` specifically. If specified, supercedes the `comment` parameter and displays near the order marker on the chart. Optional. The default is na.
alert_message (string) : (string) Text that will replace the '{{strategy.order.alert_message}}' placeholder when one is used in the "Message" field of the "Create Alert" dialog. Optional. The default is na.
alert_profit (string) : (string) Text that will replace the '{{strategy.order.alert_message}}' placeholder when one is used in the "Message" field of the "Create Alert" dialog. Only replaces the text if the exit was triggered by crossing `profit` or `limit` specifically. Optional. The default is na.
alert_loss (string) : (string) Text that will replace the '{{strategy.order.alert_message}}' placeholder when one is used in the "Message" field of the "Create Alert" dialog. Only replaces the text if the exit was triggered by crossing `stop` or `loss` specifically. Optional. The default is na.
alert_trailing (string) : (string) Text that will replace the '{{strategy.order.alert_message}}' placeholder when one is used in the "Message" field of the "Create Alert" dialog. Only replaces the text if the exit was triggered by crossing `trail_offset` specifically. Optional. The default is na.
when (bool) : (bool) An optional parmeter. Condition, deprecated.
Returns: (void)
percent_to_ticks(percent, from)
Converts a percentage of the supplied price or the average entry price to ticks.
Parameters:
percent (float) : (float) The percentage of supplied price to convert to ticks. 50 is 50% of the entry price.
from (float) : (float) A price that can be used to calculate from. Optional. The default value is `strategy.position_avg_price`.
Returns: (float) A value in ticks.
percent_to_price(percent, from)
Converts a percentage of the supplied price or the average entry price to a price.
Parameters:
percent (float) : (float) The percentage of the supplied price to convert to price. 50 is 50% of the supplied price.
from (float) : (float) A price that can be used to calculate from. Optional. The default value is `strategy.position_avg_price`.
Returns: (float) A value in the symbol's quote currency (USD for BTCUSD).
bot
Fields:
password (series__string)
start_time (series__integer)
end_time (series__integer)
leverage (series__integer)
initial_capital (series__float)
default_qty_type (series__string)
default_qty_value (series__float)
margin_mode (series__string)
contract_size (series__float)
kis_number (series__integer)
entry_percent (series__float)
close_percent (series__float)
exit_percent (series__float)
log_table (series__table)
fixed_qty (series__float)
fixed_cash (series__float)
real (series__bool)
auto_alert_message (series__bool)
hide_trade_line (series__bool)
ORB Algo | Flux Charts💎 GENERAL OVERVIEW
Introducing our new ORB Algo indicator! ORB stands for "Opening Range Breakout" which is a common trading strategy. The indicator can analyze the market trend in the current session and give "Buy / Sell", "Take Profit" and "Stop Loss" signals. For more information about the analyzing process of the indicator, you can read "How Does It Work ?" section of the description.
Features of the new ORB Algo indicator :
Buy & Sell Signals
Up To 3 Take Profit Signals
Stop-Loss Signals
Alerts for Buy / Sell, Take-Profit and Stop-Loss
Customizable Algoritm
Session Dashboard
Backtesting Dashboard
📌 HOW DOES IT WORK ?
This indicator works best in 1-minute timeframe. The idea is that the trend of the current session can be forecasted by analyzing the market for a while after the session starts. However, each market has it's own dynamics and the algorithm will need fine-tuning to get the best performance possible. So, we've implemented a "Backtesting Dashboard" that shows the past performance of the algorithm in the current ticker with your current settings. Always keep in mind that past performance does not guarantee future results.
Here are the steps of the algorithm explained briefly :
1. The algorithm follows and analyzes the first 30 minutes (can be adjusted) of the session.
2. Then, algorithm checks for breakouts of the opening range's high or low.
3. If a breakout happens in a bullish or a bearish direction, the algorithm will now check for retests of the breakout. Depending on the sensitivity setting, there must be 0 / 1 / 2 / 3 failed retests for the breakout to be considered as reliable.
4. If the breakout is reliable, the algorithm will give an entry signal.
5. After the position entry, algorithm will now wait for Take-Profit or Stop-Loss zones and signal if any of them occur.
If you wonder how does the indicator find Take-Profit & Stop-Loss zones, you can check the "Settings" section of the description.
🚩UNIQUENESS
While there are indicators that show the opening range of the session, they come short with features like indicating breakouts, entries, and Take-Profit & Stop-Loss zones. We are also aware of that different stock markets have different dynamics, and tuning the algorithm for different markets is really important for better results, so we decided to make the algorithm fully customizable. Besides all that, our indicator contains a detailed backtesting dashboard, so you can see past performance of the algorithm in the current ticker. While past performance does not yield any guarantee for future results, we believe that a backtesting dashboard is necessary for tuning the algorithm. Another strength of this indicator is that there are multiple options for detection of Take-Profit and Stop-Loss zones, which the trader can select one of their liking.
⚙️SETTINGS
Keep in mind that best chart timeframe for this indicator to work is the 1-minute timeframe.
TP = Take-Profit
SL = Stop-Loss
EMA = Exponential Moving Average
OR = Opening Range
ATR = Average True Range
1. Algorithm
ORB Timeframe -> This setting determines the timeframe that the algorithm will analyze the market after a new session begins before giving any signals. It's important to experiment with this setting and find the best option that suits the current ticker for the best performance. More volatile stocks will often require this setting to be larger, while more stabilized stocks may have this setting shorter.
Sensitivity -> This setting determines how much failed retests are needed to take a position entry. Higher senstivity means that less retests are needed to consider the breakout as reliable. If you think that the current ticker makes strong movements in a bullish & bearish direction after a breakout, you should set this setting higher. If you think the opposite, meaning that the ticker does not decide the trend right after a breakout, this setting show be lower.
(High = 0 Retests, Medium = 1 Retest, Low = 2 Retests, Lowest = 3 Retests)
Breakout Condition -> The condition for the algorithm to detect breakouts.
Close = Bar needs to close higher than the OR High Line in a bullish breakout, or lower than the OR Low Line in a bearish breakout. EMA = The EMA of the bar must be higher / lower than OR Lines instead of the close price.
TP Method -> The method for the algorithm to use when determining TP zones.
Dynamic = This TP method essentially tries to find the bar that price starts declining the current trend and going to the other direction, and puts a TP zone there. To achieve this, it uses an EMA line, and when the close price of a bar crosses the EMA line, It's a TP spot.
ATR = In this TP method, instead of a dynamic approach the TP zones are pre-determined using the ATR of the entry bar. This option is generally for traders who just want to know their TP spots beforehand while trading. Selecting this option will also show TP zones at the ORB Dashboard.
"Dynamic" option generally performs better, while the "ATR" method is safer to use.
EMA Length -> This setting determines the length of the EMA line used in "Dynamic TP method" and "EMA Breakout Condition". This is completely up to the trader's choice, though the default option should generally perform well. You might want to experiment with this setting and find the optimal length for the current ticker.
Stop-Loss -> Algorithm will place the Stop-Loss zone using setting.
Safer = The SL zone will be placed closer to the OR High for a bullish entry, and closer to the OR Low for a bearish entry.
Balanced = The SL zone will be placed in the center of OR High & OR Low
Risky = The SL zone will be placed closer to the OR Low for a bullish entry, and closer to the OR High for a bearish entry.
Adaptive SL -> This option only takes effect if the first TP zone is hit.
Enabled = After the 1st TP zone is hit, the SL zone will be moved to the entry price, essentially making the position risk-free.
Disabled = The SL zone will never change.
2. ORB Dashboard
ORB Dashboard shows the information about the current session.
3. ORB Backtesting
ORB Backtesting Dashboard allows you to see past performance of the algorithm in the current ticker with current settings.
Total amount of days that can be backtested depends on your TV subscription.
Backtesting Exit Ratios -> You can select how much of percent your entry will be closed at any TP zone while backtesting. For example, %90, %5, %5 means that %90 of the position will be closed at the first TP zone, %5 of it will be closed at the 2nd TP zone, and %5 of it will be closed at the last TP zone.
[imba]lance algo🟩 INTRODUCTION
Hello, everyone!
Please take the time to review this description and source code to utilize this script to its fullest potential.
🟩 CONCEPTS
This is a trend indicator. The trend is the 0.5 fibonacci level for a certain period of time.
A trend change occurs when at least one candle closes above the level of 0.236 (for long) or below 0.786 (for short). Also it has massive amout of settings and features more about this below.
With good settings, the indicator works great on any market and any time frame!
A distinctive feature of this indicator is its backtest panel. With which you can dynamically view the results of setting up a strategy such as profit, what the deposit size is, etc.
Please note that the profit is indicated as a percentage of the initial deposit. It is also worth considering that all profit calculations are based on the risk % setting.
🟩 FEATURES
First, I want to show you what you see on the chart. And I’ll show you everything closer and in more detail.
1. Position
2. Statistic panel
3. Backtest panel
Indicator settings:
Let's go in order:
1. Strategies
This setting is responsible for loading saved strategies. There are only two preset settings, MANUAL and UNIVERSAL. If you choose any strategy other than MANUAL, then changing the settings for take profits, stop loss, sensitivity will not bring any results.
You can also save your customized strategies, this is discussed in a separate paragraph “🟩HOW TO SAVE A STRATEGY”
2. Sensitive
Responsible for the time period in bars to create Fibonacci levels
3. Start calculating date
This is the time to start backtesting strategies
4. Position group
Show checkbox - is responsible for displaying positions
Fill checkbox - is responsible for filling positions with background
Risk % - is responsible for what percentage of the deposit you are willing to lose if there is a stop loss
BE target - here you can choose when you reach which take profit you need to move your stop loss to breakeven
Initial deposit- starting deposit for profit calculation
5. Stoploss group
Fixed stoploss % checkbox - If choosed: stoploss will be calculated manually depending on the setting below( formula: entry_price * (1 - stoploss percent)) If NOT choosed: stoploss will be ( formula: fibonacci level(0.786/0.236) * (1 + stoploss percent))
6. Take profit group
This group of settings is responsible for how far from the entry point take profits will be and what % of the position to fix
7. RSI
Responsible for configuring the built-in RSI. Suitable bars will be highlighted with crosses above or below, depending on overbought/oversold
8. Infopanels group
Here I think everything is clear, you can hide or show information panels
9. Developer mode
If enabled, all events that occur will be shown, for example, reaching a take profit or stop loss with detailed information about the unfixed balance of the position
🟩 HOW TO USE
Very simple. All you need is to wait for the trend to change to long or short, you will immediately see a stop loss and four take profits, and you will also see prices. Like in this picture:
🟩 ALERTS
There are 3 types of alerts:
1. Long signal
2. Short signal
3. Any alert() function call - will be send to you json with these fields
{
"side": "LONG",
"entry": "64.454",
"tp1": "65.099",
"tp2": "65.743",
"tp3": "66.388",
"tp4": "67.032",
"winrate": "35.42%",
"strategy": "MANUAL",
"beTargetTrigger": "1",
"stop": "64.44"
}
🟩 HOW TO SAVE A STRATEGY
First, you need to make sure that the “MANUAL” strategy is selected in the strategy settings.
After this, you can start selecting parameters that will show the largest profit in the statistics panel.
I have highlighted what you need to pay attention to when choosing a strategy
Let's assume you have set up a strategy. The main question is how to preserve it?
Let’s say the strategy turned out with the following parameters:
Next we need to find this section of code:
// STRATS
selector(string strategy_name) =>
strategy_settings = Strategy_settings.new()
switch strategy_name
"MANUAL" =>
strategy_settings.sensitivity := 18
strategy_settings.risk_percent := 1
strategy_settings.break_even_target := "1"
strategy_settings.tp1_percent := 1
strategy_settings.tp1_percent_fix := 40
strategy_settings.tp2_percent := 2
strategy_settings.tp2_percent_fix := 30
strategy_settings.tp3_percent := 3
strategy_settings.tp3_percent_fix := 20
strategy_settings.tp4_percent := 4
strategy_settings.tp4_percent_fix := 10
strategy_settings.fixed_stop := false
strategy_settings.sl_percent := 0.0
"UNIVERSAL" =>
strategy_settings.sensitivity := 20
strategy_settings.risk_percent := 1
strategy_settings.break_even_target := "1"
strategy_settings.tp1_percent := 1
strategy_settings.tp1_percent_fix := 40
strategy_settings.tp2_percent := 2
strategy_settings.tp2_percent_fix := 30
strategy_settings.tp3_percent := 3
strategy_settings.tp3_percent_fix := 20
strategy_settings.tp4_percent := 4
strategy_settings.tp4_percent_fix := 10
strategy_settings.fixed_stop := false
strategy_settings.sl_percent := 0.0
// "NEW STRATEGY" =>
// strategy_settings.sensitivity := 20
// strategy_settings.risk_percent := 1
// strategy_settings.break_even_target := "1"
// strategy_settings.tp1_percent := 1
// strategy_settings.tp1_percent_fix := 40
// strategy_settings.tp2_percent := 2
// strategy_settings.tp2_percent_fix := 30
// strategy_settings.tp3_percent := 3
// strategy_settings.tp3_percent_fix := 20
// strategy_settings.tp4_percent := 4
// strategy_settings.tp4_percent_fix := 10
// strategy_settings.fixed_stop := false
// strategy_settings.sl_percent := 0.0
strategy_settings
// STRATS
Let's uncomment on the latest strategy called "NEW STRATEGY" rename it to "SOL 5m" and change the sensitivity:
// STRATS
selector(string strategy_name) =>
strategy_settings = Strategy_settings.new()
switch strategy_name
"MANUAL" =>
strategy_settings.sensitivity := 18
strategy_settings.risk_percent := 1
strategy_settings.break_even_target := "1"
strategy_settings.tp1_percent := 1
strategy_settings.tp1_percent_fix := 40
strategy_settings.tp2_percent := 2
strategy_settings.tp2_percent_fix := 30
strategy_settings.tp3_percent := 3
strategy_settings.tp3_percent_fix := 20
strategy_settings.tp4_percent := 4
strategy_settings.tp4_percent_fix := 10
strategy_settings.fixed_stop := false
strategy_settings.sl_percent := 0.0
"UNIVERSAL" =>
strategy_settings.sensitivity := 20
strategy_settings.risk_percent := 1
strategy_settings.break_even_target := "1"
strategy_settings.tp1_percent := 1
strategy_settings.tp1_percent_fix := 40
strategy_settings.tp2_percent := 2
strategy_settings.tp2_percent_fix := 30
strategy_settings.tp3_percent := 3
strategy_settings.tp3_percent_fix := 20
strategy_settings.tp4_percent := 4
strategy_settings.tp4_percent_fix := 10
strategy_settings.fixed_stop := false
strategy_settings.sl_percent := 0.0
"SOL 5m" =>
strategy_settings.sensitivity := 15
strategy_settings.risk_percent := 1
strategy_settings.break_even_target := "1"
strategy_settings.tp1_percent := 1
strategy_settings.tp1_percent_fix := 40
strategy_settings.tp2_percent := 2
strategy_settings.tp2_percent_fix := 30
strategy_settings.tp3_percent := 3
strategy_settings.tp3_percent_fix := 20
strategy_settings.tp4_percent := 4
strategy_settings.tp4_percent_fix := 10
strategy_settings.fixed_stop := false
strategy_settings.sl_percent := 0.0
strategy_settings
// STRATS
Now let's find this code:
strategy_input = input.string(title = "STRATEGY", options = , defval = "MANUAL", tooltip = "EN:\nTo manually configure the strategy, select MANUAL otherwise, changing the settings won't have any effect\nRU:\nЧтобы настроить стратегию вручную, выберите MANUAL в противном случае изменение настроек не будет иметь никакого эффекта")
And let's add our new strategy there, it turned out like this:
strategy_input = input.string(title = "STRATEGY", options = , defval = "MANUAL", tooltip = "EN:\nTo manually configure the strategy, select MANUAL otherwise, changing the settings won't have any effect\nRU:\nЧтобы настроить стратегию вручную, выберите MANUAL в противном случае изменение настроек не будет иметь никакого эффекта")
That's all. Our new strategy is now saved! It's simple! Now we can select it in the list of strategies:
PlurexSignalStrategyLibrary "PlurexSignalStrategy"
Provides functions that wrap the built in TradingView strategy functions so you can seemlessly integrate with Plurex Signal automation.
NOTE: Be sure to:
- set your strategy default_qty_value to the default entry percentage of your signal
- set your strategy default_qty_type to strategy.percent_of_equity
- set your strategy pyramiding to some value greater than 1 or something appropriate to your strategy in order to have multiple entries.
long(secret, budgetPercentage, priceLimit, marketOverride)
Open a new long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
longAndFixedStopLoss(secret, stop, budgetPercentage, priceLimit, marketOverride)
Open a new long entry. Wraps strategy function and sends plurex message as an alert. Also sets a gobal stop loss for full open position
Parameters:
secret : The secret for your Signal on plurex
stop : The trigger price for the stop loss. See strategy.exit documentation
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
longAndTrailingStopLoss(secret, trail_offset, trail_price, trail_points, budgetPercentage, priceLimit, marketOverride)
Open a new long entry. Wraps strategy function and sends plurex message as an alert. Also sets a gobal trailing stop loss for full open position. You must set one of trail_price or trail_points.
Parameters:
secret : The secret for your Signal on plurex
trail_offset : See strategy.exit documentation
trail_price : See strategy.exit documentation
trail_points : See strategy.exit documentation
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
short(secret, budgetPercentage, priceLimit, marketOverride)
Open a new short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
shortAndFixedStopLoss(secret, stop, budgetPercentage, priceLimit, marketOverride)
Open a new short entry. Wraps strategy function and sends plurex message as an alert. Also sets a gobal stop loss for full open position
Parameters:
secret : The secret for your Signal on plurex
stop : The trigger price for the stop loss. See strategy.exit documentation
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
shortAndTrailingStopLoss(secret, trail_offset, trail_price, trail_points, budgetPercentage, priceLimit, marketOverride)
Open a new short entry. Wraps strategy function and sends plurex message as an alert. Also sets a gobal trailing stop loss for full open position. You must set one of trail_price or trail_points.
Parameters:
secret : The secret for your Signal on plurex
trail_offset : See strategy.exit documentation
trail_price : See strategy.exit documentation
trail_points : See strategy.exit documentation
budgetPercentage : Optional, The percentage of budget to use in the entry.
priceLimit : Optional, The worst price to accept for the entry.
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeAll(secret, marketOverride)
Close all positions. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLongs(secret, marketOverride)
close all longs. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeShorts(secret, marketOverride)
close all shorts. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLastLong(secret, marketOverride)
Close last long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLastShort(secret, marketOverride)
Close last short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeFirstLong(secret, marketOverride)
Close first long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeFirstShort(secret, marketOverride)
Close first short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
Simple and Profitable Scalping Strategy (ForexSignals TV)Strategy is based on the "SIMPLE and PROFITABLE Forex Scalping Strategy" taken from YouTube channel ForexSignals TV.
See video for a detailed explaination of the whole strategy.
I'm not entirely happy with the performance of this strategy yet however I do believe it has potential as the concept makes a lot of sense.
I'm open to any ideas people have on how it could be improved.
Strategy incorporates the following features:
Risk management:
Configurable X% loss per stop (default to 1%)
Configurable R:R ratio
Trade entry:
Based on stratgey conditions outlined below
Trade exit:
Based on stratgey conditions outlined below
Backtesting:
Configurable backtesting range by date
Trade drawings:
Each entry condition indicator can be turned on and off
TP/SL boxes drawn for all trades. Can be turned on and off
Trade exit information labels. Can be turned on and off
NOTE: Trade drawings will only be applicable when using overlay strategies
Debugging:
Includes section with useful debugging techniques
Strategy conditions
Trade entry:
LONG
C1: On higher timeframe trend EMAs, Fast EMA must be above Slow EMA
C2: On higher timeframe trend EMAs, price must be above Fast EMA
C3: On current timeframe entry EMAs, Fast EMA must be above Medium EMA and Medium EMA must be above Slow EMA
C4: On current timeframe entry EMAs, all 3 EMA lines must have fanned out in upward direction for previous X candles (configurable)
C5: On current timeframe entry EMAs, previous candle must have closed above and not touched any EMA lines
C6: On current timeframe entry EMAs, current candle must have pulled back to touch the EMA line(s)
C7: Price must break through the high of the last X candles (plus price buffer) to trigger entry (stop order entry)
SHORT
C1: On higher timeframe trend EMAs, Fast EMA must be below Slow EMA
C2: On higher timeframe trend EMAs, price must be below Fast EMA
C3: On current timeframe entry EMAs, Fast EMA must be below Medium EMA and Medium EMA must be below Slow EMA
C4: On current timeframe entry EMAs, all 3 EMA lines must have fanned out in downward direction for previous X candles (configurable)
C5: On current timeframe entry EMAs, previous candle must have closed above and not touched any EMA lines
C6: On current timeframe entry EMAs, current candle must have pulled back to touch the EMA line(s)
C7: Price must break through the low of the last X candles (plus price buffer) to trigger entry (stop order entry)
Trade entry:
Calculated position size based on risk tolerance
Entry price is a stop order set just above (buffer configurable) the recent swing high/low (long/short)
Trade exit:
Stop Loss is set just below (buffer configurable) trigger candle's low/high (long/short)
Take Profit calculated from Stop Loss using R:R ratio
Credits
"SIMPLE and PROFITABLE Forex Scalping Strategy" taken from YouTube channel ForexSignals TV
Price Pivots for NASDQ 100 StocksPrice Pivots for NASDQ 100 Stocks
What is this Indicator?
• This indicator calculates the price range a Stock can move in a Day.
Advantages of this Indicator
• This is a Leading indicator, not Dynamic or Repaint.
• Helps to identify the tight range of price movement.
• Can easily identify the Options strike price.
• Develops a discipline in placing Targets.
Disadvantages of this Indicator
• The indicator is specifically made for NASDQ 100 stocks. The levels won't work for other stocks.
• The indicator shows nothing for other indexes and stocks other than above mentioned.
• The data need to be entered manually.
Who to use?
Highly beneficial for Day Traders, it can be used for Swing and Positions as well.
What timeframe to use?
• Any timeframe.
• The highlighted levels in Red and Green will not show correct levels in 1 minute timeframe.
• 5min is recommended for Day Traders.
When to use?
• Wait for proper swing to form.
• Recommended to avoid 1st 1 hour or market open, that is 9.15am to 10.15 or 10.30am.
• Within this time a proper swing will be formed.
What are the Lines?
• The concept is the price will move from one pivot to another.
• Entry and Exit can be these levels as Reversal or Retracement.
Gray Lines:
• Every lines with price labels are the Strike Prices in the Option Chain.
• Price moves from 1 Strike Price level to another.
• The dashed lines are average levels of 2 Strike Prices.
Red & Green Lines:
• The Red and Green Lines will appear only after the first 1 hour.
• The levels are calculated based on the 1st 1 hour.
• Red Lines are important Resistance levels, these are strong Bearish reversal points. It is also a breakout level, this need to be figured out from the past levels, trend, percentage change and consolidation.
• Green Lines are important Support levels, these are strong Bullish reversal points. It is also a breakdown level, this need to be figured out from the past levels, trend, percentage change and consolidation.
What are the Labels?
• First Number: Price of that level.
• Numbers in (): Percentage change and Change of price from LTP (Last Traded Price) to that Level.
How to use?
Entry:
• Enter when price is closer to the Red or Green lines.
• Enter after considering previous Swing and Trend.
• Note the 50% of previous Swing.
• Enter Short when price reverse from each level.
• If 50% of swing and the pivot level is closer it can be a good entry.
Exit:
• Use the logic of Entry, each level can be a target.
• Exit when price is closer to the Red or Green lines.
Indicator Menu
Source
• Custom: Enter the price manually after choosing the Source as Custom to show the Pivots at that price.
• LTP: Pivot is calculated based on Last Traded Price.
• Day Open: Pivot is calculated based on current day opening price.
• PD Close: Pivot is calculated based on previous day closing price.
• PD HL2: Pivot is calculated based on previous day average of High and Low.
• PD HLC3: Pivot is calculated based on previous day average of High, Low and Close.
"Time (Vertical Lines)"
• This is a marker of every 1 hour.
• Usually major price movement happen between previous day last 1 hour to today first 1 hour.
• Two swings can happen between first 2 hour of current day.
• At the end of the day last 1 hour another important movement will happen.
• Usually rest of the time won't show any interesting movement.
To the Users
• Certain symbols may show the levels as a single line. For such symbols choose a different Source or Timeframe from the indicator menu.
• Please inform if any of the Symbol's price levels don't react to the pivots , include the Symbol a well.
• Also inform if you notice any wrong values, errors or abnormal behavior in the indicator.
• Feel free to suggest or adding new features and options.
General Tips
• It is good if Stock trend is same as that of Index trend.
• Lots of indicators creates lots of confusion.
• Keep the chart simple and clean.
• Buy Low and Sell High.
• Master averages or 50%.
• Previous Swing High and Swing Low are crucial.
Important Note
• Currently the levels are in testing stage.
• Eventually the levels of certain symbols will be corrected after each update and test.
Price Pivots for NSE Index & F&O StocksPrice Pivots for NSE Index & F&O Stocks
What is this Indicator?
• This indicator calculates the price range a Stock or Index can move in a Day, Week or Month.
Advantages of this Indicator
• This is a Leading indicator, not Dynamic or Repaint.
• Helps to identify the tight range of price movement.
• Can easily identify the Options strike price.
• The levels are more reliable and authentic than Gann Square of 9 Levels.
• Develops a discipline in placing Targets.
Disadvantages of this Indicator
• The indicator is specifically made for National Stock Exchange of India (NSE) listed index and stocks.
• The indicator is calculated only for index NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY and Stocks listed in Futures and Options.
• The indicator shows nothing for other indexes and stocks other than above mentioned.
• The data need to be entered manually.
• The data need to be updated manually when the F&O listed stocks are updated.
Who to use?
Highly beneficial for Day Traders, it can be used for Swing and Positions as well.
What timeframe to use?
• Any timeframe.
• The highlighted levels in Red and Green will not show correct levels in 1 minute timeframe.
• 5min is recommended for Day Traders.
When to use?
• Wait for proper swing to form.
• Recommended to avoid 1st 1 hour or market open, that is 9.15am to 10.15 or 10.30am.
• Within this time a proper swing will be formed.
How to use?
Entry
• Enter when the Price reach closer to the Blue line.
• Enter Long when the Price takes a pullback or breakout at the Red lines.
Exit
• Exit position when the Price reach closer to the Red lines in Long positions.
What are the Lines?
Gray Lines:
• Every lines with price labels are the Strike Prices in the Option Chain from NSE website.
• Price moves from 1 Strike Price level to another.
• The dashed lines are average levels of 2 Strike Prices.
Red & Green Lines:
• The Red and Green Lines will appear only after the first 1 hour.
• The levels are calculated based on the 1st 1 hour.
• Red Lines are important Resistance levels, these are strong Bearish reversal points. It is also a breakout level, this need to be figured out from the past levels, trend, percentage change and consolidation.
• Green Lines are important Support levels, these are strong Bullish reversal points. It is also a breakdown level, this need to be figured out from the past levels, trend, percentage change and consolidation.
What are the Labels?
• First Number: Price of that level.
• Numbers in (): Percentage change and Change of price from LTP(Last Traded Price) to that Level.
How to use?
Entry:
• Enter when price is closer to the Red or Green lines.
• Enter after considering previous Swing and Trend.
• Note the 50% of previous Swing.
• Enter Short when price reverse from each level.
• If 50% of swing and the pivot level is closer it can be a good entry.
Exit:
• Use the logic of Entry, each level can be a target.
• Exit when price is closer to the Red or Green lines.
Indicator Menu
Source
• Custom: Enter the price manually after choosing the Source as Custom to show the Pivots at that price.
• LTP: Pivot is calculated based on Last Traded Price.
• Day Open: Pivot is calculated based on current day opening price.
• PD Close: Pivot is calculated based on previous day closing price.
• PD HL2: Pivot is calculated based on previous day average of High and Low.
• PD HLC3: Pivot is calculated based on previous day average of High, Low and Close.
"Time (IST) (Vertical)"
• This is a marker of every 1 hour.
• Usually major price movement happen between previous day last 1 hour (2:15 pm) to today first 1 hour (10:15 pm).
• Two swings can happen between first 2 hour of current day.
• At the end of the day last 1 hour from 2.15 pm another important movement will happen.
• Usually rest of the time won't show any interesting movement.
To the Users
• Certain symbols may show the levels as a single line. For such symbols choose a different Source or Timeframe from the indicator menu.
• Please inform if any of the Symbol's price levels don't react to the pivots, include the Symbol a well.
• Also inform if you notice any wrong values, errors or abnormal behavior in the indicator.
• Feel free to suggest or adding new features and options.
General Tips
• It is good if Stock trend is same as that of NIFTY trend.
• Lots of indicators creates lots of confusion.
• Keep the chart simple and clean.
• Buy Low and Sell High.
• Master averages or 50%.
• Previous Swing High and Swing Low are crucial.
taLibrary "ta"
█ OVERVIEW
This library holds technical analysis functions calculating values for which no Pine built-in exists.
Look first. Then leap.
█ FUNCTIONS
cagr(entryTime, entryPrice, exitTime, exitPrice)
It calculates the "Compound Annual Growth Rate" between two points in time. The CAGR is a notional, annualized growth rate that assumes all profits are reinvested. It only takes into account the prices of the two end points — not drawdowns, so it does not calculate risk. It can be used as a yardstick to compare the performance of two instruments. Because it annualizes values, the function requires a minimum of one day between the two end points (annualizing returns over smaller periods of times doesn't produce very meaningful figures).
Parameters:
entryTime : The starting timestamp.
entryPrice : The starting point's price.
exitTime : The ending timestamp.
exitPrice : The ending point's price.
Returns: CAGR in % (50 is 50%). Returns `na` if there is not >=1D between `entryTime` and `exitTime`, or until the two time points have not been reached by the script.
█ v2, Mar. 8, 2022
Added functions `allTimeHigh()` and `allTimeLow()` to find the highest or lowest value of a source from the first historical bar to the current bar. These functions will not look ahead; they will only return new highs/lows on the bar where they occur.
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `high`.
Returns: (float) The highest value tracked.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `low`.
Returns: (float) The lowest value tracked.
█ v3, Sept. 27, 2022
This version includes the following new functions:
aroon(length)
Calculates the values of the Aroon indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the Aroon-Up and Aroon-Down values.
coppock(source, longLength, shortLength, smoothLength)
Calculates the value of the Coppock Curve indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
longLength (simple int) : (simple int) Number of bars for the fast ROC value (length).
shortLength (simple int) : (simple int) Number of bars for the slow ROC value (length).
smoothLength (simple int) : (simple int) Number of bars for the weigted moving average value (length).
Returns: (float) The oscillator value.
dema(source, length)
Calculates the value of the Double Exponential Moving Average (DEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `source`.
dema2(src, length)
An alternate Double Exponential Moving Average (Dema) function to `dema()`, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `src`.
dm(length)
Calculates the value of the "Demarker" indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
ema2(src, length)
An alternate ema function to the `ta.ema()` built-in, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Number of bars (length).
Returns: (float) The exponentially weighted moving average of the `src`.
eom(length, div)
Calculates the value of the Ease of Movement indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
div (simple int) : (simple int) Divisor used for normalzing values. Optional. The default is 10000.
Returns: (float) The oscillator value.
frama(source, length)
The Fractal Adaptive Moving Average (FRAMA), developed by John Ehlers, is an adaptive moving average that dynamically adjusts its lookback period based on fractal geometry.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The fractal adaptive moving average of the `source`.
ft(source, length)
Calculates the value of the Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
ht(source)
Calculates the value of the Hilbert Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
ichimoku(conLength, baseLength, senkouLength)
Calculates values of the Ichimoku Cloud indicator, including tenkan, kijun, senkouSpan1, senkouSpan2, and chikou. NOTE: offsets forward or backward can be done using the `offset` argument in `plot()`.
Parameters:
conLength (int) : (series int) Length for the Conversion Line (Tenkan). The default is 9 periods, which returns the mid-point of the 9 period Donchian Channel.
baseLength (int) : (series int) Length for the Base Line (Kijun-sen). The default is 26 periods, which returns the mid-point of the 26 period Donchian Channel.
senkouLength (int) : (series int) Length for the Senkou Span 2 (Leading Span B). The default is 52 periods, which returns the mid-point of the 52 period Donchian Channel.
Returns: ( [float, float, float, float, float ]) A tuple of the Tenkan, Kijun, Senkou Span 1, Senkou Span 2, and Chikou Span values. NOTE: by default, the senkouSpan1 and senkouSpan2 should be plotted 26 periods in the future, and the Chikou Span plotted 26 days in the past.
ift(source)
Calculates the value of the Inverse Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
kvo(fastLen, slowLen, trigLen)
Calculates the values of the Klinger Volume Oscillator.
Parameters:
fastLen (simple int) : (simple int) Length for the fast moving average smoothing parameter calculation.
slowLen (simple int) : (simple int) Length for the slow moving average smoothing parameter calculation.
trigLen (simple int) : (simple int) Length for the trigger moving average smoothing parameter calculation.
Returns: ( [float, float ]) A tuple of the KVO value, and the trigger value.
pzo(length)
Calculates the value of the Price Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
rms(source, length)
Calculates the Root Mean Square of the `source` over the `length`.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The RMS value.
rwi(length)
Calculates the values of the Random Walk Index.
Parameters:
length (simple int) : (simple int) Lookback and ATR smoothing parameter length.
Returns: ( [float, float ]) A tuple of the `rwiHigh` and `rwiLow` values.
stc(source, fast, slow, cycle, d1, d2)
Calculates the value of the Schaff Trend Cycle indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
fast (simple int) : (simple int) Length for the MACD fast smoothing parameter calculation.
slow (simple int) : (simple int) Length for the MACD slow smoothing parameter calculation.
cycle (simple int) : (simple int) Number of bars for the Stochastic values (length).
d1 (simple int) : (simple int) Length for the initial %D smoothing parameter calculation.
d2 (simple int) : (simple int) Length for the final %D smoothing parameter calculation.
Returns: (float) The oscillator value.
stochFull(periodK, smoothK, periodD)
Calculates the %K and %D values of the Full Stochastic indicator.
Parameters:
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
stochRsi(lengthRsi, periodK, smoothK, periodD, source)
Calculates the %K and %D values of the Stochastic RSI indicator.
Parameters:
lengthRsi (simple int) : (simple int) Length for the RSI smoothing parameter calculation.
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
source (float) : (series int/float) Series of values to process. Optional. The default is `close`.
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
supertrend(factor, atrLength, wicks)
Calculates the values of the SuperTrend indicator with the ability to take candle wicks into account, rather than only the closing price.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is false.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
szo(source, length)
Calculates the value of the Sentiment Zone Oscillator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
t3(source, length, vf)
Calculates the value of the Tilson Moving Average (T3).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
t3Alt(source, length, vf)
An alternate Tilson Moving Average (T3) function to `t3()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
tema(source, length)
Calculates the value of the Triple Exponential Moving Average (TEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
tema2(source, length)
An alternate Triple Exponential Moving Average (TEMA) function to `tema()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
trima(source, length)
Calculates the value of the Triangular Moving Average (TRIMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `source`.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a "series int" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `src`.
trix(source, length, signalLength, exponential)
Calculates the values of the TRIX indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
signalLength (simple int) : (simple int) Length for smoothing the signal line.
exponential (simple bool) : (simple bool) Condition to determine whether exponential or simple smoothing is used. Optional. The default is `true` (exponential smoothing).
Returns: ( [float, float, float ]) A tuple of the TRIX value, the signal value, and the histogram.
uo(fastLen, midLen, slowLen)
Calculates the value of the Ultimate Oscillator.
Parameters:
fastLen (simple int) : (series int) Number of bars for the fast smoothing average (length).
midLen (simple int) : (series int) Number of bars for the middle smoothing average (length).
slowLen (simple int) : (series int) Number of bars for the slow smoothing average (length).
Returns: (float) The oscillator value.
vhf(source, length)
Calculates the value of the Vertical Horizontal Filter.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
vi(length)
Calculates the values of the Vortex Indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the viPlus and viMinus values.
vzo(length)
Calculates the value of the Volume Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
williamsFractal(period)
Detects Williams Fractals.
Parameters:
period (int) : (series int) Number of bars (length).
Returns: ( [bool, bool ]) A tuple of an up fractal and down fractal. Variables are true when detected.
wpo(length)
Calculates the value of the Wave Period Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
█ v7, Nov. 2, 2023
This version includes the following new and updated functions:
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float" `length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
changePercent(newValue, oldValue)
Calculates the percentage difference between two distinct values.
Parameters:
newValue (float) : (series int/float) The current value.
oldValue (float) : (series int/float) The previous value.
Returns: (float) The percentage change from the `oldValue` to the `newValue`.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
highestSince(cond, source)
Tracks the highest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the highest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `high`.
Returns: (float) The highest `source` value since the last time the `cond` was `true`.
lowestSince(cond, source)
Tracks the lowest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the lowest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `low`.
Returns: (float) The lowest `source` value since the last time the `cond` was `true`.
relativeVolume(length, anchorTimeframe, isCumulative, adjustRealtime)
Calculates the volume since the last change in the time value from the `anchorTimeframe`, the historical average volume using bars from past periods that have the same relative time offset as the current bar from the start of its period, and the ratio of these volumes. The volume values are cumulative by default, but can be adjusted to non-accumulated with the `isCumulative` parameter.
Parameters:
length (simple int) : (simple int) The number of periods to use for the historical average calculation.
anchorTimeframe (simple string) : (simple string) The anchor timeframe used in the calculation. Optional. Default is "D".
isCumulative (simple bool) : (simple bool) If `true`, the volume values will be accumulated since the start of the last `anchorTimeframe`. If `false`, values will be used without accumulation. Optional. The default is `true`.
adjustRealtime (simple bool) : (simple bool) If `true`, estimates the cumulative value on unclosed bars based on the data since the last `anchor` condition. Optional. The default is `false`.
Returns: ( [float, float, float ]) A tuple of three float values. The first element is the current volume. The second is the average of volumes at equivalent time offsets from past anchors over the specified number of periods. The third is the ratio of the current volume to the historical average volume.
rma2(source, length)
An alternate RMA function to the `ta.rma()` built-in, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The rolling moving average of the `source`.
supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float" `atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is `false`.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
vStop(source, atrLength, atrFactor)
Calculates an ATR-based stop value that trails behind the `source`. Can serve as a possible stop-loss guide and trend identifier.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
vStop2(source, atrLength, atrFactor)
An alternate Volatility Stop function to `vStop()`, which allows a "series float" `atrLength` argument.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
Removed Functions:
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a
"series int" length argument.
ColorSchemeLibrary "ColorScheme"
A color scheme generator.
init() Initiate the array data registry that will hold the color profile. Returns: tuple with 2 arrays (string array, color array)
check_registry_integrity(key_registry, color_registry) Checks the integrity of the registers.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data holder array.
Returns: void.
add(key_registry, color_registry, key, value) Add new (key, color) entry to the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
key : string, the unique key to reference the value.
value : color, the color value of the specified key.
Returns: void.
get_color(key_registry, color_registry, key) Get a (key, color) entry from the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
key : string, the unique key to reference the value.
Returns: void.
edit_key(key_registry, color_registry, key, new_key) Edit a (key, color) entry in the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
key : string, the unique key to reference the value.
new_key : string, the unique key to reference the value.
Returns: void.
edit_color(key_registry, color_registry, key, new_value) Edit a (key, color) entry in the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
key : string, the unique key to reference the value.
new_value : color, the color value of the specified key.
Returns: void.
delete(key_registry, color_registry, key) Delete a (key, color) entry from the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
key : string, the unique key to reference the value.
Returns: void.
delete_all(key_registry, color_registry) Delete all (key, color) entrys from the registry.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
Returns: void.
model(index) Enumerate models available to profile colors.
Parameters:
index : int, index of model. (1:'monochromatic', 2:'analog', 3:'triadic', 4:'tetradic', 5:'square', anything else:'monochromatic')
Returns: string.
generate_scheme(key_registry, color_registry, primary, model) Generate a multi color scheme.
Parameters:
key_registry : string array, key data holder array.
color_registry : color array, color value data array.
primary : color, the origin color to base the profile.
model : string, default='monochromatic', options=('monochromatic', 'triadic near', 'triadic far', 'tetradic')
Returns: void.
Bullish Divergent Bar DCA Strategy [Skyrexio]Overview
Bullish Divergent Bar DCA Strategy is a long-only, multi-layer Dollar-Cost Averaging (DCA) strategy that builds positions around bullish divergent bars formed below the Williams Alligator. It detects potential local bottoms and then scales into the move using up to four pyramiding entries, each with its own size and price threshold. The strategy optionally incorporates Market Facilitation Index (MFI) and Awesome Oscillator (AO) momentum to strengthen reversal confirmation and uses ATR-based take profit on the averaged entry price.
Unique Features
Layered DCA entries with equity-based sizing . It supports up to four DCA layers, where each additional layer is opened only after a configurable percentage drawdown from the first entry and position size is computed as a fraction of current equity via a geometric weighting scheme.
Optional AO and MFI confirmation . Users can require Awesome Oscillator momentum divergence, MFI/volume “squat” bars, or both to confirm that the reversal bar is accompanied by capitulation and weakening downside momentum.
ATR-based dynamic take profit . Take profit is defined as a multiple of ATR added to the current average entry price, automatically adjusting exits to prevailing volatility.
Built-in DCA visualization . The script can plot the initial entry level and all DCA thresholds to make the averaging structure and risk visually transparent on the chart.
Methodology
The core entry logic starts from a bullish divergent bar definition: the bar must close above its midpoint (close > hl2) and be the lowest low within the user-defined lookback window, flagging a local swing low. On top of this, the bar must form entirely below all three Alligator lines, ensuring that the pattern appears after a sustained downside move rather than inside noise.
If enabled, AO adds a momentum filter by requiring the Awesome Oscillator difference to be negative (descending bar on AO histogram), signaling fading downside momentum at the potential bottom. If the MFI filter is enabled, the bar (or one of the last two bars) must be a “squat” bar where spread narrows while volume increases, approximating effort vs. result exhaustion.
Once a valid bullish reversal bar is detected and the time is within the configured trading window, the strategy opens the first DCA layer using a stop entry at the bar’s high (confirmation level), only entering if price actually breaks the bar high. Additional layers (second, third, and fourth entries) are only allowed if price trades below percentage thresholds from the first entry price and a new valid bullish reversal bar forms, thereby averaging down into deep pullbacks while still requiring fresh reversal evidence.
While any DCA position is open, the strategy continuously recalculates the take profit as the current volume-weighted average entry price plus ATR multiplied by a user-defined factor. All individual entries share the same take profit level through separate strategy exit calls, so the entire stacked position exits together once price has moved sufficiently above the averaged entry.
Strategy settings
In the inputs window, users can configure the following strategy settings:
sourceUuid / secretToken: Identifiers used to format JSON alerts for automated execution through webhooks.
Trade Start Date/Time: Beginning of the backtest/live-trading window.
Trade Stop Date/Time: End of the backtest/live-trading window.
Show DCA Levels (default = false): Toggles plotting of the initial entry level and all three DCA thresholds on the chart.
Enable MFI (default = false): Enables the MFI-style volume/spread filter.
Enable AO (default = false): Enables Awesome Oscillator confirmation.
Number Of Bar For Lowest Bar (default = 7): Lookback window used to identify the lowest low bar for the bullish reversal bar condition.
Layer 2 Threshold Percent (default = 4.0): Percentage drop from the first layer price that must be reached to allow the second DCA entry.
Layer 3 Threshold Percent (default = 10.0): Percentage drop from the first layer price required to unlock the third DCA layer.
Layer 4 Threshold Percent (default = 22.0): Percentage drop from the first layer price required to unlock the fourth DCA layer.
Position Size Multiplier (default = 2.0): Multiplier used in the geometric weighting scheme to determine how much equity is allocated to each additional DCA layer.
Number Of ATR For Take Profit (default = 2.0): ATR multiple added to the current average entry price to calculate the shared take profit for all open layers.
Users can refine these parameters during backtesting to fit the volatility profile and structure of the specific asset and timeframe.
Justification of Methodology
Before understanding why this particular combination of indicator has been chosen let's briefly explain what is Williams Alligator, MFI and AO.
let’s start with the Williams Alligator. Developed by Bill Williams, the Alligator is a technical indicator that identifies trends and potential market reversals. It consists of three smoothed moving averages:
Jaw (Blue Line): The slowest of the three, based on a 13-period smoothed moving average shifted 8 bars ahead.
Teeth (Red Line): The medium-speed line, derived from an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, calculated using a 5-period smoothed moving average shifted 3 bars forward.
When the lines diverge and align in order, the "Alligator" is "awake," signaling a strong trend. When the lines overlap or intertwine, the "Alligator" is "asleep," indicating a range-bound or sideways market. This indicator helps traders determine when to enter or avoid trades.
The Awesome Oscillator (AO), developed by Bill Williams, is a momentum indicator designed to measure market momentum by contrasting recent price movements with a longer-term historical perspective. It helps traders detect potential trend reversals and assess the strength of ongoing trends.
The formula for AO is as follows:
AO = SMA5(Median Price) − SMA34(Median Price)
where:
Median Price = (High + Low) / 2
SMA5 = 5-period Simple Moving Average of the Median Price
SMA 34 = 34-period Simple Moving Average of the Median Price
The Market Facilitation Index (MFI) is a technical indicator that measures the price movement per unit of volume, helping traders gauge the efficiency of price movement in relation to trading volume. Here's how you can calculate it:
MFI = (High−Low)/Volume
MFI can be used in combination with volume, so we can divide 4 states. Bill Williams introduced these to help traders interpret the interaction between volume and price movement. Here’s a quick summary:
Green Window (Increased MFI & Increased Volume): Indicates strong momentum with both price and volume increasing. Often a sign of trend continuation, as both buying and selling interest are rising.
Fake Window (Increased MFI & Decreased Volume): Shows that price is moving but with lower volume, suggesting weak support for the trend. This can signal a potential end of the current trend.
Squat Window (Decreased MFI & Increased Volume): Shows high volume but little price movement, indicating a tug-of-war between buyers and sellers. This often precedes a breakout as the pressure builds.
Fade Window (Decreased MFI & Decreased Volume): Indicates a lack of interest from both buyers and sellers, leading to lower momentum. This typically happens in range-bound markets and may signal consolidation before a new move.
For our purposes we are interested in squat bars. This is the sign that volume cannot move the price easily. This type of bar increases the probability of trend reversal. In this indicator we added to enable the MFI filter of reversal bars. If potential divergent bar or two preceding bars have squat state this bar can be interpret as a reversal one.
The strategy intentionally focuses on bullish divergent bars forming at local lows and below the Alligator to catch potential exhaustion points in downtrends where risk/reward becomes asymmetric. The Alligator (Jaw, Teeth, Lips) acts as a dynamic structure filter: requiring price to be below all three lines before reversal helps avoid chasing minor pullbacks inside an ongoing uptrend and instead concentrates entries on deeper corrections where mean reversion potential is higher.
The custom bullish divergent bar rule (close above midpoint and being the lowest low over N bars) approximates a local capitulation candle, which often precedes short squeezes or at least strong reactions. By combining this with AO and MFI-style filters, the strategy further increases the likelihood that the pattern coincides with downside momentum(as a confirmation that current trend is downward, AO difference < 0) and effort vs. result anomalies (squat bars), which is common signatures of trend exhaustion.
The DCA structure is designed to deploy capital progressively rather than all at once: the first entry is triggered only if price confirms the reversal by breaking above the bar’s high, while subsequent layers require both a deeper discount relative to the initial entry and a new bullish reversal signal. Percentage thresholds from the first entry ensure that each additional allocation is made at meaningfully better prices, improving the blended entry level and reducing the break-even distance.
Finally, using ATR as the basis for take profit aligns exits with current volatility. A fixed-percentage target can be too tight in volatile regimes or too loose in quiet markets, whereas ATR-based targets scale with average bar range. Applying ATR to the evolving average entry price of all open layers keeps the risk/reward framework consistent across different volatility regimes and DCA configurations.
Backtest Results
Operating window: Date range of backtests is 2025.01.01 - 2026.01.01. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Maximum Single Position Loss: -6.56%
Maximum Single Profit: +4.92%
Net Profit: +934.08 USDT (+9.34%)
Total Trades: 121 (82.64% win rate)
Profit Factor: 2.948
Maximum Accumulated Loss: 624.72 USDT (-6.15%)
Average Profit per Trade: 7.72 USDT (+0.37%)
Average Trade Duration: 60 hours
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
You should run your own backtests on the target asset and timeframe (for example, BTC/USDT on intraday charts) and adjust threshold percentages, layer sizing, and ATR take profit factor to match your risk tolerance and market conditions.
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart.
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrex commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation
Neeson Vegas ChannelVegas Channel Indicator: A Comprehensive Multi-Timeframe Trend-Following System
Originality and Conceptual Foundation
This script implements an enhanced version of the classic "Vegas Tunnel" or "Vegas Channel" methodology, popularized by traders who follow the work associated with the "Vegas" technique. Its primary original contribution lies in its specific, rule-based multi-layered trend identification and visualization system. While the core uses well-known Exponential Moving Averages (EMAs), the originality is in the precise combination of periods and the strict, hierarchical logic for defining trend states and generating signals.
Unlike simpler moving average crossovers or single-tunnel systems, this script employs three distinct EMA pairs, each serving a unique purpose within the trend hierarchy:
Short-Term Momentum Pair (EMA 12 & 24): Acts as the primary signal trigger and momentum gauge.
Core Trend Tunnel (EMA 144 & 169): Serves as the central "channel" or "tunnel." A key visual and logical component is the shading between these two lines, which thickens and changes color with the trend, creating a dynamic channel.
Long-Term Foundation Pair (EMA 580 & 670): Represents the underlying, slower-moving trend foundation, providing context for the higher-timeframe bias.
The system's true innovation is its binary and exclusive trend definition logic. It does not rely on a single crossover. Instead, it defines a confirmed Uptrend only when both the short-term EMAs (12 and 24) are established above both lines of the core tunnel (144 and 169). Conversely, a Downtrend is confirmed only when both short-term EMAs are established below both core tunnel lines. This creates a high-confidence filter, reducing whipsaw signals that can occur when price oscillates around a single moving average.
Functionality, Implementation, and Usage
What It Does:
This indicator is a multi-timeframe trend identification and signal-generation tool. It visually condenses trend information from short, medium, and long-term perspectives onto a single chart. Its primary functions are:
Trend State Classification: It dynamically classifies the market into one of three states: Bull Trend (Blue), Bear Trend (Orange), or Sideways/Congestion (Gray). This is reflected in the chart's background color, the color of all EMA lines, and the fill of the central 144/169 channel.
Signal Generation: It plots discrete buy and sell arrows. A Buy Signal (blue upward triangle) appears the first bar the market transitions into the defined "Uptrend" state from a non-uptrend state. A Sell Signal (orange downward triangle) appears the first bar the market transitions into the defined "Downtrend" state.
Visual Structuring: It plots all six EMAs and prominently highlights the interaction zone between the 144 and 169 EMAs with a colored fill, making the "tunnel" a focal point for support/resistance and trend quality assessment.
How It's Implemented:
The logic is implemented through a clear sequence of conditional checks:
Calculation: All six EMAs are calculated based on user-definable periods (defaults as listed).
Trend Logic: The script continuously evaluates the position of EMA12 and EMA24 relative to EMA144 and EMA169 using strict AND conditions to define the uptrend and downtrend Boolean variables.
Signal Logic: A signal (buy or sell) is generated only on the change of the trend state. It uses a check of the form current_trend_state AND (NOT previous_bar_trend_state) to pinpoint the exact bar of transition.
Visual Feedback: All plot colors, the channel fill color, and the background color are unified and determined by the current trend state variable. Labels for the trend and each EMA line are drawn on the last bar for clarity.
How to Use It:
Traders employ this indicator primarily for trend-following and breakout confirmation. It is suited for swing trading or higher-timeframe positional trades rather than scalping, due to the lag inherent in its longer EMAs and its focus on confirmed states.
Trend Bias: The overall color scheme (blue/orange/gray background) provides an immediate, at-a-glance assessment of the dominant trend force. Trading in the direction of the colored background is considered aligned with the system's trend.
Signal Entry: The arrow signals are not meant for blind entry. They mark the point of a confirmed trend state transition.
A Buy Signal suggests the short-term momentum (12,24) has decisively broken above and established itself over the medium-term trend framework (144,169). This could be used as a trigger for long entries, preferably with the long-term EMAs (580,670) sloping upwards or flat, adding confluence.
A Sell Signal suggests the opposite breakdown.
Channel as Dynamic S/R: The filled area between EMA144 and EMA169 acts as a dynamic support zone in an uptrend and a resistance zone in a downtrend. Pullbacks into this "tunnel" that hold without triggering a sell signal (i.e., without both EMA12 & 24 closing back below both tunnel lines) can be viewed as potential continuation opportunities.
Filter for Other Systems: The clear trend state (uptrend/downtrend) can be exported or used as a filter for other trading systems or discretionary decisions, ensuring actions are only taken in the direction of the script's defined trend.
Core Computational Philosophy and Strategic Rationale
The script's logic is rooted in the philosophy of trend hierarchy and confirmation. It belongs to the category of Multi-Moving Average Convergence/Divergence Systems with State-Based Rules.
The 144/169 Tunnel: These numbers are derived from Fibonacci sequences (144, 169 is 12^2 and 13^2). They are believed by proponents to represent a natural rhythm or "heartbeat" of the market, defining a robust intermediate-term trend framework.
The 12/24 Pair: A standard fast-moving average pair commonly used to gauge short-term momentum and trigger entries.
The Strategic Innovation (Dual-Condition Crossover): The core idea is that a crossover of a single fast MA above a single slow MA can be false and noisy. By requiring both members of a fast pair to establish position relative to both members of a slower "tunnel" pair, the system demands a broader, more concerted move. This seeks to filter out weak, unsustainable breaks and only capture shifts in momentum strong enough to flip the entire short-term structure's position relative to the medium-term structure.
The 580/670 Pair: These very slow EMAs represent the "secular" trend. While not part of the direct signal logic, they provide critical context. A buy signal that occurs while price is above the 580/670 pair (which would be sloping up in a healthy bull market) carries more weight than one that occurs while price is below this long-term foundation, which might indicate a counter-trend rally.
In essence, this script is more than just moving averages on a chart. It is a systematic, rule-based framework for identifying when the market's short-term energy (12,24) has converged sufficiently to overcome and reposition itself against its medium-term equilibrium (144/169 tunnel), thereby signaling a high-probability phase change in trend, all while considering the backdrop of a long-term trend (580/670).
able bigtrades dom + liquidity sweep This Pine Script is a sophisticated **Order Flow and Liquidity analysis tool** designed for TradingView. It combines volume analysis, multi-exchange data, and price action to identify where institutional "whales" are entering the market.
Below is a detailed guide on how to interpret and use the **BigTrades DOM** indicator.
---
## 1. Core Concept: Big Trades Detection
Instead of looking at raw volume, this indicator uses **Z-Scores** (Standard Deviations). It compares current volume to the average of the last 30 bars (customizable).
* **Tier 1 (Small Circles):** Significant volume, slightly above average.
* **Tier 2 (Medium Circles):** High volume ( by default). These often act as local support/resistance.
* **Tier 3 (Large Circles):** Extreme volume. These represent institutional "Big Trades" that usually lead to trend reversals or major continuations.
---
## 2. Initiative (INIT) vs. Absorbed (ABS)
This is a powerful feature located in the **Confirmation** settings. It looks at what happens *after* a Tier 3 big trade occurs:
* **Initiative (Purple Circle `●`):** High volume occurs, and price **moves strongly** in that direction within bars. This confirms aggressive "Initiative" buying or selling.
* **Absorbed (Yellow Cross `✕`):** High volume occurs, but price **fails to move**. This indicates "Absorption"—where a large limit order (passive seller) is soaking up all the aggressive market buys, often leading to a reversal.
---
## 3. Liquidity Sweep Detection
The script tracks "Pivots" (old highs and lows) and watches for **Stop Runs**.
* **Bullish Sweep (LTL-SWEEP):** Price dips below a previous Low (Liquidity) but immediately closes back above it, usually accompanied by a Big Trade. This is a classic "Stop Hunt" before a move up.
* **Bearish Sweep (LTH-SWEEP):** Price spikes above a previous High but closes below it. This indicates "trapped longs" and potential downside.
* **Visuals:** The script draws a **Dotted Box** and a **Horizontal Line** to mark the swept liquidity zone.
---
## 4. The Mini DOM & Volume Profile
On the right side of your chart, you will see a real-time table:
* **Profile:** A visual histogram of volume distributed at specific price levels.
* **Bid/Ask:** Shows the estimated volume of sellers (Bid) and buyers (Ask) at those specific levels.
* **Delta (Δ):** The net difference. Green means more aggressive buyers; Red means more aggressive sellers.
* **Current Price:** Highlighted in Green to help you see where the "Value" is currently sitting.
---
## 5. Multi-Exchange Aggregation (Crypto Only)
If you are trading a crypto pair (e.g., BTCUSD), the script can fetch volume data from **Binance, Bybit, OKX, Coinbase, and Kraken** simultaneously.
> **Why it matters:** It gives you a "Global" view of volume. If you see a Big Trade on your chart, but the Multi-Exchange data shows high volume across all 5 exchanges, the signal is much more reliable.
---
## 6. How to Trade with this Indicator
### **Strategy A: The Liquidity Reversal**
1. Look for a **Liquidity Sweep** (LTL-SWEEP).
2. Wait for a **Big Trade (Tier 2 or 3)** to appear at the bottom of the sweep.
3. **Entry:** Long when the bar closes back above the sweep level.
4. **Target:** The opposite Liquidity High.
### **Strategy B: Following Initiative**
1. Wait for an **INIT (Purple Circle)** signal.
2. This confirms that the "Big Trade" has successfully pushed the market.
3. **Entry:** Enter in the direction of the INIT signal on the next pullback.
### **Strategy C: Fading Absorption**
1. Price reaches a resistance level.
2. An **ABS (Yellow Cross)** appears.
3. This means buyers are exhausted and being "absorbed" by a large seller.
4. **Entry:** Short on the break of the Absorption candle's low.
---
## 7. Recommended Settings
* **Sensitivity (Sigma):** Set to `2.5` for volatile markets (Crypto) or `2.0` for slower markets (Forex/Stocks).
* **Normalize by ATR:** Keep this **ON**. it ensures that "Big Trades" are calculated relative to current market volatility.
* **Require Big Trade (Sweep):** Keep this **ON** to filter out "fake" sweeps that don't have institutional backing.
Wave Dynamics - Neural Adaptive Engine🌊 WAVE DYNAMICS - NEURAL ADAPTIVE ENGINE
The Official Reference Manual & Trading Protocol
═════════════════════════════════════════════════════════════
📖 PREFACE: THE END OF STATIC ANALYSIS
The financial markets are not linear; they are fractal. They do not move in straight lines; they breathe. They expand in trending volatility and contract in chopping noise.
The fundamental failure of traditional technical analysis is Static Sensitivity .
• A 14-period RSI works beautifully in a range but fails in a trend.
• A 12,26 MACD captures trends but destroys capital in chop.
Wave Dynamics solves this by treating the market as a living organism. At its core is a Neural Adaptive Engine that calculates the Hurst Exponent (Fractal Dimension) in real-time. It measures the "roughness" of price action and automatically adjusts the lookback periods of every subsystem—Waves, Ribbons, and Oscillators—to match the current market regime.
This manual is your guide to navigating this adaptive framework.
PART 1: THEOLOGY & MARKET PHYSICS
To use this tool, you must understand the three pillars of its logic:
1. The Hurst Exponent (Chaos Theory)
The engine continuously calculates H (Hurst) on a rolling window.
• Persistent Regime (H > 0.5): "What is happening now is likely to continue." The market is trending. The Engine Tightens sensitivity to catch fast pullbacks.
• Anti-Persistent Regime (H < 0.5): "What is happening now is likely to reverse." The market is chopping/ranging. The Engine Widens sensitivity to filter out noise and stop runs.
2. The Elliott Wave Cycle (Crowd Psychology)
Price moves in 5-wave motive sequences followed by corrections.
• Waves 1 & 3: Institutional Accumulation/Mark-up.
• Waves 2 & 4: Profit Taking (The Pullback). These are the only safe entry points.
• Wave 5: Retail FOMO (The Trap). Identified by Momentum Divergence .
3. Smart Money Concepts (Liquidity)
Price moves from liquidity to liquidity.
• Order Blocks: Where institutions initiated the move.
• Breakers: Where institutions trapped traders (Support flips to Resistance).
• Fair Value Gaps: Where price moved too fast, leaving inefficiency.
PART 2: VISUAL INTELLIGENCE (COLOR THEORY)
The chart communicates instantly through a strict color-coded language.
🎨 THE RIBBON (Adaptive Equilibrium)
The background "Cloud" is an Adaptive EMA ribbon.
• Neon Green (#00FF88): Bullish Trend. Only look for Longs. Price is above the equilibrium mean.
• Neon Red (#FF3366): Bearish Trend. Only look for Shorts. Price is below the equilibrium mean.
• Grey/Narrow: Compression. The market is deciding. Do not trade inside a grey ribbon.
🎨 INSTITUTIONAL ZONES
• Green/Red Boxes (Order Blocks): Standard Support/Resistance. Valid entry zones, but lower probability.
• Vivid Purple Boxes (#9C27B0) - THE BREAKER: CRITICAL. This appears when a Green Order Block is smashed through by price. It turns Purple to signify it has flipped from Support to Resistance (or vice versa). A retest of a Purple Zone is the highest probability setup in the system.
• Dotted Outlines (FVG): Magnets. Do not place stops inside these; price will likely travel through them.
🎨 WAVE ANATOMY
• Cyan Lines: Valid Impulse Waves (1, 3, 5).
• Orange Lines/Dots: EXHAUSTION. If a wave line turns Orange, Angular Momentum is decaying. The trend is dying.
• Diamonds (◆): DIVERGENCE. Price made a Higher High, but the internal oscillator (MPI) made a Lower Low. Immediate reversal warning.
🎨 SIGNALS
• Triangles: Confirmed Entries. (Green = Long, Red = Short).
• Labels (e.g., A+): The Grade of the trade based on Confluence.
• A+: Perfect Confluence (Trend + Structure + Zone + Momentum).
• C: Counter-trend or Weak.
PART 3: THE DASHBOARD ECOSYSTEM
Three panels provide Total Situational Awareness. You must read them in order: Top Right → Bottom Left → Bottom Right.
1. MISSION CONTROL (Top Right)
This panel tells you the "Weather Report."
• Neural Status:
• 🧠 TREND: Safe to trade breakout and trend-following strategies.
• 🧠 CHOP: Danger. Use mean-reversion or stay out.
• 🧠 RND (Random): No clear edge.
• Phase: Displays the Bias (Bull/Bear) and Strength. "WEAK BEARISH" usually signals a bottom is forming.
• Score Bar: A live visual meter of the Confluence Score (0-100%).
2. THE ASSISTANT (Bottom Left)
This panel acts as your co-pilot, translating data into English.
• Situation:
• "💎 BULL GEM": You are in a range, at the bottom, showing exhaustion. Buy immediately.
• "🔥 COMPRESSION": Volatility squeeze. A violent move is imminent.
• Action: Tells you exactly what to do (e.g., "Wait for confluence," "Trail Stop," "Let it develop").
• Pro Metrics (Simulated):
• Win Rate: The percentage of signals on the current visible chart that hit Target 1.
• Profit Factor: Gross Win / Gross Loss. If this is < 1.0, stop trading this asset immediately.
• Buckets: Shows the win rate of A-Grade signals vs. C-Grade signals.
3. WAVE INTELLIGENCE (Bottom Right)
This panel provides structural context.
• Channel Gauge (0-100%):
• 0-20%: Oversold / Channel Bottom.
• 80-100%: Overbought / Channel Top.
• 50%: Equilibrium.
• W3/W1 Ratio: The "Health Check" of the trend.
• < 1.0: Weak. Wave 3 is shorter than Wave 1. The trend is struggling.
• > 1.618: Extended. The move is parabolic. Expect a snap-back.
• Trend Health (0-100): Composite score of sub-wave physics. If Health < 30, the trend is effectively dead.
PART 4: PARAMETER OPTIMIZATION (THE INPUTS)
Every input allows you to tune the engine. Here is the deep dive:
🧠 NEURAL ADAPTIVE ENGINE
• Enable Neural Adaptive Engine: Master switch for the Hurst calculation.
• Hurst Period (100):
• Adjustment: Increase to 200 for Crypto/Alts (too much noise). Decrease to 50 for
Forex/Indices (need speed).
• How to tell: If the dashboard says "TREND" but the chart is sideways, INCREASE this value.
• Min/Max Lookback: Defines the constraints. Only adjust if you are an advanced user creating a custom scalping setup (e.g., Min 3 / Max 10).
🌊 WAVE & STRUCTURE
• Base Swing Detection (8): The "Anchor."
• Scalpers (1m-5m): Set to 5-8.
• Swing Traders (1H-4H): Set to 15-20.
• Min Wave Size (ATR): Prevents the script from labeling tiny wicks as waves. Increase this during high-volatility news events.
🔗 MTF STRUCTURE MAPPING
• Require Macro Align: Strict Mode. If enabled, the script checks the Higher Timeframe (e.g., 4H). If 4H is Bearish, it BLOCKS all Long signals on the 5m chart. Use this to prevent counter-trend losses.
🏦 SMART MONEY CONCEPTS
• Enable Breakers: ALWAYS ON. This turns failed Order Blocks into Breaker Zones (Purple).
• Institutional Mode: ULTRA STRICT. If enabled, signals will ONLY fire if price is physically touching an Order Block, FVG, or Breaker. This creates very few, very high-quality signals.
🎯 SIGNAL ENGINE
• Signal Mode:
• Strict: Grades A+ and A only.
• Balanced: Grades B and above.
• Aggressive: Includes counter-trend scalps (Grade C).
• Min Confluence Score (5-35): The raw points needed to trigger. 5 is standard. 10 is conservative.
PART 5: TRADE EXECUTION PLAYBOOKS
PLAYBOOK A: THE "BREAKER RETEST" (Highest Probability)
1. Context: Ribbon is Green.
2. Event: Price creates a Red Order Block, then smashes upward through it.
3. Change: The Red Block turns Purple (Bullish Breaker).
4. Trigger: Price pulls back down to touch the top of the Purple Box.
5. Signal: Green Triangle appears.
6. Action: Max Size Entry. Stop Loss below the Purple Box. Target Wave 3 Projection.
PLAYBOOK B: THE "WAVE 4 DIP" (Trend Following)
1. Context: Wave count shows "3". Ribbon is Green.
2. Event: Price pulls back towards the Ribbon.
3. Wave Panel: Wave count flips to "4".
4. Trigger: Price touches Ribbon, prints Green Triangle.
5. Action: Standard Size Entry. Stop Loss at Swing Low. Target New High (Wave 5).
PLAYBOOK C: THE "HIDDEN GEM" (Range Reversal)
1. Context: Ribbon is Grey (Consolidation). Neural Status is CHOP.
2. Wave Panel: Channel Gauge is < 10% (Extreme Bottom).
3. Visuals: Orange Exhaustion Dot + Divergence Diamond (◆).
4. Assistant: Reads "💎 BULL GEM".
5. Action: Half Size Entry. This is a counter-trend trade. Target the middle of the range (50% Channel).
PLAYBOOK D: THE "BULL TRAP" (When to Fold)
1. Context: Wave Count is "5".
2. Wave Panel: Trend Health < 30. W3/W1 Ratio > 1.618 (Extended).
3. Visuals: Orange Line appears on price high.
4. Signal: Green Triangle appears (Grade C).
5. Action: NO TRADE. The system is warning you that even though a signal fired, the structural physics indicate exhaustion.
PART 6: GRADING & SCORING MATRIX
Every signal is graded on a 35-point scale. Know what you are buying.
• Trend Alignment (5 pts): Ribbon & HTF agreement.
• Structure (5 pts): BOS (Break of Structure) & Higher Highs.
• Physics (5 pts): MPI (Volume Flow) & Angular Velocity.
• Institutional Location (10 pts):
• Inside Order Block: +3 pts
• Inside Breaker: +4 pts
• Wave 2/4 Pullback: +3 pts
• Penalty: Wave 5 Extension (-3 pts).
Grade Scale:
• A+ (Score ≥ 70%): "All In" Setup.
• A (Score 55-69%): Strong Setup.
• B (Score 40-54%): Standard Setup.
• C (Score < 40%): Dangerous.
PART 7: RISK DISCLOSURE & LIMITATIONS
1. The Reality of Adaptation (Redrawing):
The Neural Engine is dynamic. As new data arrives, the calculation of "Chaos" changes. This means historical channel lines or wave labels may shift to fit the matured trend. HOWEVER: Entry Signals (Triangles) NEVER repaint once the bar is closed.
2. Simulation vs. Reality:
The Dashboard metrics (Win Rate, Profit Factor) are Simulations run on the historical data visible on your chart. They do not account for spread, slippage, or liquidity. They are a tool to gauge the current market personality, not a promise of future returns.
3. No Financial Advice:
Wave Dynamics is a tool for structural analysis. It helps you see the market, but it cannot trade for you. You are responsible for your own risk management.
CLOSING THOUGHTS
Wave Dynamics is not just an indicator; it is a lens. It allows you to see the market not as a random walk of candles, but as a structured, breathing entity.
Trust the Neural Status. Respect the Breakers. Fear the Exhaustion.
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
Linear Regression Market State IndexStandard Deviation Market Structure Indicator
A Comprehensive Multi-Timeframe Market Analysis Tool
🎯 Overview
The Standard Deviation Market Structure (SDMS) indicator is a sophisticated technical analysis tool that integrates multiple proven methodologies to identify market structure, trend direction, and potential reversal zones. By combining price action, statistical analysis, and momentum indicators across multiple timeframes, SDMS provides traders with a comprehensive view of market dynamics.
✨ Key Features
Multi-Timeframe Integration
Primary analysis on current timeframe
1-hour statistical confirmation for support/resistance levels
Order block extension across 500 future bars
Comprehensive Technical Suite
RSI with Deviation Analysis
Dynamic Order Block Detection
Gaussian Filter Channels
Linear Regression with Statistical Bands
Standard deviation to detect price outliers
Directional Movement Index (DMI/ADX)
Bollinger Band % Analysis
Support/Resistance Line System
Visual Clarity
Color-coded signals and zones
Automatic level management
Clean, intuitive display
📊 Core Components Explained
1. Order Block System
What Are Order Blocks?
Order blocks are price zones where institutional activity has occurred, creating future support or resistance levels. SDMS automatically detects these critical zones.
Detection Logic:
Bullish Order Blocks: Form when price breaks above recent highs following bearish candles
Bearish Order Blocks: Form when price breaks below recent lows following bullish candles
Visual Identification:
Green boxes with "BuOB" labels (support zones)
Red boxes with "BeOB" labels (resistance zones)
Each block shows its boundary price for easy reference
Dynamic Management:
Automatically extends 300 bars into the future
Self-cleaning: removes blocks when price breaches their boundaries
Real-time adjustment to changing market structure
2. Statistical Support/Resistance System
How It Works:
SDMS creates support and resistance lines based on statistical extremes confirmed on the 1-hour timeframe.
Trigger Conditions:
Support Lines (Green): Trigger when 1H Bollinger Band % crosses above 0 and bearish momentum subsides.
Resistance Lines (Red): Trigger when 1H Bollinger Band % crosses below 1 and bullish momentum subsides
The Science Behind BB%:
BB% = (Price - Lower Band) / (Upper Band - Lower Band)
BB% <= 0: Price at statistical oversold extreme; also indicated by white candles.
BB% > 1: Price at statistical overbought extreme; also indicated by white candles.
Line Management:
Maximum of 15 active lines
Oldest lines automatically removed
Lines extend across chart for ongoing reference
3. Trend Analysis Suite
Hull Moving Average (HMA):
55-period smoothed trend indicator
Color-coded: Green = bullish, Red = bearish
Visual band shows trend acceleration/deceleration
Gaussian Channel:
Advanced filtering of market noise
Dynamic channel based on true range volatility
Helps identify mean reversion opportunities
Form a yellow band when price is overbought or oversold zones.
Linear Regression System:
Statistical price modeling
Multiple standard deviation bands (up to 3SD)
Regression-based candlestick visualization
Candles turn white when in overbought zones. Yellow candles indicate extremely overbought zones. Blue candles indicate a bullish trend with high volume.
Bearish candles are bluish-purple when volume is high and red when the volume is within normal ranges or low.
4. Momentum & Oscillator Integration
RSI with Deviation Tracking:
21-period RSI with 30-period smoothing
Tracks deviation from moving average based off linear regression
Identifies momentum divergences
Directional Movement Index:
Multi-period DMI/ADX analysis
Used to detect overbought and oversold zones within the indicator calculations.
Combines with RSI for enhanced signals
Momentum confirmation for all entries/exits
🎯 Trading Signals & Alerts
Buy Signals (Yellow "Buy" Labels)
Multi-Condition Confirmation Required:
RSI Oversold Reversal: RSI crosses above 30
Trend Alignment: HMA showing bullish structure
Momentum Confirmation: DMI alignment
Statistical Support: Price at or near support zones
Risk Management: Multiple confirming indicators
Strong Buy Conditions:
Confluence of order block support + BB% support line
Multiple timeframe alignment
Volume confirmation at key levels
Sell Signals (Red/Yellow "Sell" Labels)
Multi-Condition Confirmation Required:
RSI Overbought Reversal: RSI crosses below 70
Trend Exhaustion: HMA showing bearish structure
Momentum Divergence: DMI bearish alignment
Statistical Resistance: Price at or near resistance zones
Timeframe Confirmation: 1H BB% bearish signals
Strong Sell Conditions:
Confluence of order block resistance + BB% resistance line
Multiple timeframe distribution
Volume surge at resistance
Additional Alerts
RSI Divergence Signals: Triangles showing momentum shifts
Extreme Price Alerts: Circles at statistical extremes
Structure Breaks: Visual cues for order block violations
🎨 Visual System Guide
Color Coding System
Green: Bullish conditions, support zones, rising trends
Red: Bearish conditions, resistance zones, falling trends
Blue: Statistical channels, neutral zones
Yellow: Alert conditions, extreme signals
White: Transition zones, neutral signals
Zone Identification
Buying Pressure Zones: Green/blue tinted areas below price or white candles with white dots within the moving average center line
Selling Pressure Zones: Red tinted areas above price with white dots within the moving average center line
Standard Deviation Zones: Gradient colors showing statistical extremes
⚙️ Customization Options
Adjustable Parameters
RSI Settings: Period, oversold/overbought levels, sensitivity
Order Block Detection: Lookback period, ATR multiplier, extension
Statistical Settings: Gaussian filter poles, regression periods
Support/Resistance: Maximum lines, BB% settings
Visual Preferences: Colors, band displays, alert styles
Input Groups
RSI Trading Strategy
Order Block Configuration
Gaussian Channel Settings
Linear Regression Parameters
DMI/ADX Configuration
Bollinger Band % Settings
📈 Practical Trading Applications
For Swing Traders
Identify Key Levels: Use order blocks + BB% lines for entry/exit planning
Trend Confirmation: HMA + Gaussian channel for trend direction
Risk Management: Standard deviation bands for stop placement
Timing Entries: RSI/DMI alignment for optimal entry timing
For Day Traders
Intraday Levels: Order blocks provide immediate S/R for day trading
Momentum Signals: Real-time RSI/DMI signals for quick moves
Statistical Edges: Gaussian channel for mean reversion plays
Breakout Confirmation: Order block breaks with volume
For Position Traders
Higher Timeframe Structure: 1H BB% lines for major levels
Trend Persistence: HMA for long-term trend identification
Accumulation/Distribution Zones: Order blocks show institutional activity
Multi-Timeframe Alignment: Confirmation across timeframes
🔍 How to Use SDMS Effectively
Step 1: Market Structure Assessment
Identify active order blocks (green/red boxes)
Note BB% support/resistance lines (horizontal lines)
Assess HMA and moving average trend direction (color)
Check Gaussian channel position (preferably outside 2SD)
Step 2: Signal Confirmation
Wait for multiple indicator alignment
look for doji candles.
Confirm with green (bullish) or red (bearish) candles
Confirm with volume if available
Check for confluence of levels
Assess risk/reward based on nearby levels
Step 3: Trade Management
Enter at confirmed support/resistance
Place stops beyond opposite levels
Take profits at next statistical level
Monitor for structure changes
Step 4: Risk Management
Use standard deviation bands for volatility assessment
Never risk more than 1-2% per trade
Adjust position size based on confluence strength
Have predefined exit rules
💡 Advanced Strategies
Strategy 1: Confluence Trading
Setup: Order block + BB% line at same level
Entry: Price tests confluence zone with RSI signal
Stop: Beyond the confluence zone
Target: Next statistical level
Strategy 2: Breakout Trading
Setup: Price approaching order block boundary
Entry: Break with volume + RSI/DMI confirmation
Stop: Re-entry into order block
Target: Next BB% line extension
Strategy 3: Mean Reversion
Setup: Price at Gaussian channel extremes
Entry: RSI reversal signal at channel boundary
Stop: Beyond channel extreme
Target: Channel midline or opposite boundary
⚠️ Important Considerations
Best Market Conditions
Trending Markets: Excellent performance in clear trends
Breakout Scenarios: Strong identification of break levels
Range Markets: Works well with defined ranges
Limitations
Choppy Markets: May give false signals in consolidation
News Events: Fundamental shocks can override technical levels
Timeframe Specific: Optimal on 15-minute to daily charts
Risk Management Rules
Always use stops
Never rely on single signals
Consider market context
Adjust for volatility changes
Keep position sizes consistent
🔧 Technical Specifications
Maximum Lines: 500
Maximum Bars Back: 1000
Maximum Boxes: 500
Calculation Efficiency: Optimized for real-time use
🏆 Why SDMS Stands Out
Unique Advantages
Integrated Approach: Combines multiple methodologies into one tool
Self-Adjusting: Automatically adapts to market changes
Multi-Timeframe: Provides both immediate and higher timeframe context
Visual Clarity: Clean, intuitive display of complex data
Professional Grade: Institutional-level analysis accessible to all traders
Educational Value: Learn how different indicators interact
Understand market structure development
See institutional order flow patterns
Develop disciplined trading habits
📚 Learning Resources
Recommended Study Approach
Start Simple: Focus on order blocks and BB% lines first
Add Complexity: Gradually incorporate other indicators
Paper Trade: Practice without risk
Keep Journal: Document setups and outcomes
Review Regularly: Analyze both wins and losses
Common Pitfalls to Avoid
Overtrading: Wait for high-quality setups
Ignoring Context: Consider overall market conditions
Chasing Signals: Enter at planned levels, not after moves
Risk Mismanagement: Always know your risk before entering
Confirmation Bias: Be objective about signals
🤝 Community & Support
Getting the Most from SDMS
Start with Defaults: Use default settings initially
Adjust Gradually: Make small changes as you understand the tool
Combine with Fundamentals: Use for timing within fundamental context
Stay Disciplined: Follow your trading plan consistently
Continuous Improvement
SDMS is designed for continuous learning. As you use the indicator, you'll develop insights into:
Market microstructure
Institutional trading patterns
Statistical edge identification
Risk management optimization
Risk management is more important than signal accuracy
Patience is required for high-quality setups
Success Factors
Discipline: Following your plan consistently
Patience: Waiting for proper setups
Risk Management: Protecting your capital
Continuous Learning: Improving your skills over time
🌟 Final Thoughts
The Standard Deviation Market Structure indicator represents a sophisticated approach to technical analysis, combining the best elements of price action, statistical analysis, and momentum indicators. While powerful, remember that no indicator guarantees success. SDMS is a tool – your skill, discipline, and risk management determine your trading results.
Use SDMS as part of a comprehensive trading plan, combine it with proper risk management, and continue developing your trading skills. The markets are always teaching – stay humble, stay disciplined, and trade well.
Disclaimer: This indicator is for educational purposes only. Past performance does not guarantee future results. Trading involves risk of loss. Always consult with a qualified financial professional before making investment decisions.
Ichimoku + EMA + RSI [Enhanced]# **Ichimoku + EMA + RSI Strategy - User Instructions**
---
## **📋 TABLE OF CONTENTS**
1. (#installation)
2. (#strategy-overview)
3. (#parameter-configuration)
4. (#understanding-the-dashboard)
5. (#entry--exit-rules)
6. (#best-practices)
7. (#optimization-guide)
8. (#troubleshooting)
---
## **🚀 INSTALLATION**
### **Step 1: Add to TradingView**
1. Open TradingView.com
2. Click **Pine Editor** (bottom of screen)
3. Click **"New"** → Select **"Blank indicator"**
4. Delete all default code
5. **Copy and paste** the complete script
6. Click **"Save"** (give it a name: "Ichimoku EMA RSI Strategy")
7. Click **"Add to Chart"**
### **Step 2: Verify Installation**
✅ You should see:
- Orange **200 EMA** line
- Blue **Tenkan** line
- Red **Kijun** line
- Green/Red **Cloud** (Ichimoku cloud)
- **Dashboard** in top-right corner
- **Strategy Tester** tab at bottom
---
## **📊 STRATEGY OVERVIEW**
### **What This Strategy Does**
Combines three powerful technical indicators to identify high-probability trades:
| Component | Purpose |
|-----------|---------|
| **200 EMA** | Determines overall trend direction |
| **Ichimoku Cloud** | Provides support/resistance and momentum |
| **RSI** | Filters momentum strength |
| **Dashboard** | Real-time signal analysis |
### **Trading Logic**
- **LONG**: Enter when all bullish conditions align
- **SHORT**: Enter when all bearish conditions align
- **EXITS**: Automatic via trailing stops, cloud breach, or TK cross reversal
---
## **⚙️ PARAMETER CONFIGURATION**
### **🔵 Trend Filter Settings**
```
EMA Length: 200 (default)
```
- **Lower (100-150)**: More sensitive, faster signals
- **Higher (250-300)**: More stable, slower signals
- **Recommendation**: Keep at 200 for most timeframes
---
### **🟢 RSI Settings**
```
RSI Length: 14 (default)
RSI Long Minimum: 55
RSI Short Maximum: 45
```
**Adjustment Guide:**
- **Aggressive** (more signals): Long=50, Short=50
- **Balanced** (default): Long=55, Short=45
- **Conservative** (fewer signals): Long=60, Short=40
---
### **🟡 Ichimoku Settings**
```
Tenkan Period: 9
Kijun Period: 26
Senkou B Period: 52
Displacement: 26
```
**Standard Configurations:**
| Timeframe | Tenkan | Kijun | Senkou B |
|-----------|--------|-------|----------|
| **1H - 4H** | 9 | 26 | 52 |
| **15m - 1H** | 7 | 22 | 44 |
| **Daily** | 9 | 26 | 52 |
**Filters:**
- ✅ **Require Chikou Confirmation**: Adds extra validation (recommended)
- ✅ **Require Cloud Position**: Price must be above/below cloud (recommended)
---
### **🔴 Risk Management**
```
ATR Length: 14
ATR Stop Loss Multiplier: 2.0
ATR Take Profit Multiplier: 3.0
Min Bars Between Trades: 3
```
**Risk/Reward Profiles:**
| Profile | SL Multiplier | TP Multiplier | Description |
|---------|---------------|---------------|-------------|
| **Conservative** | 2.5 | 4.0 | Wider stops, higher R:R |
| **Balanced** | 2.0 | 3.0 | Default settings |
| **Aggressive** | 1.5 | 2.5 | Tighter stops, faster exits |
---
### **🎨 Display Settings**
```
Show Dashboard: ON
Show Entry Signals: ON
```
- **Dashboard**: Shows real-time analysis
- **Entry Signals**: Green/Red arrows on chart
---
## **📈 UNDERSTANDING THE DASHBOARD**
### **Dashboard Components**
```
┌─────────────────────┬──────────┐
│ Component │ Status │
├─────────────────────┼──────────┤
│ EMA Trend │ BULL/BEAR│
│ Cloud │ ABOVE/BELOW/INSIDE│
│ TK Cross │ BULL/BEAR│
│ RSI │ 55.3 │
│ Chikou │ BULL/BEAR│
│ Signal │ STRONG LONG│
└─────────────────────┴──────────┘
```
### **Signal Interpretation**
| Signal | Score | Meaning | Action |
|--------|-------|---------|--------|
| **STRONG LONG** | 7+ | All conditions aligned | High confidence LONG |
| **LONG** | 4-6 | Most conditions met | Moderate confidence |
| **NEUTRAL** | <4 | Mixed signals | Wait for clarity |
| **SHORT** | 4-6 | Bearish bias | Moderate SHORT |
| **STRONG SHORT** | 7+ | All bearish conditions | High confidence SHORT |
---
## **📍 ENTRY & EXIT RULES**
### **✅ LONG ENTRY CONDITIONS**
All must be TRUE:
1. ✅ Price **above** 200 EMA
2. ✅ Price **above** Ichimoku Cloud
3. ✅ Tenkan **crosses above** Kijun (TK Bull Cross)
4. ✅ RSI **above** 55
5. ✅ Chikou **above** price 26 bars ago
6. ✅ Minimum bars since last trade met
**Visual Confirmation:**
- 🟢 Green triangle **below** candle
- Dashboard shows **"STRONG LONG"**
---
### **❌ LONG EXIT CONDITIONS**
Any ONE triggers exit:
1. ❌ Price closes **below** cloud bottom
2. ❌ Tenkan **crosses below** Kijun
3. ❌ ATR trailing stop hit (2.0 × ATR)
4. ❌ Take profit hit (3.0 × ATR)
---
### **✅ SHORT ENTRY CONDITIONS**
All must be TRUE:
1. ✅ Price **below** 200 EMA
2. ✅ Price **below** Ichimoku Cloud
3. ✅ Tenkan **crosses below** Kijun (TK Bear Cross)
4. ✅ RSI **below** 45
5. ✅ Chikou **below** price 26 bars ago
6. ✅ Minimum bars since last trade met
**Visual Confirmation:**
- 🔴 Red triangle **above** candle
- Dashboard shows **"STRONG SHORT"**
---
### **❌ SHORT EXIT CONDITIONS**
Any ONE triggers exit:
1. ❌ Price closes **above** cloud top
2. ❌ Tenkan **crosses above** Kijun
3. ❌ ATR trailing stop hit (2.0 × ATR)
4. ❌ Take profit hit (3.0 × ATR)
---
## **💡 BEST PRACTICES**
### **Recommended Timeframes**
| Timeframe | Trading Style | Signals/Week |
|-----------|---------------|--------------|
| **15m** | Scalping | 20-30 |
| **1H** | Day Trading | 10-15 |
| **4H** | Swing Trading | 5-10 |
| **Daily** | Position Trading | 2-5 |
---
### **Asset Classes**
✅ **Best Performance:**
- Major Forex pairs (EUR/USD, GBP/USD)
- Crypto (BTC/USD, ETH/USD)
- Major indices (SPX, NAS100)
⚠️ **Use Caution:**
- Low liquidity pairs
- Highly volatile altcoins
- Stocks with gaps
---
### **Risk Management Rules**
```
1. Never risk more than 2% per trade
2. Use the built-in ATR stops (don't override)
3. Respect the "Min Bars Between Trades" cooldown
4. Don't trade during major news events
5. Monitor dashboard - only trade STRONG signals
```
---
## **🔧 OPTIMIZATION GUIDE**
### **Step 1: Run Initial Backtest**
1. Open **Strategy Tester** tab (bottom of screen)
2. Set date range (minimum 6 months)
3. Review:
- **Net Profit**
- **Win Rate** (target: >50%)
- **Profit Factor** (target: >1.5)
- **Max Drawdown** (target: <20%)
---
### **Step 2: Optimize Parameters**
**If Win Rate is Low (<45%):**
- Increase RSI thresholds (Long=60, Short=40)
- Enable both Chikou + Cloud filters
- Increase "Min Bars Between Trades" to 5
**If Too Few Signals:**
- Decrease RSI thresholds (Long=50, Short=50)
- Reduce EMA to 150
- Adjust Ichimoku to faster settings (7/22/44)
**If Drawdown is High (>25%):**
- Increase ATR Stop Loss Multiplier to 2.5
- Add longer cooldown period (5+ bars)
- Trade only STRONG signals
---
### **Step 3: Forward Test**
```
1. Paper trade for 2-4 weeks
2. Compare results to backtest
3. Adjust if live results differ significantly
4. Only go live after consistent paper trading success
```
---
## **🛠️ TROUBLESHOOTING**
### **Problem: No Signals Appearing**
**Solutions:**
- Check RSI levels aren't too restrictive
- Verify timeframe is appropriate (try 1H or 4H)
- Ensure both filters aren't enabled on ranging markets
- Review dashboard - components may be conflicting
---
### **Problem: Too Many Losing Trades**
**Solutions:**
- Enable **both** Chikou + Cloud filters
- Increase RSI thresholds (more conservative)
- Only trade when dashboard shows "STRONG" signals
- Increase cooldown period to avoid overtrading
---
### **Problem: Dashboard Not Showing**
**Solutions:**
- Verify "Show Dashboard" is enabled in settings
- Check chart isn't zoomed out too far
- Refresh chart (F5)
- Re-add indicator to chart
---
### **Problem: Stops Too Tight/Wide**
**Solutions:**
- **Too Tight**: Increase ATR Stop Loss Multiplier to 2.5-3.0
- **Too Wide**: Decrease to 1.5-1.8
- Verify ATR Length is appropriate for timeframe
- Consider asset volatility (crypto needs wider stops)
---
## **📞 QUICK REFERENCE CARD**
```
═══════════════════════════════════════════════════
STRATEGY QUICK REFERENCE
═══════════════════════════════════════════════════
BEST TIMEFRAMES: 1H, 4H, Daily
BEST ASSETS: Major Forex, BTC, ETH, Indices
RISK PER TRADE: 1-2% of capital
LONG ENTRY:
✓ Price > 200 EMA
✓ Price > Cloud
✓ TK Bull Cross
✓ RSI > 55
✓ Dashboard = STRONG LONG
SHORT ENTRY:
✓ Price < 200 EMA
✓ Price < Cloud
✓ TK Bear Cross
✓ RSI < 45
✓ Dashboard = STRONG SHORT
EXITS:
× Cloud breach
× TK reverse cross
× ATR trailing stop
× Take profit (3:1 R:R)
═══════════════════════════════════════════════════
```
---
## **⚠️ DISCLAIMER**
This strategy is for **educational purposes only**. Always:
- Backtest thoroughly on your specific assets
- Paper trade before going live
- Never risk more than you can afford to lose
- Past performance ≠ future results
- Consider market conditions and your risk tolerance
---
**Happy Trading! 📈**
TradingView — Track All Markets
Where the world charts, chats, and trades markets. We're a supercharged super-charting platform and social network for traders and investors. Free to sign up.
Portfolio TrackerDescription
The Portfolio Tracker is a utility dashboard designed for traders who need to monitor the performance of a multi-asset portfolio directly from a single chart layout. While TradingView provides excellent charting for individual symbols, tracking the combined Profit & Loss (PnL) of a basket of 20 different securities (stocks, crypto, forex, or indices) usually requires switching tabs, using external spreadsheets, or logging into multiple exchange accounts.
This script solves that problem by allowing users to manually input their position details into a customizable table. It fetches real-time price data for each symbol and calculates the individual and total portfolio performance, including commission costs.
Why This Tool is Useful
This indicator was built to address specific pain points for active traders:
Consolidated View: Instead of checking 20 different charts to see how your positions are doing, you get a single, real-time snapshot of your entire portfolio's health on one screen.
Risk Management: By seeing the "Total PnL" and "Total Investment" in one place, traders can better understand their overall market exposure, rather than focusing on single winning or losing trades.
Flexible Accounting: The ability to switch between "Unit Price" and "Total Cost" inputs accommodates different trading styles—whether you are a scalper entering a single price or an investor averaging down with a specific total capital allocation.
CRITICAL: Input Logic & Warnings
To ensure accurate PnL calculations, users must understand the relationship between Quantity and Cost, especially when using "Total Cost (Manual)" mode.
The Golden Rule: Your Input Cost must always match the Total Quantity entered.
Example Scenario:
Imagine you buy 2 BTC at a price of $90,000 each.
Correct Entry: You must enter Quantity: 2 and Cost: 180000 ($90k x 2).
Result: If BTC drops to $85k, your Portfolio Value is $170k. The script correctly shows a PnL of -$10,000.
Result: If BTC rises to $95k, your Portfolio Value is $190k. The script correctly shows a PnL of +$10,000.
Incorrect Entry: If you enter Quantity: 2 but leave Cost at 90000 (the unit price).
Result: The script thinks you bought 2 BTC for a total of only $90k. It will instantly show a massive, incorrect profit because the math implies you bought 2 coins for the price of 1.
Please double-check your inputs. The script includes a "Sanity Check" feature to help catch these errors, but accurate data entry is the user's responsibility.
Key Features & Benefits
Multi-Asset Tracking (20 Slots): Monitor up to 20 different tickers simultaneously.
Real-Time Valuation: Uses request.security() to fetch the current market price for every symbol in the list. Your PnL updates with every tick of the market.
Flexible Cost Basis Modes:
Auto-Calc Mode: Enter Entry Price and Quantity. (Best for simple, single-entry trades).
Manual Cost Mode: Enter Total Invested Amount. (Best for averaged-down positions).
Advanced Commission Handling: Supports both Global and Individual commission rates. This provides a realistic "Net PnL" by factoring in fees on both the entry (cost basis) and the theoretical exit (current value).
Input Safety ("Sanity Check"): A logic check that compares the user's input against the current market value. If a user switches to "Total Cost" mode but leaves a small "Unit Price" value in the input field, the script flags the row to prevent irrational PnL percentages (e.g., >100,000%).
Clean & Customizable UI: The table can be positioned in 9 different locations, and inputs are hidden from the chart status line to keep the visual workspace clean.
How It Works
The script operates using a systematic loop that processes user inputs through a series of mathematical validations:
Data Acquisition: The script collects all 20 user inputs and utilizes request.security() to fetch the real-time close price for every non-empty symbol in the list.
Cost Basis Calculation:
In Auto-Calc Mode: The script calculates Raw Cost = Quantity * Input Price.
In Manual Mode: The script takes the Input Value directly as the Raw Cost.
"Round-Trip" Commission Modeling:
Entry Cost: Raw Cost * (1 + Commission%) (Fees increase your breakeven).
Exit Value: (Quantity * Current Price) * (1 - Commission%) (Fees reduce your payout).
Net PnL: Exit Value - Entry Cost.
Sanity Check Algorithm: Before displaying data, the script compares the Input Cost against the Gross Market Value (Qty * Price). If the Input Cost is less than a user-defined threshold (default 1%) of the Market Value, it triggers a warning, assuming the user forgot to update the field to a "Total Cost" figure.
Disclaimer
This script is for informational and educational purposes only. It is a tool to assist in tracking hypothetical or real positions based on manual user inputs and standard TradingView data feeds. It should not be relied upon as a primary accounting ledger or tax reporting tool. Past performance is not indicative of future results. Trading involves risk. Always verify your PnL against your actual exchange or broker statements.
Multi-indicator Signal Builder [Skyrexio]Overview
Multi-Indicator Signal Builder is a versatile, all-in-one script designed to streamline your trading workflow by combining multiple popular technical indicators under a single roof.
It features a single-entry, single-exit logic, intrabar stop-loss/take-profit handling, an optional time filter, a visually accessible condition table, and a built-in statistics label.
Traders can choose any combination of 12+ indicators (RSI, Ultimate Oscillator, Bollinger %B, Moving Averages, ADX, Stochastic, MACD, PSAR, MFI, CCI, Heikin Ashi, and a “TV Screener” placeholder) to form entry or exit conditions.
This script aims to simplify strategy creation and analysis , making it a powerful toolkit for technical traders.
Indicators Overview
RSI (Relative Strength Index)
Measures recent price changes to evaluate overbought or oversold conditions on a 0–100 scale.
Ultimate Oscillator (UO)
Uses weighted averages of three different timeframes, aiming to confirm price momentum while avoiding false divergences.
Bollinger %B
Expresses price relative to Bollinger Bands, indicating whether price is near the upper band (overbought) or lower band (oversold).
Moving Average (MA)
Smooths price data over a specified period. The script supports both SMA and EMA to help identify trend direction and potential crossovers.
ADX (Average Directional Index)
Gauges the strength of a trend (0–100). Higher ADX signals stronger momentum, while lower ADX indicates a weaker trend.
Stochastic
Compares a closing price to a price range over a given period to identify momentum shifts and potential reversals.
MACD (Moving Average Convergence/Divergence)
Tracks the difference between two EMAs plus a signal line, commonly used to spot momentum flips through crossovers.
PSAR (Parabolic SAR)
Plots a trailing stop-and-reverse dot that moves with the trend. Often used to signal potential reversals when price crosses PSAR.
MFI (Money Flow Index)
Similar to RSI but incorporates volume data. A reading above 80 can suggest overbought conditions, while below 20 may indicate oversold.
CCI (Commodity Channel Index)
Identifies cyclical trends or overbought/oversold levels by comparing current price to an average price over a set timeframe.
Heikin Ashi
A type of candlestick charting that filters out market noise. The script uses a streak-based approach (multiple consecutive bullish or bearish bars) to gauge mini-trends.
TV Screener
A placeholder condition designed to integrate external buy/sell logic (like a TradingView “Buy” or “Sell” rating). Users can override or reference external signals if desired.
Unique Features
Multi-Indicator Entry and Exit
You can selectively enable any subset of 12+ classic indicators, each with customizable parameters and conditions. A position opens only if all enabled entry conditions are met, and it closes only when all enabled exit conditions are satisfied, helping reduce false triggers.
Single-Entry / Single-Exit with Intrabar SL/TP
The script supports a single position at a time. Once a position is open, it monitors intrabar to see if the price hits your stop-loss or take-profit levels before the bar closes, making results more realistic for fast-moving markets.
Time Window Filter
Users may specify a start/end date range during which trades are allowed, making it convenient to focus on specific market cycles for backtesting or live trading.
Condition Table and Statistics
A table at the bottom of the chart lists all active entry/exit indicators. Upon each closed trade, an integrated statistics label displays net profit, total trades, win/loss count, average and median PnL, etc.
Seamless Alerts and Automation
• Configure alerts in TradingView using “Any alert() function call.”
• The script sends JSON alert messages you can route to your own webhook.
• The indicator can be integrated with Skyrexio alert bots to automate execution on major cryptocurrency exchanges.
Optional MA/PSAR Plots
For added visual clarity, optionally plot the chosen moving averages or PSAR on the chart to confirm signals without stacking multiple indicators.
Methodology
Multi-Indicator Entry Logic
When multiple entry indicators are enabled (e.g., RSI + Stochastic + MACD), the script requires all signals to align before generating an entry. Each indicator can be set for crossovers, crossunders, thresholds (above/below), etc. This “AND” logic aims to filter out low-confidence triggers.
Single-Entry Intrabar SL/TP
• One Position At a Time: Once an entry signal triggers, a trade opens at the bar’s close.
• Intrabar Checks: Stop-loss and take-profit levels (if enabled) are monitored on every tick. If either is reached, the position closes immediately, without waiting for the bar to end.
Exit Logic
All Conditions Must Agree: If the trade is still open (SL/TP not triggered), then all enabled exit indicators must confirm a closure before the script exits on the bar’s close.
Time Filter
Optional Trading Window: You can activate a date/time range to constrain entries and exits strictly to that interval.
Justification of Methodology
Indicator Confluence: Combining multiple tools (RSI, MACD, etc.) can reduce noise and false signals.
Intrabar SL/TP: Capturing real-time spikes or dips provides a more precise reflection of typical live trading scenarios.
Single-Entry Model: Straightforward for both manual and automated tracking (especially important in bridging to bots).
Custom Date Range: Helps refine backtesting for specific market conditions or to avoid known irregular data periods.
How to Use
Add the Script to Your Chart
• In TradingView, open Indicators , search for “Multi-indicator Signal Builder” .
• Click to add it to your chart.
Configure Inputs
• Time Filter: Set a start and end date for trades.
• Alerts Messages: Input any JSON or text payload needed by your external service or bot.
• Entry Conditions: Enable and configure any indicators (e.g., RSI, MACD) for a confluence-based entry.
• Close Conditions: Enable exit indicators, along with optional SL (negative %) and TP (positive %) levels.
Set Up Alerts
• In TradingView, select “Create Alert” → Condition = “Any alert() function call” → choose this script.
• Entry Alert: Triggers on the script’s entry signal.
• Close Alert: Triggers on the script’s close signal (or if SL/TP is hit).
• Skyrexio Alert Bots: You can route these alerts via webhook to Skyrexio alert bots to automate order execution on major crypto exchanges (or any other supported broker).
Visual Reference
• A condition table at the bottom summarizes active signals.
• Statistics Label updates automatically as trades are closed, showing PnL stats and distribution metrics.
Backtesting Guidelines
Symbol/Timeframe: Works on multiple assets and timeframes; always do thorough testing.
Realistic Costs: Adjust commissions and potential slippage to match typical exchange conditions.
Risk Management: If using the built-in stop-loss/take-profit, set percentages that reflect your personal risk tolerance.
Longer Test Horizons: Verify performance across diverse market cycles to gauge reliability.
Example of statistic calculation
Test Period: 2023-01-01 to 2025-12-31
Initial Capital: $1,000
Commission: 0.1%, Slippage ~5 ticks
Trade Count: 680 (varies by strategy conditions)
Win rate: 75.44% (varies by strategy conditions)
Net Profit: +90.14% (varies by strategy conditions)
Disclaimer
This indicator is provided strictly for informational and educational purposes.
It does not constitute financial or trading advice.
Past performance never guarantees future results.
Always test thoroughly in demo environments before using real capital.
Enjoy exploring the Multi-Indicator Signal Builder! Experiment with different indicator combinations and adjust parameters to align with your trading preferences, whether you trade manually or link your alerts to external automation services. Happy trading and stay safe!
CryptoFlux Dynamo [JOAT]CryptoFlux Dynamo: Velocity Scalping Strategy
WHAT THIS STRATEGY IS
CryptoFlux Dynamo is an open-source Pine Script v6 strategy designed for momentum-based scalping on cryptocurrency perpetual futures. It combines multiple technical analysis methods into a unified system that adapts its behavior based on current market volatility conditions.
This script is published open-source so you can read, understand, and modify the complete logic. The description below explains everything the strategy does so that traders who cannot read Pine Script can fully understand how it works before using it.
HOW THIS STRATEGY IS ORIGINAL AND WHY THE INDICATORS ARE COMBINED
This strategy uses well-known indicators (MACD, EMA, RSI, MFI, Bollinger Bands, Keltner Channels, ATR). The originality is not in the individual indicators themselves, but in the specific way they are integrated into a regime-adaptive system. Here is the detailed justification for why these components are combined and how they work together:
The Problem Being Solved:
Standard indicator-based strategies use fixed thresholds. For example, a typical MACD strategy might enter when the histogram crosses above zero. However, in cryptocurrency markets, volatility changes dramatically throughout the day and week. A MACD crossover during a low-volatility consolidation period has very different implications than the same crossover during a high-volatility trending period. Using the same entry thresholds and stop distances in both conditions leads to either:
Too many false signals during consolidation (if thresholds are loose)
Missing valid opportunities during expansion (if thresholds are tight)
Stops that are too tight during volatility spikes (causing premature exits)
Stops that are too wide during compression (giving back profits)
The Solution Approach:
This strategy first classifies the current volatility regime using normalized ATR (ATR as a percentage of price), then dynamically adjusts ALL other parameters based on that classification. This creates a context-aware system rather than a static threshold comparison.
How Each Component Contributes to the System:
ATR-Based Regime Classification (The Foundation)
The strategy calculates ATR over 21 periods, smooths it with a 13-period EMA to reduce noise from wicks, then divides by price to get a normalized percentage. This ATR% is classified into three regimes:
- Compression (ATR% < 0.8%): Market is consolidating, breakouts are more likely but false signals are common
- Expansion (ATR% 0.8% - 1.6%): Normal trending conditions
- Velocity (ATR% > 1.6%): High volatility, larger moves but also larger adverse excursions
This regime classification then controls stop distances, profit targets, trailing stop offsets, and signal strength requirements. The regime acts as a "meta-parameter" that tunes the entire system.
EMA Ribbon (8/21/34) - Trend Structure Detection
The three EMAs establish trend direction and structure. When EMA 8 > EMA 21 > EMA 34, the trend structure is bullish. The slope of the middle EMA (21) is calculated over 8 bars and converted to degrees using arctangent. This slope measurement quantifies trend strength, not just direction.
Why these specific periods? The 8/21/34 sequence follows Fibonacci-like spacing and provides good separation on 5-minute cryptocurrency charts. The fast EMA (8) responds to immediate price action, the mid EMA (21) represents the short-term trend, and the slow EMA (34) acts as a trend filter.
The EMA ribbon works with the regime classification: during compression regimes, the strategy requires stronger ribbon alignment before entry because false breakouts are more common.
MACD (8/21/5) - Momentum Measurement
The MACD uses faster parameters (8/21/5) than the standard (12/26/9) because cryptocurrency markets move faster than traditional markets. The histogram is smoothed with a 5-period EMA to reduce noise.
The key innovation is the adaptive histogram baseline. Instead of using a fixed threshold, the strategy calculates a rolling baseline from the smoothed absolute histogram value, then multiplies by a sensitivity factor (1.15). This means the threshold for "significant momentum" automatically adjusts based on recent momentum levels.
The MACD works with the regime classification: during velocity regimes, the histogram baseline is effectively higher because recent momentum has been stronger, preventing entries on relatively weak momentum.
RSI (21 period) and MFI (21 period) - Independent Momentum Confirmation
RSI measures momentum using price changes only. MFI (Money Flow Index) measures momentum using price AND volume. By requiring both to confirm, the strategy filters out price moves that lack volume support.
The 21-period length is longer than typical (14) to reduce noise on 5-minute charts. The trigger threshold (55 for longs, 45 for shorts) is slightly offset from 50 to require momentum in the trade direction, not just neutral readings.
These indicators work together: a signal requires RSI > 55 AND MFI > 55 for longs. This dual confirmation reduces false signals from price manipulation or low-volume moves.
Bollinger Bands (1.5 mult) and Keltner Channels (1.8 mult) - Squeeze Detection
When Bollinger Bands contract inside Keltner Channels, volatility is compressing and a breakout is likely. This is the "squeeze" condition. When the bands expand back outside the channels, the squeeze "releases."
The strategy uses a 1.5 multiplier for Bollinger Bands (tighter than standard 2.0) and 1.8 for Keltner Channels. These values were chosen to identify meaningful squeezes on 5-minute cryptocurrency charts without triggering too frequently.
The squeeze detection works with the regime classification: squeeze releases during compression regimes receive additional signal strength points because breakouts from consolidation are more significant.
Volume Impulse Detection - Institutional Participation Filter
The strategy calculates a volume baseline (34-period SMA) and standard deviation. A "volume impulse" is detected when current volume exceeds the baseline by 1.15x OR when the volume z-score exceeds 0.5.
This filter ensures entries occur when there is meaningful market participation, not during low-volume periods where price moves are less reliable.
Volume impulse is required for all entries and adds points to the composite signal strength score.
Cycle Oscillator - Trend Alignment Filter
The strategy calculates a 55-period EMA as a cycle basis, then measures price deviation from this basis as a percentage. When price is more than 0.15% above the cycle basis, the cycle is bullish. When more than 0.15% below, the cycle is bearish.
This filter prevents counter-trend entries. Long signals require bullish cycle alignment; short signals require bearish cycle alignment.
BTC Dominance Filter (Optional) - Market Regime Filter
The strategy can optionally use BTC.D (Bitcoin Dominance) as a market regime filter. When BTC dominance is rising (slope > 0.12), the market is in "risk-off" mode and long entries on altcoins are filtered. When dominance is falling (slope < -0.12), short entries are filtered.
This filter is optional because the BTC.D data feed may lag during low-liquidity periods.
How The Components Work Together (The Mashup Justification):
The strategy uses a composite scoring system where each signal pathway contributes points:
Trend Break pathway (30 points): Requires EMA ribbon alignment + positive slope + price breaks above recent structure high
Momentum Surge pathway (30 points): Requires MACD histogram > adaptive baseline + MACD line > signal + RSI > 55 + MFI > 55 + volume impulse
Squeeze Release pathway (25 points): Requires BB inside KC (squeeze) then release + momentum bias + histogram confirmation
Micro Pullback pathway (15 points): Requires shallow retracement to fast EMA within established trend + histogram confirmation + volume impulse
Additional modifiers:
+5 points if volume impulse is present, -5 if absent
+5 points in velocity regime, -2 in compression regime
+5 points if cycle is aligned, -5 if counter-trend
A trade only executes when the composite score reaches the minimum threshold (default 55) AND all filters agree (session, cycle bias, BTC dominance if enabled).
This scoring system is the core innovation: instead of requiring ALL conditions to be true (which would generate very few signals) or ANY condition to be true (which would generate too many false signals), the strategy requires ENOUGH conditions to be true, with different conditions contributing different weights based on their reliability.
HOW THE STRATEGY CALCULATES ENTRIES AND EXITS
Entry Logic:
1. Calculate current volatility regime from ATR%
2. Calculate all indicator values (MACD, EMA, RSI, MFI, squeeze, volume)
3. Evaluate each signal pathway and sum points
4. Check all filters (session, cycle, dominance, kill switch)
5. If composite score >= 55 AND all filters pass, generate entry signal
6. Calculate position size based on risk per trade and regime-adjusted stop distance
7. Execute entry with regime name as comment
Position Sizing Formula:
RiskCapital = Equity * (0.65 / 100)
StopDistance = ATR * StopMultiplier(regime)
RawQuantity = RiskCapital / StopDistance
MaxQuantity = Equity * (12 / 100) / Price
Quantity = min(RawQuantity, MaxQuantity)
Quantity = round(Quantity / 0.001) * 0.001
This ensures each trade risks approximately 0.65% of equity regardless of volatility, while capping total exposure at 12% of equity.
Stop Loss Calculation:
Stop distance is ATR multiplied by a regime-specific multiplier:
Compression regime: 1.05x ATR (tighter stops because moves are smaller)
Expansion regime: 1.55x ATR (standard stops)
Velocity regime: 2.1x ATR (wider stops to avoid premature exits during volatility)
Take Profit Calculation:
Target distance is ATR multiplied by regime-specific multiplier and base risk/reward:
Compression regime: 1.6x ATR * 1.8 base R:R * 0.9 regime bonus = approximately 2.6x ATR
Expansion regime: 2.05x ATR * 1.8 base R:R * 1.0 regime bonus = approximately 3.7x ATR
Velocity regime: 2.8x ATR * 1.8 base R:R * 1.15 regime bonus = approximately 5.8x ATR
Trailing Stop Logic:
When adaptive trailing is enabled, the strategy calculates a trailing offset based on ATR and regime:
Compression regime: 1.1x base offset (looser trailing to avoid noise)
Expansion regime: 1.0x base offset (standard)
Velocity regime: 0.8x base offset (tighter trailing to lock in profits during fast moves)
The trailing stop only activates when it would be tighter than the initial stop.
Momentum Fail-Safe Exits:
The strategy closes positions early if momentum reverses:
Long positions close if MACD histogram turns negative OR EMA ribbon structure breaks (fast EMA crosses below mid EMA)
Short positions close if MACD histogram turns positive OR EMA ribbon structure breaks
This prevents holding through momentum reversals even if stop loss hasn't been hit.
Kill Switch:
If maximum drawdown exceeds 6.5%, the strategy disables new entries until manually reset. This prevents continued trading during adverse conditions.
HOW TO USE THIS STRATEGY
Step 1: Apply to Chart
Use a 5-minute chart of a high-liquidity cryptocurrency perpetual (BTC/USDT, ETH/USDT recommended)
Ensure at least 200 bars of history are loaded for indicator stabilization
Use standard candlestick charts only (not Heikin Ashi, Renko, or other non-standard types)
Step 2: Understand the Visual Elements
EMA Ribbon: Three lines (8/21/34 periods) showing trend structure. Bullish when stacked upward, bearish when stacked downward.
Background Color: Shows current volatility regime
- Indigo/dark blue = Compression (low volatility)
- Purple = Expansion (normal volatility)
- Magenta/pink = Velocity (high volatility)
Bar Colors: Reflect signal strength divergence. Brighter colors indicate stronger directional bias.
Triangle Markers: Entry signals. Up triangles below bars = long entry. Down triangles above bars = short entry.
Dashboard (top-right): Real-time display of regime, ATR%, signal strengths, position status, stops, targets, and risk metrics.
Step 3: Interpret the Dashboard
Regime: Current volatility classification (Compression/Expansion/Velocity)
ATR%: Normalized volatility as percentage of price
Long/Short Strength: Current composite signal scores (0-100)
Cycle Osc: Price deviation from 55-period EMA as percentage
Dominance: BTC.D slope and filter status
Position: Current position direction or "Flat"
Stop/Target: Current stop loss and take profit levels
Kill Switch: Status of drawdown protection
Volume Z: Current volume z-score
Impulse: Whether volume impulse condition is met
Step 4: Adjust Parameters for Your Needs
For more conservative trading: Increase "Minimum Composite Signal Strength" to 65 or higher
For more aggressive trading: Decrease to 50 (but expect more false signals)
For higher timeframes (15m+): Increase "Structure Break Window" to 12-15, increase "RSI Momentum Trigger" to 58
For lower liquidity pairs: Increase "Volume Impulse Multiplier" to 1.3, increase slippage in strategy properties
To disable short selling: Uncheck "Enable Short Structure"
To disable BTC dominance filter: Uncheck "BTC Dominance Confirmation"
STRATEGY PROPERTIES (BACKTEST SETTINGS)
These are the exact settings used in the strategy's Properties dialog box. You must use these same settings when evaluating the backtest results shown in the publication:
Initial Capital: $100,000
Justification: This amount is higher than typical retail accounts. I chose this value to demonstrate percentage-based returns that scale proportionally. The strategy uses percentage-based position sizing (0.65% risk per trade), so a $10,000 account would see the same percentage returns with 10x smaller position sizes. The absolute dollar amounts in the backtest should be interpreted as percentages of capital.
Commission: 0.04% (commission_value = 0.04)
Justification: This reflects typical perpetual futures exchange fees. Major exchanges charge between 0.02% (maker) and 0.075% (taker). The 0.04% value is a reasonable middle estimate. If your exchange charges different fees, adjust this value accordingly. Higher fees will reduce net profitability.
Slippage: 1 tick
Justification: This is conservative for liquid pairs like BTC/USDT on major exchanges during normal conditions. For less liquid altcoins or during high volatility, actual slippage may be higher. If you trade less liquid pairs, increase this value to 2-3 ticks for more realistic results.
Pyramiding: 1
Justification: No position stacking. The strategy holds only one position at a time. This simplifies risk management and prevents overexposure.
calc_on_every_tick: true
Justification: The strategy evaluates on every price update, not just bar close. This is necessary for scalping timeframes where waiting for bar close would miss opportunities. Note that this setting means backtest results may differ slightly from bar-close-only evaluation.
calc_on_order_fills: true
Justification: The strategy recalculates immediately after order fills for faster response to position changes.
RISK PER TRADE JUSTIFICATION
The default risk per trade is 0.65% of equity. This is well within the TradingView guideline that "risking more than 5-10% on a trade is not typically considered viable."
With the 12% maximum exposure cap, even if the strategy takes multiple consecutive losses, the total risk remains manageable. The kill switch at 6.5% drawdown provides additional protection by halting new entries during adverse conditions.
The position sizing formula ensures that stop distance (which varies by regime) is accounted for, so actual risk per trade remains approximately 0.65% regardless of volatility conditions.
SAMPLE SIZE CONSIDERATIONS
For statistically meaningful backtest results, you should select a dataset that generates at least 100 trades. On 5-minute BTC/USDT charts, this typically requires:
2-3 months of data during normal market conditions
1-2 months during high-volatility periods
3-4 months during low-volatility consolidation periods
The strategy's selectivity (requiring 55+ composite score plus all filters) means it generates fewer signals than less filtered approaches. If your backtest shows fewer than 100 trades, extend the date range or reduce the minimum signal strength threshold.
Fewer than 100 trades produces statistically unreliable results. Win rate, profit factor, and other metrics can vary significantly with small sample sizes.
STRATEGY DESIGN COMPROMISES AND LIMITATIONS
Every strategy involves trade-offs. Here are the compromises made in this design and the limitations you should understand:
Selectivity vs. Opportunity Trade-off
The 55-point minimum threshold filters many potential trades. This reduces false signals but also misses valid setups that don't meet all criteria. Lowering the threshold increases trade frequency but decreases win rate. There is no "correct" threshold; it depends on your preference for fewer higher-quality signals vs. more signals with lower individual quality.
Regime Classification Lag
The ATR-based regime detection uses historical data (21 periods + 13-period smoothing). It cannot predict sudden volatility spikes. During flash crashes or black swan events, the strategy may be classified in the wrong regime for several bars before the classification updates. This is an inherent limitation of any lagging indicator.
Indicator Parameter Sensitivity
The default parameters (MACD 8/21/5, EMA 8/21/34, RSI 21, etc.) are tuned for BTC/ETH perpetuals on 5-minute charts during 2024 market conditions. Different assets, timeframes, or market regimes may require different parameters. There is no guarantee that parameters optimized on historical data will perform similarly in the future.
BTC Dominance Filter Limitations
The CRYPTOCAP:BTC.D data feed may lag during low-liquidity periods or weekends. The dominance slope calculation uses a 5-bar SMA, adding additional delay. If you notice the filter behaving unexpectedly, consider disabling it.
Backtest vs. Live Execution Differences
TradingView backtesting does not replicate actual broker execution. Key differences:
Backtests assume perfect fills at calculated prices; real execution involves order book depth, latency, and partial fills
The calc_on_every_tick setting improves backtest realism but still cannot capture sub-bar price action or order book dynamics
Commission and slippage settings are estimates; actual costs vary by exchange, time of day, and market conditions
Funding rates on perpetual futures are not modeled in backtests and can significantly impact profitability over time
Exchange-specific limitations (position limits, liquidation mechanics, order types) are not modeled
Market Condition Dependencies
This strategy is designed for trending and breakout conditions. During extended sideways consolidation with no clear direction, the strategy may generate few signals or experience whipsaws. No strategy performs well in all market conditions.
Cryptocurrency-Specific Risks
Cryptocurrency markets operate 24/7 without session boundaries. This means:
No natural "overnight" risk reduction
Volatility can spike at any time
Liquidity varies significantly by time of day
Exchange outages or issues can occur at any time
WHAT THIS STRATEGY DOES NOT DO
To be straightforward about limitations:
This strategy does not guarantee profits. Past backtest performance does not indicate future results.
This strategy does not predict the future. It reacts to current conditions based on historical patterns.
This strategy does not account for funding rates, which can significantly impact perpetual futures profitability.
This strategy does not model exchange-specific execution issues (partial fills, requotes, outages).
This strategy does not adapt to fundamental news events or black swan scenarios.
This strategy is not optimized for all market conditions. It may underperform during extended consolidation.
IMPORTANT RISK WARNINGS
Past performance does not guarantee future results. The backtest results shown reflect specific historical market conditions and parameter settings. Markets change constantly, and strategies that performed well historically may underperform or lose money in the future. A single backtest run does not constitute proof of future profitability.
Trading involves substantial risk of loss. Cryptocurrency derivatives are highly volatile instruments. You can lose your entire investment. Only trade with capital you can afford to lose completely.
This is not financial advice. This strategy is provided for educational and informational purposes only. It does not constitute investment advice, trading recommendations, or any form of financial guidance. The author is not a licensed financial advisor.
You are responsible for your own decisions. Before using this strategy with real capital:
Thoroughly understand the code and logic by reading the open-source implementation
Forward test with paper trading or very small positions for an extended period
Verify that commission, slippage, and execution assumptions match your actual trading environment
Understand that live results will differ from backtest results
Consider consulting with a qualified financial advisor
No guarantees or warranties. This strategy is provided "as is" without any guarantees of profitability, accuracy, or suitability for any purpose. The author is not responsible for any losses incurred from using this strategy.
OPEN-SOURCE CODE STRUCTURE
The strategy code is organized into these sections for readability:
Configuration Architecture: Input parameters organized into logical groups (Core Controls, Optimization Constants, Regime Intelligence, Signal Pathways, Risk Architecture, Visualization)
Helper Functions: calcQty() for position sizing, clamp01() and normalize() for value normalization, calcMFI() for Money Flow Index calculation
Core Indicator Engine: EMA ribbon, ATR and regime classification, MACD with adaptive baseline, RSI, MFI, volume analytics, cycle oscillator, BTC dominance filter, squeeze detection
Signal Pathway Logic: Trend break, momentum surge, squeeze release, micro pullback pathways with composite scoring
Entry/Exit Orchestration: Signal filtering, position sizing, entry execution, stop/target calculation, trailing stop logic, momentum fail-safe exits
Visualization Layer: EMA plots, regime background, bar coloring, signal labels, dashboard table
You can read and modify any part of the code. Understanding the logic before deployment is strongly recommended.
- Made with passion by officialjackofalltrades
CVD Zones & Divergence [Pro]# CVD Zones & Divergence
**Complete CVD order flow toolkit** - Divergences, POC, Profile, and Supply/Demand zones all in one professional indicator.
## 🎯 What It Does
Combines **four powerful order flow tools** into a single, cohesive indicator:
1. **CVD Divergences** - Early warnings + confirmed signals
2. **Point of Control (POC)** - Fair value equilibrium line
3. **CVD Profile** - Visual distribution histogram
4. **Supply/Demand Zones** - Real absorption-based S/R levels
All based on **Cumulative Volume Delta (CVD)** - actual buying/selling pressure, not approximations.
## ✨ Key Features
### 🔄 CVD Divergences (Dual Mode)
**Confirmed Divergences** (High Accuracy)
- Solid lines (customizable colors)
- 🔻 Bear / 🔺 Bull labels
- Win rate: ~70-80%
- Best for swing traders
**Early Warning Mode** ⚡ (Fast Signals)
- Dashed lines (default purple)
- ⚠️ Early Bear / ⚠️ Early Bull labels
- Fires 6+ bars earlier
- Win rate: ~55-65%
- Best for scalpers/day traders
### 🎯 Point of Control (POC)
- **Independent lookback** (300 bars default)
- Yellow line showing fair value
- Where most CVD activity occurred
- Acts as dynamic support/resistance
- Resets and recalculates continuously
### 📊 CVD Profile Histogram
- **Visual CVD distribution** over lookback period
- **Split buy/sell** (blue/orange bars)
- **Value Area** (70% CVD zone highlighted)
- Position: Right/Left/Current (your choice)
- Shows where actual order flow happened
### 📦 Supply/Demand Zones
- **Absorption-based** detection (not guesses!)
- Green = Demand (buyers absorbed 2:1+)
- Red = Supply (sellers absorbed 2:1+)
- Shows **real** institutional levels
- Auto-sorted by strength
- Displays top 8 zones
## 📊 What You See on Chart
```
Your Chart:
├─ 🔴 Red lines (bearish divergences)
├─ 🟢 Green lines (bullish divergences)
├─ 🟣 Purple dashed (early warnings)
├─ 🟡 Yellow POC line (fair value)
├─ 📊 Blue/Orange profile (right side)
├─ 🟢 Green boxes (demand zones)
└─ 🔴 Red boxes (supply zones)
```
## ⚙️ Recommended Settings
### 15m Day Trading (Most Popular)
```
📊 Profile:
- Lookback: 150 bars
- Profile Rows: 24
- Position: Right
🎯 POC:
- POC Lookback: 300 bars
- Show POC: ON
📦 Zones:
- Min Absorption Ratio: 2.0
- HVN Threshold: 1.5
- Max Zones: 8
🔄 Divergences:
- Pivot L/R: 9
- Early Warning: ON
- Early Right Bars: 3
- Min Bars Between: 40
- Min CVD Diff: 5%
```
### 5m Scalping
```
Profile Lookback: 100
POC Lookback: 200
Pivot L/R: 7
Early Warning Right: 2
Min Bars Between: 60
```
### 1H Swing Trading
```
Profile Lookback: 200
POC Lookback: 400-500
Pivot L/R: 12-14
Early Warning Right: 4-5
Min Bars Between: 30
Min CVD Diff: 8%
```
## 💡 How to Trade
### Setup 1: Divergence at Zone ⭐ (BEST - 75%+ win rate)
**Entry:**
- Price hits demand/supply zone
- Divergence appears (early or confirmed)
- Double confluence = high probability
**Example (Long):**
```
1. Price drops into green demand zone
2. ⚠️ Early bullish divergence fires
3. Enter long with tight stop below zone
4. Target: POC or next supply zone
```
**Risk/Reward:** 1:3 to 1:5
---
### Setup 2: POC Bounce/Rejection
**Entry:**
- Price approaches POC line
- Wait for reaction (bounce or rejection)
- Enter in direction of reaction
**Long Setup:**
```
1. Price pulls back to POC from above
2. POC acts as support
3. Bullish divergence appears (confirmation)
4. Enter long, stop below POC
```
**Short Setup:**
```
1. Price rallies to POC from below
2. POC acts as resistance
3. Bearish divergence appears
4. Enter short, stop above POC
```
**Risk/Reward:** 1:2 to 1:4
---
### Setup 3: Zone + Profile Confluence
**Entry:**
- Supply/demand zone aligns with thick profile bar
- Shows high CVD activity at that level
- Triple confluence = very high probability
**Example:**
```
1. Supply zone at 26,100
2. Profile shows heavy selling at 26,100
3. Price rallies to 26,100
4. Bearish divergence appears
5. Enter short
```
**Risk/Reward:** 1:4 to 1:6
---
### Setup 4: Early Warning Scalp ⚡
**Entry (Aggressive):**
- ⚠️ Early warning fires
- Price at zone or POC
- Enter immediately
- Tight stop (1-2 ATR)
**Management:**
```
- Take 50% profit at 1:1
- Move stop to breakeven
- 🔻 Confirmed signal → Trail stop
- Exit rest at target
```
**Risk/Reward:** 1:1.5 to 1:2
**Trades/day:** 3-8
---
### Setup 5: Multi-Timeframe (Advanced)
**Confirmation Required:**
```
Higher TF (1H):
- Confirmed divergence
- At major POC or zone
Lower TF (15m):
- Early warning triggers
- Entry with better timing
```
**Benefits:**
- HTF gives direction
- LTF gives entry
- Best of both worlds
**Risk/Reward:** 1:3 to 1:5
---
## 📊 Component Details
### CVD Profile
**What the colors mean:**
- **Blue bars** = Buying CVD (demand)
- **Orange bars** = Selling CVD (supply)
- **Lighter shade** = Value Area (70% CVD)
- **Thicker bar** = More volume at that price
**How to use:**
- Thick bars = Support/Resistance
- Profile shape shows market structure
- Balanced profile = range
- Skewed profile = trend
---
### Supply/Demand Zones
**How they're detected:**
1. High Volume Node (1.5x average)
2. CVD buy/sell ratio calculated
3. Ratio ≥ 2.0 → Zone created
4. Sorted by strength (top 8 shown)
**Zone labels show:**
- Type: "Demand" or "Supply"
- Ratio: "2.8:1" = strength
**Not like other indicators:**
- ❌ Other tools use price action alone
- ✅ This uses actual CVD absorption
- Shows WHERE limit orders defended levels
---
### Point of Control (POC)
**What it shows:**
- Price with highest CVD activity
- Market's "fair value"
- Dynamic S/R level
**How to use:**
- Price above POC = bullish bias
- Price below POC = bearish bias
- POC retest = trading opportunity
- POC cross = trend change signal
**Independent lookback:**
- Profile: 150 bars (short-term)
- POC: 300 bars (longer-term context)
- Gives stable, relevant POC
---
## 🔧 Settings Explained
### 📊 Profile Settings
**Lookback Bars** (150 default)
- How many bars for profile calculation
- Lower = more recent, reactive
- Higher = more historical, stable
**Profile Rows** (24 default)
- Granularity of distribution
- Lower = coarser (faster)
- Higher = finer detail (slower)
**Profile Position**
- Right: After current price
- Left: Before lookback period
- Current: At lookback start
**Value Area** (70% default)
- Highlights main CVD concentration
- 70% is standard
- Higher % = wider zone
---
### 🎯 POC Settings
**POC Lookback** (300 default)
- Independent from profile
- Longer = more stable POC
- Shorter = more reactive POC
**Show POC Line/Label**
- Toggle visibility
- Customize color/width
---
### 📦 Zone Settings
**Min Absorption Ratio** (2.0 default)
- Buy/Sell threshold for zones
- 2.0 = 2:1 ratio minimum
- Higher = fewer, stronger zones
**HVN Threshold** (1.5 default)
- Volume must be 1.5x average
- Higher = stricter filtering
- Lower = more zones
**Max Zones** (8 default)
- Limits display clutter
- Shows strongest N zones only
---
### 🔄 Divergence Settings
**Pivot Left/Right** (9/9 default)
- Bars to confirm pivot
- Higher = slower, more confirmed
- Lower = faster, less confirmed
**Early Warning**
- ON = Show early signals
- Early Right Bars (3 default)
- 3 = 6 bars faster than confirmed
**Filters:**
- Min Bars Between (40): Prevents spam
- Min CVD Diff % (5): Filters weak signals
**Visual:**
- Line styles: Solid/Dashed/Dotted
- Colors: Customize all 4 types
- Labels: Toggle ON/OFF
---
## 🎨 Color Customization
**Divergences:**
- Bullish Confirmed: Green (default)
- Bearish Confirmed: Red (default)
- Early Bullish: Purple (default)
- Early Bearish: Purple (default)
**Zones & Profile:**
- Bull/Demand: Green
- Bear/Supply: Red
- Buy CVD Profile: Blue
- Sell CVD Profile: Orange
- Value Area Up/Down: Lighter blue/orange
**POC:**
- POC Color: Yellow (default)
All customizable to your preference!
---
## 🔔 Alerts Available
**6 Alert Types:**
1. 🔻 Bearish Divergence (confirmed)
2. 🔺 Bullish Divergence (confirmed)
3. ⚠️ Early Bearish Warning
4. ⚠️ Early Bullish Warning
5. (Manual: POC cross)
6. (Manual: Zone touch)
**Setup:**
1. Click Alert (⏰)
2. Choose "CVD Zones & Divergence"
3. Select alert type
4. Configure notification
5. Create!
---
## 💎 Pro Tips
### From Experienced Traders:
**"Use zones with divergences for best setups"**
- Zone alone: 60% win rate
- Divergence alone: 65% win rate
- Both together: 75%+ win rate
**"POC is your friend"**
- Price tends to revert to POC
- Great target for counter-trend trades
- POC cross = potential trend change
**"Profile tells the story"**
- Thick bars = institutional levels
- Balanced profile = range-bound
- Skewed high = distribution (top)
- Skewed low = accumulation (bottom)
**"Early warnings for entries, confirmed for confidence"**
- Early = better entry price
- Confirmed = validation
- Use both in scale-in strategy
**"Filter by timeframe"**
- 1m-5m: Very fast, many signals
- 15m: Sweet spot for most traders
- 1H-4H: High quality, fewer signals
---
## 🔧 Tuning Guide
### Too Cluttered?
**Simplify:**
```
✅ Show Divergences: ON
✅ Show POC: ON
❌ Show Zones: OFF (or reduce to 4-5)
❌ Show Value Area: OFF
❌ Divergence Labels: OFF
→ Clean chart with just lines + POC
```
### Missing Opportunities?
**More Signals:**
```
↓ Pivot Right: 6-7
↓ Early Warning Right: 2
↓ Min Bars Between: 25-30
↓ Min CVD Diff: 2-3%
↓ Min Absorption Ratio: 1.8
```
### Too Many False Signals?
**Stricter Filters:**
```
↑ Pivot Right: 12-15
↑ Min Bars Between: 60
↑ Min CVD Diff: 8-10%
↑ Min Absorption Ratio: 2.5
↓ Max Zones: 4-5
```
### POC Not Making Sense?
**Adjust POC Lookback:**
```
If too high: Increase to 400-500
If too low: Increase to 400-500
If jumping around: Increase to 500+
→ Longer lookback = more stable POC
```
---
## ❓ FAQ
**Q: Difference from CVD Divergence (standalone)?**
A: This is the **complete package**:
- Divergence tool = divergences only
- This = divergences + POC + profile + zones
- Use divergence tool for clean charts
- Use this for full analysis
**Q: Too slow/laggy?**
A: Reduce computational load:
```
Profile Rows: 18 (from 24)
Lookback: 100 (from 150)
Max Zones: 5 (from 8)
```
**Q: No volume data error?**
A: Symbol has no volume
- Works: Futures, stocks, crypto
- Maybe: Forex (broker-dependent)
- Doesn't work: Some forex pairs
**Q: Can I use just some features?**
A: Absolutely! Toggle what you want:
```
Zones only: Turn off divergences + POC
POC only: Turn off zones + divergences
Divergences only: Turn off zones + POC + profile
Mix and match as needed!
```
**Q: Best timeframe?**
A:
- **1m-5m**: Scalping (busy, many signals)
- **15m**: Day trading ⭐ (recommended)
- **1H-4H**: Swing trading (quality signals)
- **Daily**: Position trading (very selective)
**Q: Works on crypto/forex/stocks?**
A:
- ✅ Futures: Excellent
- ✅ Stocks: Excellent
- ✅ Crypto: Very good (major pairs)
- ⚠️ Forex: Depends on broker volume
---
## 📈 Performance Expectations
### Realistic Win Rates
| Strategy | Win Rate | Avg R/R | Trades/Week |
|----------|----------|---------|-------------|
| Early warnings only | 55-65% | 1:1.5 | 15-30 |
| Confirmed only | 70-80% | 1:2 | 8-15 |
| Divergence + Zone | 75-85% | 1:3 | 5-12 |
| Full confluence (all 4) | 80-90% | 1:4+ | 3-8 |
**Keys to success:**
- Don't trade every signal
- Wait for confluence
- Proper risk management
- Trade what you see, not what you think
---
## 🚀 Quick Start
**New User (5 minutes):**
1. ✅ Add to 15m chart
2. ✅ Default settings work well
3. ✅ Watch for 1 week (don't trade yet!)
4. ✅ Note which setups work best
5. ✅ Backtest on 50+ signals
6. ✅ Start with small size
7. ✅ Scale up slowly
**First Trade Checklist:**
- Divergence + Zone/POC = confluence
- Clear S/R level nearby
- Risk/reward minimum 1:2
- Position size = 1% risk max
- Stop loss placed
- Target identified
- Journal entry ready
---
## 📊 What Makes This Special?
**Most indicators:**
- Use RSI/MACD divergences (lagging)
- Guess at S/R zones (subjective)
- Don't show actual order flow
**This indicator:**
- Uses real CVD (actual volume delta)
- Absorption-based zones (real orders)
- Profile shows distribution (real activity)
- POC shows equilibrium (real fair value)
- All from one data source (coherent)
**Result:**
- Everything aligns
- No conflicting signals
- True order flow analysis
- Professional-grade toolkit
---
## 🎯 Trading Philosophy
**Remember:**
- Indicator shows you WHERE to look
- YOU decide whether to trade
- Quality over quantity always
- Risk management is #1
- Patience beats aggression
**Best trades have:**
- ✅ Multiple confluences
- ✅ Clear risk/reward
- ✅ Obvious invalidation point
- ✅ Aligned with trend/context
**Worst trades have:**
- ❌ Single signal only
- ❌ Poor location (middle of nowhere)
- ❌ Unclear stop placement
- ❌ Counter to all context
---
## ⚠️ Risk Disclaimer
**Important:**
- Past performance ≠ future results
- All trading involves risk
- Only risk what you can afford to lose
- This is a tool, not financial advice
- Use proper position sizing
- Keep a trading journal
- Consider professional advice
**Your responsibility:**
- Which setups to trade
- Position size
- Entry/exit timing
- Risk management
- Emotional control
**Success = Tool + Strategy + Discipline + Risk Management**
---
## 📝 Version History
**v1.0** - Current Release
- CVD divergences (confirmed + early warning)
- Point of Control (independent lookback)
- CVD profile histogram
- Supply/demand absorption zones
- Value area visualization
- 6 alert types
- Full customization
---
## 💬 Community
**Questions?** Drop a comment below
**Success story?** Share with the community
**Feature request?** Let me know
**Bug report?** Provide details in comments
---
**Happy Trading! 🚀📊**
*Professional order flow analysis in one indicator.*
**Like this?** ⭐ Follow for more quality tools!
Squeeze Momentum with Trend Exhaustion# Squeeze Momentum + Trend Exhaustion Indicator
## Complete User Manual
---
## Table of Contents
1. (#what-this-indicator-does)
2. (#visual-components)
3. (#market-states)
4. (#how-to-read-signals)
5. (#trading-examples)
6. (#configuration-guide)
7. (#best-practices)
---
## What This Indicator Does
This indicator combines two powerful concepts to identify complete market cycles:
### 1. Squeeze Momentum (LazyBear)
Detects **volatility compression** (consolidation) and subsequent **expansion** (breakout).
**Think of it like:** A spring being compressed, then released.
### 2. Multi-Timeframe Trend Exhaustion
Measures how far price has moved from its moving averages across multiple timeframes.
**Think of it like:** A rubber band being stretched—eventually it must snap back.
### The Complete Cycle
```
Consolidation → Breakout → Trend → Exhaustion → Reversion → Consolidation
```
This indicator shows you exactly where you are in this cycle.
---
## Visual Components
### Main Panel (Bottom)
| Element | What It Looks Like | Meaning |
|---------|-------------------|---------|
| **Colored Bars** | Green/Red histogram | Momentum strength and direction |
| **Filled Area** | Yellow/Lime/Red gradient area | Price extension from moving averages |
| **Cross at Zero** | Black/Gray/Blue cross | Squeeze state (volatility) |
| **Dashed Lines** | Horizontal red/green lines | Extension thresholds (±2σ scaled) |
---
### 1. Momentum Histogram (Colored Bars)
| Color | Direction | Meaning |
|-------|-----------|---------|
| **Bright Green** (Lime) | Up ↑ | Strong bullish momentum (increasing) |
| **Dark Green** | Up ↑ | Weak bullish momentum (decreasing) |
| **Bright Red** | Down ↓ | Strong bearish momentum (increasing) |
| **Dark Red** (Maroon) | Down ↓ | Weak bearish momentum (decreasing) |
**Key insight:** When bars change from bright to dark, momentum is fading.
---
### 2. Extension Area (Filled Gradient)
Shows how extended price is from its moving averages across 5 timeframes (5m, 15m, 1h, 4h, Daily).
| Color | Position | Meaning |
|-------|----------|---------|
| **Red** | High above zero | Severely overbought (>2σ scaled) |
| **Orange/Yellow** | Above zero | Moderately overbought |
| **Lime/Green** | Below zero | Moderately oversold |
| **Teal** | Deep below zero | Severely oversold (<-2σ scaled) |
**The area is scaled 3x** for better visibility. Actual values shown in table.
**Reading it:**
- **Area touching upper dashed line** = Price very far above averages (exhaustion territory)
- **Area touching lower dashed line** = Price very far below averages (exhaustion territory)
- **Area near zero** = Price near its averages (normal/neutral)
---
### 3. Squeeze Indicator (Cross at Zero Line)
| Color | Status | Meaning |
|-------|--------|---------|
| **Black** ⚫ | Squeeze ON | Bollinger Bands inside Keltner Channels → Low volatility, consolidation |
| **Gray** ⚪ | Squeeze OFF | Bollinger Bands outside Keltner Channels → Volatility expanding, breakout |
| **Blue** 🔵 | No Squeeze | Normal volatility conditions |
**Critical:** The transition from Black → Gray is where explosive moves begin.
---
### 4. Entry/Exit Signals
| Symbol | Type | Meaning |
|--------|------|---------|
| 🔺 **Large Green Triangle** | HC Long Entry | High Confidence long setup (Squeeze OFF + Oversold + Confluence) |
| 🔻 **Large Red Triangle** | HC Short Entry | High Confidence short setup (Squeeze OFF + Overbought + Confluence) |
| 🔺 Small green | Medium Long | Long setup without full confluence |
| 🔻 Small red | Medium Short | Short setup without full confluence |
| ✕ Orange X | Exit Long | Close long positions (exhaustion detected) |
| ✕ Teal X | Exit Short | Close short positions (exhaustion detected) |
**Trade only the LARGE triangles** for highest probability setups.
---
## Market States
The indicator identifies 7 distinct market states shown in the info table.
### State 1: 💤 CONSOLIDATION
**Conditions:**
- Squeeze: ON (black cross)
- Extension: Near zero (±1σ)
- Momentum: Contracting
**What's happening:** Price is range-bound, volatility dying down. Spring is being compressed.
**Action:** **WAIT.** Do not trade. Set alerts for Squeeze OFF.
---
### State 2: ⚡ BREAKOUT BULL / BEAR
**Conditions:**
- Squeeze: OFF (gray cross) ← **Key trigger**
- Extension: Still moderate
- Momentum: Strong directional move (bright green or red bars)
**What's happening:** Volatility explosion. Spring released. This is the start of a new trend.
**Action:** **ENTER** in direction of momentum.
- ⚡ BREAKOUT BULL → Go LONG
- ⚡ BREAKOUT BEAR → Go SHORT
**Best scenario:** Breakout from oversold/overbought levels (confluence with exhaustion indicator).
---
### State 3: ↗️ TRENDING UP / ↘️ TRENDING DOWN
**Conditions:**
- Squeeze: OFF or No Squeeze
- Extension: Growing (1σ to 2σ)
- Momentum: Sustained strong bars
**What's happening:** Trend in progress. Price moving away from averages.
**Action:** **HOLD** positions. Let winners run. Don't fight the trend.
---
### State 4: ⚠️ EXTENDED UP / DOWN
**Conditions:**
- Extension: Above 2σ threshold
- Momentum: Still strong (bright bars)
- Confluence: May be weak
**What's happening:** Price stretched but still has power. Caution zone.
**Action:** **CAUTION.** Don't enter new positions. Tighten stops on existing positions.
---
### State 5: 🔴 EXHAUSTION BULL / 🟢 EXHAUSTION BEAR
**Conditions:**
- Extension: >2σ (touching dashed lines)
- Momentum: Fading (bright bars turning dark)
- Velocity: Decreasing
- Confluence: 3/5 or better
**What's happening:** Rubber band stretched to maximum. Trend running out of energy.
**Action:** **EXIT** positions.
- 🔴 EXHAUSTION BULL → Close LONGS, consider SHORT
- 🟢 EXHAUSTION BEAR → Close SHORTS, consider LONG
**This is the highest probability reversal signal.**
---
### State 6: ➡️ TRENDING (Neutral Direction)
**Conditions:**
- Price trending but without clear momentum direction changes
**Action:** **HOLD** or wait for clearer signals.
---
### State 7: — NEUTRAL
**Conditions:**
- Extension near zero
- No squeeze
- Weak momentum
**Action:** No trade. Wait for setup.
---
## How to Read Signals
### Perfect Long Entry (High Confidence ⭐)
**Requirements (all must be true):**
1. ⚫→⚪ Squeeze just turned OFF (gray cross)
2. 📊 Momentum bars bright GREEN and rising
3. 🔻 Extension area BELOW lower dashed line (oversold)
4. ⭐ Confluence: 3/5 or more timeframes agree (shown as "🔻" in table)
**Visual:** Large green triangle appears
**What this means:** Price was oversold across multiple timeframes, consolidated, and is now breaking out upward with fresh momentum.
**Entry:** Next candle after signal
**Stop Loss:** Below recent consolidation low
**Take Profit:** When extension area crosses back above zero, or when exit signal appears
---
### Perfect Short Entry (High Confidence ⭐)
**Requirements (all must be true):**
1. ⚫→⚪ Squeeze just turned OFF (gray cross)
2. 📊 Momentum bars bright RED and falling
3. 🔺 Extension area ABOVE upper dashed line (overbought)
4. ⭐ Confluence: 3/5 or more timeframes agree (shown as "🔺" in table)
**Visual:** Large red triangle appears
**What this means:** Price was overbought across multiple timeframes, consolidated, and is now breaking down with fresh momentum.
**Entry:** Next candle after signal
**Stop Loss:** Above recent consolidation high
**Take Profit:** When extension area crosses back below zero, or when exit signal appears
---
### Exit Signals
#### Exit Long (Orange X)
**Appears when:**
- Extension area reaches upper dashed line (>2σ)
- Momentum bars turning from bright green to dark green
- Price losing upward velocity
**Action:** Close 50-100% of position. Move stop to breakeven on remainder.
#### Exit Short (Teal X)
**Appears when:**
- Extension area reaches lower dashed line (<-2σ)
- Momentum bars turning from bright red to dark red
- Price losing downward velocity
**Action:** Close 50-100% of position. Move stop to breakeven on remainder.
---
### Medium Confidence Signals (Small Triangles)
These appear when squeeze is OFF and momentum is directional, but:
- Extension is only moderate (not extreme), OR
- Confluence is weak (<3/5 timeframes)
**How to trade:**
- Use smaller position size (50% of normal)
- Tighter stops
- Only take if other factors align (support/resistance, volume, etc.)
---
## Trading Examples
### Example 1: Classic Squeeze Play into Trend
```
Step 1: CONSOLIDATION (💤)
Chart: Price moving sideways for 10-20 candles
Indicator: Black cross at zero (Squeeze ON)
Extension: Yellow/Lime area near zero line
Action: Set alert for Squeeze OFF
Step 2: BREAKOUT (⚡)
Chart: Strong green candle breaks resistance
Indicator: Cross turns GRAY (Squeeze OFF)
Bright GREEN momentum bars appear
Extension area still near zero or slightly below
Signal: Large green triangle appears
Action: ENTER LONG
Stop loss below consolidation
Target: Extension upper line
Step 3: TRENDING (↗️)
Chart: Series of higher highs and higher lows
Indicator: Momentum bars stay bright green
Extension area rising toward upper line
Area color transitions yellow → orange → red
Action: HOLD, trailing stop
Step 4: EXHAUSTION (🔴)
Chart: Price makes new high but with smaller candle
Indicator: Extension area touches upper dashed line
Momentum bars turn DARK green (weakening)
Orange X appears
Table shows "EXHAUSTION BULL"
Action: EXIT position
Book profits
Step 5: REVERSION
Chart: Price falls back toward moving averages
Indicator: Extension area shrinks back toward zero
Red momentum bars appear
Action: Wait for next setup
```
**Result:** Caught the entire trend from breakout to exhaustion.
---
### Example 2: Failed Breakout (What NOT to Trade)
```
Situation:
- Squeeze OFF (gray cross) ✓
- Momentum bars bright green ✓
- BUT extension area ABOVE upper line (already overbought) ✗
- Confluence shows 1/5 (only one timeframe agrees) ✗
Indicator: Small green triangle (medium confidence) or no triangle
What happens: Price makes small move up, then reverses
Lesson: Don't chase extended moves even if squeeze fires.
Wait for price to be on the RIGHT SIDE of the extension lines.
```
---
### Example 3: Exhaustion Reversal Trade
```
Step 1: EXTENDED (⚠️)
Chart: Strong uptrend for days
Indicator: Extension area deep in red zone (>2σ)
Momentum still bright green but starting to shorten
Table: "EXTENDED UP" / "CAUTION LONG"
Action: Watch closely, tighten stops
Step 2: EXHAUSTION (🔴)
Chart: Price makes final push but with decreasing volume
Indicator: Momentum bars turn DARK green
Orange X appears
Table: "EXHAUSTION BULL" + "4/5 🔺"
Action: CLOSE any longs
Consider SHORT entry
Step 3: SQUEEZE FORMS (Optional)
Chart: Price starts consolidating
Indicator: Cross turns BLACK (Squeeze ON)
Extension area falling toward zero
Action: Wait for Squeeze OFF to confirm reversal
Step 4: BREAKOUT DOWN (⚡)
Indicator: Cross turns GRAY
Bright RED momentum bars
Large red triangle appears
Action: ENTER SHORT (reversal confirmed)
```
**Result:** Exited at the top, caught the reversal.
---
## Configuration Guide
### Recommended Settings by Timeframe
#### For 4H Charts (Swing Trading)
```
Squeeze Settings: (defaults are fine)
- BB Length: 20
- BB MultFactor: 2.0
- KC Length: 20
- KC MultFactor: 1.5
Exhaustion TFs:
- TF1: 15m
- TF2: 1h
- TF3: 4h
- TF4: 12h or Daily
- TF5: Daily or Weekly
Extension Threshold: 2.0σ
Min Confluence: 3/5
```
#### For 1H Charts (Day Trading)
```
Squeeze Settings: (defaults)
Exhaustion TFs:
- TF1: 5m
- TF2: 15m
- TF3: 1h
- TF4: 4h
- TF5: Daily
Extension Threshold: 2.0σ
Min Confluence: 3/5
```
#### For 15m Charts (Scalping)
```
Squeeze Settings:
- BB Length: 15
- KC Length: 15
Exhaustion TFs:
- TF1: 1m
- TF2: 5m
- TF3: 15m
- TF4: 1h
- TF5: 4h
Extension Threshold: 2.5σ (higher to avoid noise)
Min Confluence: 4/5 (more strict)
```
---
### Understanding the Table
Located in top-right corner:
| Row | Meaning |
|-----|---------|
| **Market State** | Current cycle phase (Consolidation/Breakout/Trending/Exhaustion) |
| **Squeeze** | 🔴 ON / 🟢 OFF / 🔵 No |
| **Momentum** | ↑ Bull / ↓ Bear / ~ Weak / — Neutral |
| **Extension** | Actual value in standard deviations (σ) - NOT scaled |
| **Confluence** | How many timeframes agree (X/5 🔺 or 🔻) |
| **Velocity** | Speed of extension change (↑ increasing, ↓ decreasing) |
| **ACTION** | What to do right now |
**Most important rows:**
1. **Market State** - Quick glance at current cycle
2. **Confluence** - Determines signal quality
3. **ACTION** - Direct guidance
---
## Best Practices
### ✅ DO
1. **Wait for High Confidence signals** (large triangles)
- Don't trade every small signal
- Quality over quantity
2. **Use the complete cycle**
- Enter on Breakout (⚡)
- Hold through Trending (↗️/↘️)
- Exit on Exhaustion (🔴/🟢)
3. **Respect confluence**
- 4/5 or 5/5 = Excellent probability
- 3/5 = Good probability
- 1-2/5 = Skip
4. **Combine with price action**
- Support/resistance levels
- Volume confirmation
- Candlestick patterns
5. **Set alerts**
- "Squeeze OFF" - Don't miss breakouts
- "HC Long Setup" / "HC Short Setup"
- "Exit Long" / "Exit Short"
6. **Scale positions**
- Enter 50% on signal
- Add 25% if extension confirms
- Add final 25% if momentum sustains
7. **Use proper risk management**
- Stop loss: Below/above consolidation
- Position size: 1-2% account risk
- Take profit: Extension targets or signals
---
### ❌ DON'T
1. **Don't trade Consolidation state**
- Black cross (Squeeze ON) = Wait mode
- No signals during consolidation
2. **Don't chase Extended moves**
- If extension already >2σ when Squeeze fires
- Even if momentum looks good
- Wait for reversion first
3. **Don't fight strong trends**
- If extension is growing and momentum strong
- Don't counter-trend trade
- Wait for exhaustion signals
4. **Don't ignore velocity**
- If velocity is ↑ and extension high = still dangerous
- If velocity is ↓ and extension high = safer reversal
5. **Don't trade low confluence**
- 1/5 or 2/5 = Different timeframes disagree
- High chance of false signal
6. **Don't use blindly**
- Check overall market context
- Major news events can override signals
- Trend on higher timeframe matters
7. **Don't overtrade**
- Good setups are rare (that's why they work)
- Wait for complete setup formation
---
## Quick Reference Card
### Signal Quality Checklist
**⭐⭐⭐ PERFECT SETUP (Trade this)**
- Squeeze just turned OFF (⚫→⚪)
- Momentum bright and directional
- Extension >2σ (OPPOSITE direction of entry)
- Confluence ≥3/5
- Large triangle signal
- Action says "LONG/SHORT ENTRY ⭐"
**⭐⭐ GOOD SETUP (Trade with caution)**
- Squeeze OFF
- Momentum directional
- Extension moderate
- Confluence ≥3/5
- Small triangle or Action confirms
**⭐ WEAK SETUP (Skip)**
- Low confluence (<3/5)
- Extension same direction as entry
- Momentum weak or conflicting
- Already in Extended/Exhaustion state
---
### State → Action Quick Guide
| See This State | Do This |
|---------------|---------|
| 💤 CONSOLIDATION | Wait, set alerts |
| ⚡ BREAKOUT | Enter in direction |
| ↗️/↘️ TRENDING | Hold positions |
| ⚠️ EXTENDED | Tighten stops, no new entries |
| 🔴/🟢 EXHAUSTION | Exit, consider reversal |
| — NEUTRAL | No trade |
---
## Troubleshooting
**Q: Indicator shows Exhaustion but price keeps going**
**A:** Check velocity and momentum. If still bright bars + velocity ↑, wait. True exhaustion needs momentum weakening.
**Q: Too many false signals**
**A:** Increase Min Confluence to 4/5. Use longer timeframe chart (4h instead of 1h).
**Q: Missing good trades**
**A:** Set alerts for "Squeeze OFF" and "HC Entry" signals. You can't watch charts 24/7.
**Q: Extension area looks weird**
**A:** Remember it's scaled 3x for visibility. Check table for actual values.
**Q: Which timeframe is best?**
**A:** 4H for swing trading, 1H for day trading. Lower = more signals but more noise.
**Q: Can I use this with other indicators?**
**A:** Yes! Combine with:
- Volume profile
- Support/resistance levels
- Moving averages on chart
- RSI for additional confirmation
---
## Final Thoughts
This indicator gives you a complete picture of market structure:
- **Where are we?** (Market State)
- **Where are we going?** (Momentum)
- **How far can it go?** (Extension)
- **When will it reverse?** (Exhaustion)
The key is **patience**. Wait for the complete setup:
1. Consolidation (⚫ Squeeze ON)
2. Breakout (⚪ Squeeze OFF)
3. Right extension direction (oversold for longs, overbought for shorts)
4. Strong confluence (3/5+)
When all pieces align, you get high-probability trades with clear entries, targets, and exits.
**Trade the cycle, not every wiggle.**
---
## Support & Updates
For questions or suggestions, refer to the original script documentation or TradingView community.
**Remember:** No indicator is perfect. Always use proper risk management and combine multiple forms of analysis.
**Good trading! 📈**
RSI Ladder TP Strategy v1.0 Overview
This strategy is an RSI-based reversal entry system with a ladder-style take-profit mechanism.
It supports Long-only, Short-only, or Both directions and provides optional Average Entry Price, Stop Loss, and Take Profit reference lines on the chart.
Entry Rules
Long Entry: RSI crosses above the Oversold level (default: 20).
Short Entry: RSI crosses below the Overbought level (default: 80).
Optional: If enabled, the script will close the current position when an opposite signal appears before opening a new one.
Exit Rules (Ladder Take Profit)
Take profit is placed as a ladder using tpLevels and tpStepPct.
Example (default tpStepPct = 1%, tpLevels = 10):
TP1 at +1%, TP2 at +2%, … TP10 at +10% (relative to current average entry price).
Each TP level closes tpClosePct of the remaining position, meaning it scales out geometrically:
If tpClosePct = 50% → remaining position becomes 50%, then 25%, then 12.5%, etc.
Stop Loss
Optional stop loss is placed at slPct (%) away from the average entry price:
Long: avg * (1 - slPct%)
Short: avg * (1 + slPct%)
Visual Lines
Average Entry Price Line: current strategy.position_avg_price
Stop Loss Line: based on slPct
Next TP Line: shows the estimated next TP level based on current profit%
All TP Lines: optional (can clutter the chart)
==============================================================
Recommended Use
This strategy is best used on markets with strong mean-reversion behavior.
For exchanges/bots that do not support hedge mode in a single strategy, run two separate instances:
One set to Long Only
One set to Short Only
Account GuardianAccount Guardian: Dynamic Risk/Reward Overlay
Introduction
Account Guardian is an open-source indicator for TradingView designed to help traders evaluate trade setups before entering positions. It automatically calculates Risk-to-Reward ratios based on market structure, displays visual Stop Loss and Take Profit zones, and provides real-time position sizing recommendations.
The indicator addresses a fundamental question every trader should ask before entering a trade: "Does this setup make mathematical sense?" Account Guardian answers this question visually and numerically, helping traders avoid impulsive entries with poor risk profiles.
Core Functionality
Account Guardian performs four primary functions:
Detects swing highs and swing lows to identify logical stop loss placement levels
Calculates Risk-to-Reward ratios for both long and short setups in real-time
Displays visual SL/TP zones on the chart for immediate trade planning
Computes position sizing based on your account size and risk tolerance
The goal is to provide traders with instant feedback on whether a potential trade meets their minimum risk/reward criteria before committing capital.
How It Works
Swing Detection
The indicator uses pivot point detection to identify recent swing highs and swing lows on the chart. These swing points serve as logical areas for stop loss placement:
For Long Trades: The most recent swing low becomes the stop loss level. Price breaking below this level would invalidate the bullish thesis.
For Short Trades: The most recent swing high becomes the stop loss level. Price breaking above this level would invalidate the bearish thesis.
The swing detection lookback period is configurable, allowing you to adjust sensitivity based on your trading timeframe and style.
It automatically adjusts the tp and sl when it is applied to your chart so it is always moving up and down!
Risk/Reward Calculation
Once swing levels are identified, the indicator calculates:
Entry Price: Current close price (where you would enter)
Stop Loss: Recent swing low (for longs) or swing high (for shorts)
Risk: Distance from entry to stop loss
Take Profit: Entry plus (Risk × Target Multiplier)
R:R Ratio: Reward divided by Risk
The R:R ratio is then evaluated against your configured thresholds to determine if the setup is valid, marginal, or poor.
Visual Elements
SL/TP Zones
When enabled, the indicator draws colored boxes on the chart showing:
Red Zone: Stop Loss area - the region between your entry and stop loss
Green/Gold/Red Zone: Take Profit area - colored based on R:R quality
The color coding provides instant visual feedback:
Green: R:R meets or exceeds your "Good R:R" threshold (default 3:1)
Gold: R:R meets minimum threshold but below "Good" (between 2:1 and 3:1)
Red: R:R below minimum threshold - setup should be avoided
Swing Point Markers
Small circles mark detected swing points on the chart:
Green circles: Swing lows (potential support / long SL levels)
Red circles: Swing highs (potential resistance / short SL levels)
Dashboard Panel
The dashboard in the top-right corner displays comprehensive trade planning information:
R:R Row: Current Risk-to-Reward ratio for long and short setups
Status Row: VALID, OK, BAD, or N/A based on R:R thresholds
Stop Loss Row: Exact price level for stop loss placement
Take Profit Row: Exact price level for take profit placement
Pos Size Row: Recommended position size based on your risk parameters
Risk $ Row: Dollar amount at risk per trade
Position Sizing Logic
The indicator calculates position size using the formula:
Position Size = Risk Amount / Risk per Unit
Where:
Risk Amount = Account Size × (Risk Percentage / 100)
Risk per Unit = Entry Price - Stop Loss Price
For example, with a $10,000 account risking 1% per trade ($100), if your entry is at 100 and stop loss at 98 (risk of 2 per unit), your position size would be 50 units.
Input Parameters
Swing Detection:
Swing Lookback: Number of bars to look back for pivot detection (default: 10). Higher values find more significant swing points but may be slower to update.
Target Multiplier: Multiplier applied to risk to calculate take profit distance (default: 2). A value of 2 means TP is 2× the distance of SL from entry.
Risk/Reward Thresholds:
Minimum R:R: Minimum acceptable Risk-to-Reward ratio (default: 2.0). Setups below this show as "BAD" in red.
Good R:R: Threshold for excellent setups (default: 3.0). Setups at or above this show as "VALID" in green.
Account Settings:
Account Size ($): Your trading account size in dollars (default: 10,000). Used for position sizing calculations.
Risk Per Trade (%): Percentage of account to risk per trade (default: 1.0%). Professional traders typically risk 0.5-2% per trade.
Display:
Show SL/TP Zones: Toggle visibility of the colored zone boxes on chart (default: enabled)
Show Dashboard: Toggle visibility of the information panel (default: enabled)
Analyze Direction: Choose to analyze Long only, Short only, or Both directions (default: Both)
How to Use This Indicator
Basic Workflow:
Add the indicator to your chart
Configure your account size and risk percentage in the settings
Set your minimum and good R:R thresholds based on your trading rules
Look at the dashboard to see current R:R for potential long and short entries
Only consider trades where the status shows "VALID" or at minimum "OK"
Use the displayed SL and TP levels for your order placement
Use the position size recommendation to determine lot/contract size
Interpreting the Dashboard:
VALID (Green): Excellent setup - R:R meets your "Good" threshold. This is the ideal scenario for taking a trade.
OK (Gold): Acceptable setup - R:R meets minimum but isn't optimal. Consider taking if other confluence factors align.
BAD (Red): Poor setup - R:R below minimum threshold. Avoid this trade or wait for better entry.
N/A (Gray): Cannot calculate - usually means no valid swing point detected yet.
Best Practices:
Use this indicator as a filter, not a signal generator. It tells you IF a trade makes sense, not WHEN to enter.
Combine with your existing entry strategy - use Account Guardian to validate setups from other analysis.
Adjust the swing lookback based on your timeframe. Lower timeframes may need smaller lookback values.
Be honest with your account size input - accurate position sizing requires accurate inputs.
Consider the target multiplier carefully. Higher multipliers mean larger potential reward but lower probability of hitting TP.
Alerts
The indicator includes four alert conditions:
Good Long Setup: Triggers when long R:R reaches or exceeds your "Good R:R" threshold
Good Short Setup: Triggers when short R:R reaches or exceeds your "Good R:R" threshold
Bad Long Setup: Triggers when long R:R falls below your minimum threshold
Bad Short Setup: Triggers when short R:R falls below your minimum threshold
These alerts can help you monitor multiple charts and get notified when favorable setups appear.
Technical Implementation
The indicator is built using Pine Script v6 and includes:
Pivot-based swing detection using ta.pivothigh() and ta.pivotlow()
Dynamic box drawing for visual SL/TP zones
Table-based dashboard for clean information display
Color-coded visual feedback system
Persistent variable tracking for swing levels
Code Structure:
// Swing Detection
float swingHi = ta.pivothigh(high, swingLen, swingLen)
float swingLo = ta.pivotlow(low, swingLen, swingLen)
// R:R Calculation for Long
float longSL = recentSwingLo
float longRisk = entry - longSL
float longTP = entry + (longRisk * targetMult)
float longRR = (longTP - entry) / longRisk
// Position Sizing
float riskAmount = accountSize * (riskPct / 100)
float posSize = riskAmount / longRisk
Limitations
The indicator uses historical swing points which may not always represent optimal SL placement for your specific strategy
Position sizing assumes you can trade fractional units - adjust accordingly for instruments with minimum lot sizes
R:R calculations assume linear price movement and don't account for gaps or slippage
The indicator doesn't predict price direction - it only evaluates the mathematical viability of a setup
Swing detection has inherent lag due to the lookback period required for pivot confirmation
Recommended Settings by Trading Style
Scalping (1-5 minute charts):
Swing Lookback: 5-8
Target Multiplier: 1-2
Minimum R:R: 1.5
Good R:R: 2.0
Day Trading (15-60 minute charts):
Swing Lookback: 8-12
Target Multiplier: 2
Minimum R:R: 2.0
Good R:R: 3.0
Swing Trading (4H-Daily charts):
Swing Lookback: 10-20
Target Multiplier: 2-3
Minimum R:R: 2.5
Good R:R: 4.0
Why Risk/Reward Matters
Many traders focus solely on win rate, but profitability depends on the combination of win rate AND risk/reward ratio. Consider these scenarios:
50% win rate with 1:1 R:R = Breakeven (before costs)
50% win rate with 2:1 R:R = Profitable
40% win rate with 3:1 R:R = Profitable
60% win rate with 1:2 R:R = Losing money
Account Guardian helps ensure you only take trades where the math works in your favor, even if you're wrong more often than you're right.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not intended as financial, investment, trading, or any other type of advice or recommendation.
Trading involves substantial risk of loss and is not suitable for all investors. The calculations provided by this indicator are based on historical price data and mathematical formulas that may not accurately predict future price movements.
Position sizing recommendations are estimates based on user inputs and should be verified before placing actual trades. Always consider factors such as leverage, margin requirements, and broker-specific rules when determining actual position sizes.
The Risk-to-Reward ratios displayed are theoretical calculations based on swing point detection. Actual trade outcomes will vary based on market conditions, execution quality, and other factors not captured by this indicator.
Past performance does not guarantee future results. Users should thoroughly test any trading approach in a demo environment before risking real capital. The authors and publishers of this indicator are not responsible for any losses or damages arising from its use.
Always consult with a qualified financial advisor before making investment decisions.






















