CVD with Moving Average (Trend Colors) [SYNC & TRADE]Yesterday I wrote a simple and easy code for the indicator "Cumulative Delta Volume with a moving average" using AI.
Introduction:
Delta is the difference between buys and sells. If there are more purchases, the delta is positive, if there are more sales, the delta is negative. We look at each candle separately on a particular time frame, which does not give us an overall picture over time.
Cumulative volume delta is in many ways an extension of volume delta, but it covers longer periods of time and provides different trading signals. Like the volume delta indicator, the Cumulative Volume Delta (CVD) indicator measures the relationship between buying and selling pressure, but does not focus on one specific candle (or other chart element), but rather gives a picture over time.
What did you want to get?
I have often seen that they tried to attach RSI and the Ichimoku cloud to the cumulative delta of volume, but I have never seen a cumulative delta of volume with a moving average. A moving average that takes data from the cumulative volume delta will be different from the moving average of the underlying asset. It has been noted that often at the intersection of the cumulative volume delta and the moving average, this is a more accurate signal to buy or sell than the same intersections for the underlying asset.
Initially, 5 moving averages were made with values of 21, 55, 89, 144 and 233, but I realized that this overloads the chart. It is easier to change the length of the moving average depending on the time frame you are using than to overload the chart. The final version with one moving SMA, EMA, RMA, WMA, HMA.
The logic for applying a moving average to a cumulative volume delta:
You choose a moving average, just like you would on your underlying asset. Use the moving average you like and the period you are used to working with. Each TF has its own settings.
What we see on the graph:
This is not an oscillator, but an adapted version for a candlestick chart (line only). Using it, you can clearly see where the market is moving based on the cumulative volume delta. The cool thing is that you can include your moving average applied to the cumulative volume delta. Thanks to this, you can see a trend movement, a return to the moving average to continue the trend.
Opportunities not lost:
The most interesting thing is that it remains possible to observe the divergence of the asset and the cumulative delta of the volume. This gives a great advantage. Those who have not worked with divergence do not rush into it right away. There may be 3 peaks in divergence (as with oversold/overbought), but it works many times more clearly than RSI and MACD.
Here's a good example on the daily chart. The moment we were all waiting for 75,000. The cumulative Delta Volume fell with each peak, while the price chart (tops) were approximately level.
Usually they throw (allow to buy) without volume for sales (delta down, price up) in order to merge at a more interesting price. And they also drain without the volume of purchases for a squeeze (price down / delta up) and again I buy back at a more interesting price. There are more complex estimation options; you can read about the divergence of the cumulative delta of the CVD volume. I just recommend doing a backtest.
Recommendations:
One more moment. Use the indicator on the stock exchange, where there is the most money, by turnover and by asset. Choose Binance, not Bybit. Those. choose the BTC asset, for example, but on the Binance exchange. Not futures, but spot.
The greater the turnover on the exchange for an asset, and the fewer opportunities to enter with leverage, the less volatile the price and the more beautiful and accurate the chart.
Works on all assets. There is a subscription limit (the number of calculated bars) that has little effect on anything. Can be applied to any asset where there is volume (not SPX, but ES1, not MOEX, but MX1!).
Перевод на русский.
Вчера написал с помощью AI простой и легкий код индикатора "Кумулятивная Дельта Объема со скользящей средней".
Введение:
Дельта (Delta) — это разница между покупками и продажами. Если покупок больше — дельта положительная, если больше продаж — дельта отрицательная. Мы смотрим на каждую свечу отдельно на том или ином таймфрейме, что не дает нам общей картины во времени.
Кумулятивная дельта объема — во многом продолжение дельты объёмов, но она включает более длительные периоды времени и дает другие торговые сигналы. Как и индикатор дельты объёма, индикатор кумулятивной дельты объема (Cumulative Volume Delta, CVD) измеряет связь между давлением покупателей и продавцов, но при этом не фокусируется на одной конкретной свече (или другом элементе графика), а дает картину во времени.
Что хотел получить?
Часто видел, что к кумулятивной детьте объема пытались прикрепить RSI и облако ишимоку, но никогда не видел кумулятивную дельту объема со скользящей средней. Скользящая средняя которая берет данные от кумулятивной дельты объема будет отличатся от скользящей средней основного актива. Было замечено, что часто в местах пересечения кумулятивной дельты объема и скользящей средней - это более точный сигнал к покупке или продаже, чем такие же пересечения по основному активу.
Изначально было сделанно 5 скользящих со значениями 21, 55, 89, 144 и 233, но я понял, что это перегружает график. Проще менять длину скользящей средней от используемого таймфрейма, чем перегружать график. Финальный вариант с одной скользящей SMA, EMA, RMA, WMA, HMA.
Логика применения скользящей средней к кумулятивной дельте объема:
Вы выбираете скользящую среднюю, так же как и на основном активе. Применяйте ту скользящую среднюю, которая вам нравится и период, с которым привыкли работать. На каждом TF свои настройки.
Что мы видим на графике:
Это не осциллятор, а адаптированная версия к свечному графику (только линия). С помощью него вы можете наглядно посмотреть куда движется рынок по кумулятивной дельте объема. Самое интересное, что вы можете включить свою скользящую среднюю, применимую к кумулятивной дельте объема. Благодаря этому вы можете видеть трендовое движение, возврат к средней скользящей для продолжения тренда.
Не потерянные возможности:
Самое интересное, что осталась возможность наблюдать за дивергенцией актива и кумулятивной дельтой объема. Это дает большое преимущество. Те кто не работал с дивергенцией не бросайтесь на нее сразу. Может быть и 3 пика в дивергенции (как с перепроданностью / перекупленностью), но работает в разы четче чем RSI и MACD.
Вот хороший пример на дневном графике. Момент когда мы все ждали 75000. Кумулятивная Дельта Объема падала с каждым пиком, в то время как ценовой график (вершины) были примерно на уровне.
Обычно закидывают (разрешают покупать) без объема на продажи (дельта вниз цена вверх), чтобы слить по более интересной цене. И также сливают без объема покупок для сквиза (цена вниз / дельта вверх) и опять откупаю по более интересной цене. Существуют более сложные варианты оценки, можете почитать про дивергенцию кумулятивной дельты объема CVD. Только рекомендую сделать бэктест.
Рекомендации:
Еще момент. Используйте индикатор, на бирже, там где больше всего денег, по обороту и по активу. Выбирайте не Bybit, а Binance. Т.е. выбираете актив BTC, к примеру, но на бирже Binance. Не фьючерс, а спот.
Чем более большие обороты на бирже, по активу, и меньше возможностей заходить с плечами, тем менее волатильная цена и более красивый и точный график.
Работает на всех активах. Есть ограничение по подписке (количество рассчитываемых баров) мало влияет на что. Можно применить к любому активу где есть объем (не SPX, а ES1, не MOEX, а MX1!).
Cerca negli script per "ha溢价率"
Volume Gaps and ImbalancesThis Pine script indicator is designed to visually depict price inefficiencies, as identified by Volume Imbalances (VI) or Gaps. A Volume Gap is a scenario where the wicks of two successive candles don’t intersect, while an Imbalance occurs when only the wicks overlap, leaving the bodies apart. These zones of inefficiency frequently act as magnets for price, with the market striving rebalance in accordance with ICT principles.
Relevance:
Volume Gaps/Imbalances are zones of highly inefficient price delivery as per ICT concepts and represent a very strong draw to price. Price will often seek to rebalance those zones to ensure efficient price delivery. Consequently, these zones can provide good targets for entries in the opposite direction or take profit targets for previous entries in the direction of the Gap/Imbalance.
How It Works:
The indicator keeps track of all Gaps/Imbalances from the beginning of the available history. It automatically removes all mitigated Gaps/Imbalances, which are situations where the price has at least reached the bottom of a bullish gap or the top of a bearish gap.
On the last bar, the most recent valid gaps are highlighted with a box drawn from the start to the end of the gap. The start of a bullish gap is determined by the highest price of the previous candle’s open or close, while for bearish gaps, it’s the lowest price of the previous candle’s open or close. Conversely, the end of a bullish gap is the lowest price of the current candle’s open or close, and for bearish gaps, it’s the highest price of the current candle’s open or close.
To enhance the indicator’s speed and minimize chart noise, only the most recent gaps will be displayed, up to the limit set in the indicator settings.
Each displayed VI/GAP will indicate the size of the imbalance in ticks. For imbalances greater than 3 ticks, which represent stronger draws of liquidity, the color transparency will be reduced, and the text will be made more prominent. Volume Gaps are also marked with a 🧲 emoji for easy visual identification.
The indicator will automatically extend the boxes representing valid imbalances to the current bar for as long as the imbalance is not mitigated.
If an imbalance has been tapped, but not mitigated, the indicator will append 🚩emoji to denote that the imbalance has been partially mitigated and may no longer have as strong of a draw for price.
Configurability:
A user may configure the number of imbalances to show, the setting applies to bullish/bearish imbalances individually. This setting can be set to any value from 1 – 50.
Appearance wise, color, style and color transparency of each box representing an imbalance can be configured. The imbalance box label can be configured by setting the text size, along with the vertical & horizontal alignment.
What makes this indicator different:
Designed with high performance in mind, to reduce impact on chart render time.
Only keeps valid imbalances on the chart, with a limit on the # drawn
Indicates the size of the gap and provides visual markets to denote stronger, weaker and partially mitigated gaps
Advanced ADX [CryptoSea]The Advanced ADX Analysis is a sophisticated tool designed to enhance market analysis through detailed ADX calculations. This tool is built for traders who seek to identify market trends, strength, and potential reversals with higher accuracy. By leveraging the Average Directional Index (ADX), Directional Indicator Plus (DI+), and Directional Indicator Minus (DI-), this indicator offers a comprehensive view of market dynamics.
New Overlay Feature: This script uses the new 'force overlay' feature which lets you plot on the chart as well as plotting in an oscillator pane at the same time.
force_overlay=true
Key Features
Comprehensive ADX Tracking: Tracks ADX values along with DI+ and DI- to provide a complete view of market trend strength and direction. The ADX measures the strength of the trend, while DI+ and DI- indicate the trend direction. This combined analysis helps traders identify strong and weak trends with precision.
Trend Duration Monitoring: Monitors the duration of strong and weak trends, offering insights into trend persistence and potential reversals. By keeping track of how long the ADX has been above or below a certain threshold, traders can gauge the sustainability of the current trend.
Customizable Alerts: Features multiple alert options for strong trends, weak trends, and DI crossovers, ensuring traders are notified of significant market events. These alerts can be tailored to notify traders when certain conditions are met, such as when the ADX crosses a threshold or when DI+ crosses DI-.
Adaptive Display Options: Includes customizable background color settings and extended statistics display for in-depth market analysis. Users can choose to highlight strong or weak trends on the chart background, making it easier to visualize market conditions at a glance.
In the example below, we have a bullish scenario play out where the DI+ has been above the DI- for 11 candles and our dashboard shows the average is 10.48 candles. With the ADX above its threshold this would be a bullish signal.
This ended up in a 20%+ move to the upside. The dashboard will help point out things to consider when looking to exit the position, the DI+ getting close to the max DI+ duration would be a sign that momentum is weakening and that price may cool off or even reverse.
How it Works
ADX Calculation: Computes the ADX, DI+, and DI- values using a user-defined period. The ADX is derived from the smoothed average of the absolute difference between DI+ and DI-. This calculation helps determine the strength of a trend without considering its direction.
Trend Duration Analysis: Tracks and calculates the duration of strong and weak trends, as well as DI+ and DI- durations. This analysis provides a detailed view of how long a trend has been in place, helping traders assess the reliability of the trend.
Alert System: Provides a robust alert system that triggers notifications for strong trends, weak trends, and DI crossovers. The alerts are based on specific conditions such as the duration of the trend or the crossover of directional indicators, ensuring traders are informed about critical market movements.
Visual Enhancements: Utilizes color gradients and background settings to visually represent trend strength and duration. This feature enhances the visual analysis of trends, making it easier for traders to identify significant market changes at a glance.
In the example below, we see the ADX weakening after we have just had a move up, if you are looking to get into this position you want to see the ADX growing with either the DI+ or DI- breaking their average durations.
As you can see below, although the ADX manages to move above the threshold, there are no DI+/- breaks which is shown by price moving sideways. Not something most traders would be interested in.
Application
Strategic Decision-Making: Assists traders in making informed decisions by providing detailed analysis of ADX movements and trend durations. By understanding the strength and direction of trends, traders can better time their entries and exits.
Trend Confirmation: Reinforces trading strategies by confirming potential reversals and trend strength through ADX and DI analysis. This confirmation helps traders validate their trading signals, reducing the risk of false signals.
Customized Analysis: Adapts to various trading styles with extensive input settings that control the display and sensitivity of trend data. Traders can customize the indicator to suit their specific needs, making it a versatile tool for different trading strategies.
The Advanced ADX Analysis by is an invaluable addition to a trader's toolkit, offering depth and precision in market trend analysis to navigate complex market conditions effectively. With its comprehensive tracking, alert system, and customizable display options, this indicator provides traders with the tools they need to stay ahead of the market.
Brooks 18 Bars [KintsugiTrading]Brooks 18 Bars
Overview:
This indicator allows traders to specify a time frame within each trading day and plots lines at the highest and lowest prices recorded during that period. It is particularly useful for identifying key levels of support and resistance within a specified time range.
Features:
User-Defined Time Frame: Traders can input their desired start and end times in a 24-hour format, allowing flexibility to analyze different market sessions.
High and Low Price Levels: The indicator plots lines representing the highest and lowest prices observed within the specified time frame each day.
Clear Visual Representation: The high and low lines are color-coded for easy identification, with the high & low prices in Kintsugi Trading Gold.
How to Use:
Set the Time Frame:
Adjust the "Start Time Hour" and "Start Time Minute" to define the beginning of your desired time frame.
Adjust the "End Time Hour" and "End Time Minute" to define the end of your desired time frame.
Analyze Key Levels:
Al Brooks popularized the following idea and basis for creating this indicator:
On a 5-minute chart, Bar 1 has a 20-30% chance of being the High or Low of the day.
Bar 12 has a 50% chance.
Bar 18 has an 80-90% chance.
Use the plotted lines to identify significant support and resistance levels within your specified time frame. These levels can help inform your trading decisions, such as entry and exit points.
Good luck with your trading!
Weighted Volume Profile Pivot Points | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Weighted Volume Profile Pivot Points (WVPPP) Indicator! This indicator renders a volume profile using the latest pivot points, automatically adjusting itself when new pivots occur. The pivoting mode can be switched between default pivot points and order blocks mode. It can be adjusted to give more weight to recent or past candlesticks, or can be used as a normal volume profile. For more information, please read the full write-up.
Features of the new Weighted Volume Profile Pivot Points (WVPPP) Indicator :
Renders Volume Profile Of The Range Between Latest Pivots
Two Pivoting Modes Including Order Blocks Mode
Adjustable Weighthing Towards Past or Recent
Customizable Row Count & Maximum Distance
Left or Right Alignment
More Styling Options
🚩UNIQUENESS
This indicator stands out with two key features. One is it's ability to weight volumes based on their distance to the current time. Giving weight to volumes may offer new trading opportunities to traders as they can now see the most recent Point Of Control (POC) or a more powerful but past POC based on their choice. Another key feature the indicator has is that it automatically finds latest valid pivot points, and uses that range for the volume profile. The range changes dynamically as new pivots points emerge. You can select between normal pivot points and order blocks mode. The indicator also has a variety of useful styling settings such as aligning the volume profile to the right or the left of the chart, POC Line styling and color settings for bullish & bearish volumes.
📌 HOW DOES IT WORK ?
A volume profile provides an in-depth look at trading activity over a period of time by plotting a histogram on the price axis. This indicator can also give weight to volumes based on their distance to the current time, essentially determining their importance for the profile. The range which the volume profile will cover is determined by the latest pivot points. Here is how it works step-by-step :
1. Determine how much candlesticks the volume profile will cover (Analyze Bars setting)
2. Find the latest pivot points. If the mode is set to "Pivots", the pivot points are the candlesticks which has the highest / lowest wick in X amount of bars (Swing Length setting). If the mode is set to "Order Blocks", the volume profile range is the area between the latest buyside order block and the sellside order block. Order blocks occur when there is a high amount of market orders exist on a price range. It is possible to find order blocks using specific candlestick formations on the chart. For more information about the order block detection, I suggest you checking the write-up of our "Volumized Order Blocks" script. Increasing the "Swing Length" setting is recommended when the mode is set to "Pivots", as this will help in finding stronger pivot points.
3. Make a range using the latest pivot points, then divide it into rows (Row Count setting)
4. Then for each candlestick, add it's volume to the corresponding row in the range. Note that the volume can be added into several rows if it overlaps with them all.
5. If the candlestick is a bullish candlestick, we add it's volume into the bullish volume of the row, if it's a bearish candlestick, we add it to the bearish volume of the row.
With the weighted volume mode, which is activated if "Volume Weighthing" setting is set to "Recent" or "Past", all volumes get a penalty based on their distance to the latest candletstick. For example, if the setting is set to "Recent", the latest candlestick contributes it's volume by 100% to the corresponding row, but the candlestick which is 50 candlesticks far from the current candlestick only contributes it's volume by ~17% to the row. The same applies to the "Past" setting, but in the reversed order, where past candlesticks have more priority than the current ones.
Volume contribution percent for "Recent" setting : ((100 * 0.85) / (i + 1)) + (100 * (1.0 - 0.85))
Volume contribution percent for "Past" setting : ((100 * 0.85) * ((i + 1) / N)) + (100 * (1.0 - 0.85))
Where i = candlestick index from right to left, N = total number of candlesticks analyzed by the volume profile.
The Point Of Control (POC) line is drawn from the row with the most total volume, and is generally considered as a strong level because a lot of trading volume happened on that particular row. Traders may use this line as a support & resistance level.
We believe that automatically ranging the volume profile to important pivot points will help traders see crucial volume information easier without unnecessary hassle. Traders can use this indicator to have an insight of areas which price moves quickly without much volume, or see areas that holds the price still for much longer and plan their trades accordingly.
⚙️SETTINGS
1. General Configuration
Mode -> The pivoting mode that is switchable between "Pivots" and "Order Blocks" as described in the write-up. Please read the upper section to understand how this setting works.
Analyze Bars -> Total amount of bars that will be analyzed by the indicator from right to left.
Row Count -> The amount of rows that will the vertical range between pivot points will be divided into.
Volume Weighting -> The volume weighting mode as explained in the write-up.
2. Style
Highlight Sessions -> The volume profile sessions will be highlighted with a blue tint. To prevent confusion, highlighting will not work if the alignment is set to "Right".
Align To -> The alignment of the volume profile.
Moving Average Crossover Swing StrategyMoving Average Crossover Swing Strategy
**Overview:**
The basic concept of this strategy is to generate a signal when a faster/shorter length moving average crosses over (for Longs) or crosses under (for Shorts) a medium/longer length moving average. All of which are customizable. This strategy can work on any timeframe, however the daily is the timeframe used for the default settings and screenshots, as it was designed to be a multi-day swing strategy. Once a signal has been confirmed with a candle close, based on user options, the strategy will enter the trade on the open of the next candle.
The crossover strategy is nothing new to trading, but what can make this strategy unique and helpful, is the addition of further confirmation points, ATR based stop loss and take profit targets, optional early exit criteria, customizable to your needs and style, and just about everything visual can be toggled on/off. This strategy is based on a Trend (MA) indicator and a Momentum (MACD) indicator. While a Volume-based indicator is not shown here, one could consider using their favorite from that category to further compliment the signal idea.
It should be noted that depending on the time frame, direction(s) chosen, the signal options, confirmation options, and exit options selected, that a ticker may not produce more than 100 trades on the back test. Depending on your style and frequency, one could consider adjusting options and/or testing multiple tickers. It should also be noted that this strategy simply tests the underlying stock prices, not options contracts. And of course, testing this strategy against historical data does not assume that the same results will occur in future price action.
Shoutout given to Ripster's Clouds Indicator as pieces of that code were taken and modified to create both the Cloud visualization effects, and the Moving Average Pair Plots that are implemented in this strategy.
BASIC DEFAULTS
All can be changed as normal
Initial capital = 10,000
Order Sizing = 25% of equity (use the "Inputs" tab to modify this)
Pyramiding = 0
Commission = 0.65 USD per order
Price Verification = 1 tick
Slippage = 1 tick
RISK MANAGMENT
You will notice two different percentage options and ATR multipliers. This strategy will adjust position sizing by not exceeding either one of those % values based on the ATR (Average True Range) of the symbol and the multipliers selected, should the stock hit the stop loss price.
For Example, lets assume these values are true:
Account size = $10,000,
Max Risk = 1% of account size
Max Position Size = 25% of the account size
Stock Price = 23.45
ATR = 3.5
ATR Stop Loss Multiplier = 1.4
Then the formulas would be:
ACCT_SIZE * MaxRisk_% = 10000 * .01 = $100 (MaxCashRisk)
-----
MaxCashRisk / (ATR * ATR_SL_MULTIPLIER) = 100 / (3.5 * 1.4) = 20.4 Shares based on Max Cash Risk
-----
(ACCT_SIZE * MaxEquity_%) / STOCK_PRICE = (10000 * .25) / 23.45 = 106.61 Shares based on Max Equity Allocation
The minimum value of each of those options is then used, which in this case would be to purchase 20 shares so as not to exceed the max dollar risk should the stock reach the stop loss target. Likewise, if the ATR were to be much lower, say 0.48 cents, and all else the same, then the strategy would purchase the 106 shares based on Max Equity Allocation because the Max Cash Risk would require 149.25 shares.
MOVING AVERAGE OPTIONS
Select between and change the length & type of up to 5 pairs (10 total) of moving averages
The "Show Cloud-x" option will display a fill color between the "a" and "b" pairs
All moving averages lines can be toggled on/off in the "Style" tab, as well as adjusting their colors.
Visualization features do not affect calculations, meaning you could have all or nothing on the chart and the strategy will still produce results
SIGNAL CHOICES
Choose the fast/shorter length MA and the medium/longer length MA to determine the entry signal
CONFIRMATION OPTIONS
Both of these have customizable values and can be toggled on/off
A candle close over a slower/much longer length moving average
An additional cross-over (cross-under for Shorts) on the MACD indicator using default MACD values. While the MACD indicator is not necessary to have on the chart, it can help to add that for visualization. The calculations will perform whether the indicator is on the chart or not.
EARLY EXIT CRITERIA
Both can be toggled on/off with customizable values
MA Cross Exit will exit the trade early if the select moving averages cross-under (for longs) or cross-over (for shorts), indicating a potential reversal.
Max Bars in Trades will act as a last-resort exit by simply calculating the amount of full bars the trade has been open, and exiting on the opening of the next bar. For example: the default value is 8 bars, so after 8 full bars in the trade, if no other exit has been triggered (Stop Loss, Take Profit, or MA Cross(if enabled)), then the trade will exit at the opening of the 9th bar.
Finally, there is a table displaying the amount of trades taken for each side, and the amount & percent of both early exits. This table can be turned off in the "Style" tab
ADDITIONAL PLOTS
MACD (Moving Average Convergence/Divergence):
- The MACD is an optional confirmation indicator for this strategy.
- Plotting the indicator is not necessary for the strategy to work, but it can be helpful to visually see the status and position of the MACD if this feature is enabled in the strategy
- This helps to identify if there is also momentum behind the entry signal
ICT Single Candle Order Block (SCOB) [UAlgo]The "ICT Single Candle Order Block (SCOB) " designed for traders who utilize the concept of Order Blocks in their trading strategy. Order Blocks are significant price levels where institutions or smart money have placed their trades, leading to potential future price reactions when these levels are revisited. This indicator focuses on identifying and highlighting Single Candle Order Blocks (SCOBs), allowing traders to visually analyze key price levels on their charts.
🔶 What is Single Candle Order Block (SCOB) ?
A Single Candle Order Block (SCOB) is a specific type of Order Block that is identified based on a single candlestick pattern. These patterns indicate potential areas where significant buying or selling interest has occurred, often leading to a notable price reaction when revisited. In the context of this indicator, a bullish SCOB is identified when a specific bullish candlestick pattern is met, and a bearish SCOB is identified based on a bearish candlestick pattern.
Bullish SCOB: Detected when the open price of two bars ago is higher than its close, the close price of the previous bar is higher than its open, the current close price is higher than the open, the low of the previous bar is lower than the low of two bars ago, and the current close is higher than the high of the previous bar.
Bearish SCOB: Detected when the open price of two bars ago is lower than its close, the close price of the previous bar is lower than its open, the current close price is lower than the open, the high of the previous bar is higher than the high of two bars ago, and the current close is lower than the low of the previous bar.
🔶 Key Features
Show Single Candle Order Block (SCOB): Toggle the visibility of the Single Candle Order Blocks on the chart.
Mitigation Method: Choose between "Close" and "Wick" methods for determining whether a SCOB has been mitigated (price has interacted with the block).
Show Last X SCOBs: Control the number of most recent SCOBs displayed on the chart, allowing you to focus on the most relevant price levels.
Volatility Filter: Enable or disable the volatility filter, which uses the Average True Range (ATR) to filter out less significant SCOBs. When enabled, only SCOBs with an ATR above the mean value of the ATR are displayed.
Customizable Colors: Configure the colors for bullish and bearish SCOBs to enhance visual clarity. The indicator uses cooler RGB values to ensure the blocks are distinct and easily noticeable.
🔶 Disclaimer
The "ICT Single Candle Order Block (SCOB) " indicator is provided for educational and informational purposes only. Trading involves significant risk and may not be suitable for all investors.
Past performance is not indicative of future results. Users should use this indicator in conjunction with their own research and trading strategy.
ADX + CCI + MA - Uncle SamStrategy Name: ADX + CCI + MA - Uncle Sam
Overview
This strategy aims to capitalize on trending markets by combining the Average Directional Index (ADX), Commodity Channel Index (CCI), and a customizable Moving Average (MA). It's designed for traders seeking a balanced approach to both long (buy) and short (sell) opportunities. Special thanks to the creators of the ADX and CCI indicators for their invaluable contributions to technical analysis.
Strategy Concept
The core idea is to identify strong trends with the ADX, confirm potential entry points with the CCI, and use the MA to filter trades in the direction of the broader trend. This approach seeks to avoid entering positions during periods of consolidation or when the trend is weak.
Indicator Logic
ADX (Average Directional Index): The ADX measures the strength of a trend, regardless of its direction. A value above the customizable adx_threshold (default 20) signals a strong trend, making it a prime environment for this strategy.
CCI (Commodity Channel Index): The CCI is a momentum oscillator that helps identify overbought (above 100) and oversold (below -100) conditions. We use CCI crossovers to time entries in the direction of the prevailing trend.
MA (Moving Average): The MA acts as a trend filter, ensuring we only enter trades aligned with the overall market direction. You have flexibility in choosing the MA type (SMA, EMA, etc.) and its length to suit your trading style and timeframe.
Entry Conditions
Long (Buy):
ADX is above the adx_threshold.
CCI crosses above 100.
Price is above the chosen Moving Average (if MA trend filtering is enabled).
Short (Sell):
ADX is above the adx_threshold.
CCI crosses below -100.
Price is below the chosen Moving Average (if MA trend filtering is enabled).
Exit Conditions
Stop Loss (SL): Each position has a customizable stop-loss percentage to manage risk. The default setting is 1%.
Take Profit (TP): Each position has a customizable take-profit percentage to secure gains. The default setting is 5%.
MA-Based Risk Management (Optional): This feature allows for early exits if the price closes against the MA trend for a specified number of candles. The default setting is 2 candles.
Default Settings
CCI Period: 15
ADX Length: 10
ADX Threshold: 20
MA Type: HMA
MA Length: 200
MA Source: Close
Commission Fee: $0.0
A commission fee is not added, add your trading/platform commission for realistic trading costs.
Backtest Results
The strategy has been backtested on with the default settings and a starting capital of $1000, with 0.0% commission fee. It shows promising results.
Disclaimer: Backtesting is hypothetical and does not guarantee future performance.
Important Considerations:
Customization: The strategy offers extensive customization to tailor it to your preferences. Experiment with different parameters and settings to find what works best for your trading style.
Risk Management: Always use proper risk management techniques, including position sizing and stop losses, to protect your capital.
Supply and Demand StrategyOverview
This strategy is designed to identify key supply (resistance) and demand (support) zones on a price chart. These zones represent areas where the price has historically shown a significant reaction, either bouncing up from a demand zone or dropping down from a supply zone. The strategy provides clear entry and exit points for trades based on these zones.
Key Components
Supply and Demand Zones:
Supply Zone: An area where the price has reversed from an uptrend to a downtrend. It represents a high concentration of sellers.
Demand Zone: An area where the price has reversed from a downtrend to an uptrend. It represents a high concentration of buyers.
Time Frames:
Use higher time frames (like daily or weekly) to identify key supply and demand zones.
Use lower time frames (like 1-hour or 4-hour) to pinpoint precise entry and exit points within these zones.
Confirmation:
Use price action and candlestick patterns (like pin bars or engulfing patterns) to confirm potential reversals in these zones.
CE_ZLSMA_5MIN_CANDLECHART-- Overview
The "CE_ZLSMA_5MIN_CANDLECHART" strategy, developed by DailyPanda, is a comprehensive trading strategy designed for analyzing trading on 5-minute candlestick charts.
It aims to use some indicators calculated from a Hekin Ashi chart, while running it on a normal candlestick chart, making sure that no price distortion affects the strategy results .
It also brings a feature to show, on the candlestick chart, where the entries would take place on the HA chart, to also be able to study the effect that the price distortion would make on your backtest.
-- Credit
The code in this script is based on open-source indicators originally written by veryfid and everget, I've made significant changes and additions to the scripts but all credit for the idea goes to them, I just built on top of it:
-- Key Features
It incorporate already built indicators (ZLSMA) and CandelierExit (CE)
-- Zero Lag Least Squares Moving Average (ZLSMA) - by veryfid
The ZLSMA is used to detect trends with minimal lag, improving the accuracy of entry and exit signals.
It incorporates a double-smoothed linear regression to minimize lag and enhance trend-following capabilities.
Buy signals are generated when the price closes above the ZLSMA together with the CE signal.
It is calculated based on the HA candlestick pattern.
-- Chandelier Exit (CE) - by everget
The Chandelier Exit indicator is used to dynamically manage stop-loss levels based on the Average True Range (ATR).
It ensures that stop-loss levels are adaptive to market volatility, protecting profits and limiting losses.
The ATR period and multiplier can be customized to fit different trading styles and risk tolerances.
It is calculated based on the HA candlestick pattern.
-- Heikin Ashi Candles
The strategy leverages Heikin Ashi candlesticks to be able identify trends more clearly and leverage this to stay on winning trades longer.
Traders can choose to display Heikin Ashi candlesticks and order fills on the chart for better visualization.
-- Risk Management
The strategy includes multiple risk management options to protect traders' capital.
Maximum intraday loss limit based on a percentage of equity.
Maximum stop-loss in points to filter out entries with excessive risk.
Daily profit target to stop trading once the goal is achieved.
Options to use fixed contract sizes or dynamically adjust based on a percentage of equity.
These features help traders manage risk and ensure sustainable trading practices.
Moving Averages
Several moving averages (EMA 9, EMA 20, EMA 50, EMA 72, EMA 200, SMA 200, and SMA 500) are plotted to provide additional context and trend confirmation.
A "Zone of Value" is highlighted between the EMA 200 and SMA 200 to identify potential support and resistance areas.
-- Customizable Inputs
The strategy includes various customizable inputs, allowing traders to tailor it to their specific needs.
Start and stop trading times.
Risk management parameters (e.g., maximum stop-loss, daily drawdown limit, and daily profit target).
Display options for Heikin Ashi candles and moving averages.
ZLSMA length and offset.
-- Usage
-- Setting Up the Strategy
Configure the start year for the strategy and the trading hours using the input fields. The first candle of each day will be filled black for easy identification, while candles that are outside the allowed time range will be filled purple.
Customize the risk management parameters to match your risk tolerance and trading style.
Enable or disable the display of Heikin Ashi candlesticks and moving averages as desired.
-- Interpreting Signals
Buy signals are indicated by a "Buy" label when the Heikin Ashi close price is above the ZLSMA and the Chandelier Exit indicates a long position.
The strategy will automatically enter a long position with a stop-loss level determined the swing low.
Positions are closed when the close price falls below the ZLSMA.
-- Risk Management
The strategy monitors the maximum intraday loss and stops trading if the loss limit is reached.
If enabled, also stops trading once the daily profit target is achieved, helping to lock in gains.
You have the option to filter operations based on a maximum accepted stop-loss level, based on your risk tolerance.
You can also operate with a fixed amount of contracts or dynamically adjust it based on your allowed risk per trade, ensuring optimal protection of capital.
-- Visual Aids
The strategy plots various moving averages to provide additional trend context.
The "Zone of Value" between the EMA 200 and SMA 200 highlights potential support and resistance areas.
Heikin Ashi candlesticks and order fills can be displayed to enhance the difference this strategy would take if you were to backtest it on a Heikin Ashi chart.
-- Table of results
This strategy also breaks down the results on a monthly basis for better understanding of your capital development along the way.
-- Conclusion
The "CE_ZLSMA_5MIN_CANDLECHART" strategy is a tool for intraday traders looking to understand and leaverage the Heikin Ashi chart while still using the normal candle chart. Traders can customize the strategy to fit their specific needs, making it a versatile addition to any trading toolkit.
Exponential Grid [Phi, Pi, Euler]If you disagree with one of the EMH principles that price is too random, then by definition you must agree that historic price has deterministic function to a scenario ahead.
I personally believe that constants like phi, pi and e can mimic exponential growth of the price.
In this script, first grid is based on the Lowest price multiplied with self fraction of the constant.
For example:
If you are familiar with fib ratio 1.272, then you must know that it is 1.618 to the power of 0.5.
With default settings of exponent step 0.25
First grid = Lowest price x phi^0.25
Second grid = Lowest price x phi^0.25x2
Third grid = Lowest price x phi^0.25x3 and so on
The script will automatically find the lowest price and update the grid values.
Or you can set up your custom Lowest price manually if you feel like the All Time Low level loses its relevance value after long period.
There are 64 grids including Lowest price level. And it wasn't by a chance. Pine Script has a limitation of max 64 plots. Number of grids shown in the chart depends on the highest price. Once price breaks above ATH a couple of next grids will be plotted automatically. In most cases if everything is plotted, the chart appears squeezed and you'll need to zoom in to see it. Therefore, I adjusted it relatively to the scale of the chart for the comfort.
In some cases 64 plots aren't enough to cover the whole chart. For example, let's take a look at NVIDIA chart:
Since the price has started with 0.0333, it is way too small to cover all with default settings.
We are left with 2 choices:
Either Enable "Round"
OR increase Exponent Step (from 0.25 to 0.5 in the particular example below)
If you set constant to pi or e which is a bigger number than phi, expect the gaps to be bigger. To reduce it to a more gradual way of expansion you can decrease Exponent Step.
Quantiple Direction IndexThis indicator indicates market trends by analyzing the following signals:
1. RSI which is a momentum oscillator
2. Directional Movement Index (DMI) which measures the direction of the movement
3. Price in comparison to EMA 13 and 21 to determine whether the trend is clear or there is an ambiguity
4. ADX that shows the strength of the momentum
Scoring logic
While we have kept the source code open which gives the scoring logic, for ease of the user, I am summarizing the scoring logic
A. We break down RSI and DMI into a 9 point scale (-4 to +4) from extremely bearish to bullish. Then we give equal weight to both and come out with a direction score.
B. We use EMA to determine if their is clarity in the price trend. While the direction is deduced from point A, if there is clarity we know that the confidence on the direction is high. If EMA 13 is higher than EMA 21 and the price is above EMA 13, then we assign it as a score of +1 as we get clear bullish trend. Similarly if EMA 13 is below EMA 21 and the price is below both the EMAs then we assign it a score of -1 as we get clear bearish trend. Anything else is considered as inconclusive and given a score of 0
C. We use ADX to determine the strength of the directional momentum. It is like acceleration. We use ADX score as an strength adjustment factor. If the value is above 25 - we multiply A+B by 1.25. Similarly we multiply it by 0.75 if the strength is weak and no change if the strength is neutral.
Finally this indicator categorizes market direction into five levels:
- Very Bullish
- Bullish
- Neutral
- Bearish
- Very Bearish
Scores range from +6 (very bullish) to -6 (very bearish), with the user setting thresholds for each category. The midpoint between Bullish and Bearish defines the neutral zone.
Again all the exact values are in the code and the user can also customize as per their trading system.
Why does it make sense to combine these different indicators rather than looking at them in isolation?
We give equal weight to RSI and DMI to derive the direction of the price movement. Using two different indicators provide a better confirmation on the direction. However, this alone is not sufficient.
We want clarity of the direction and for that we use the EMA score (please refer to point B above). If we have clarity, the probability of the direction being right goes up.
Once we know the direction, we want to know what is the strength of that direction. This point is very valuable for an option trader. This is where this indicator brings value.
Please note that by looking at these indicators in isolation one can get a sense of direction or a sense of strength of the direction. But, when you combine them, you get whether the direction move is with strength or not. If you are into option trading, you will clearly understand the rational behind it when you look at the trading rules provided in this description. For example if one knows that the direction is bullish (which one can potentially get from RSI or DMI), one can either buy a call or sell a put. But one knows that not only the direction is bullish, but it has the right acceleration (strength of the momentum), then one will assign higher probability of higher profit from buying call than from selling put.
To summarize we have combined indicators to achieve the following
1. Get confirmation from two different indicators on the direction of the price movement (RSI and DMI)
2. Confirm that the direction is clear (Price relative to EMA)
3. Combine with the strength of the direction (ADX)
Direction, clarity of the direction and the strength of the directional movement is a valuable trading indicator in our opinion.
Suggested trading rules
1. Short strangle strategy when the trend is neutral with one's usual option selling quantity. Equal quantity on put and call.
2. Full quantity short put and half quantity short call when the trend is bullish.
3. Full quantity short put and call long when the indicator is very bullish.
4. Vice versa for bearish ( full call short, half put short) and very bearish (full call short, put long)
Suggested to use 5 min timeframe for scalping, 15 min for intraday positions, 1 hour for weekly and monthly positions, and daily/weekly for investments.
The value of this indicator oscillates between +6 to -6. You can tweak the range for V bullish, bullish, bearish, and v bearish. The values in between will default to the neutral zone.
Disclaimers:
1. While the creator has used this in the live market, no claim is being made on its effectiveness or profit making ability. Please use it for trading only after you have tested it and are satisfied.
2. There may be thousands or millions of better trader in this world than the creator of this script. The creator makes no claim of his intelligence or trading ability.
3. The creator has no intention of selling this particular script now or in future. This is purely for community use and there's no intention to make any monetary profit from it.
4. The creator is not requesting or soliciting anyone to like or promote this script. The creator is also not asking anyone to give him any business now or in future even if they like this script and benefit from it.
TrendzonesHi all!
This indicator plots trendlines. These lines are not plotted as traditional lines, but are instead zones. This is useful if you think that trend lines are more of an area of importance than a line.
It does so by finding pivots and connecting two of them if they have not been broken (more about that later) in-between the pivots.
These trend zones can be used as support/resistance that the price can react to.
• The first trendline is drawn between the high/low of the first and second pivot.
• The second trendline's first point is at the open/close of the pivot (either the first pivot or the second one) that has the smallest difference between the high/low and the nearest open/close. The same difference (between the high/low and the open/close) is then subtracted from the other pivot's high/low. This creates a point at the other pivot bar. A trendline is then drawn between the points.
This creates two trendlines and a zone between the two trendlines. This zone is the one kept and is shown by the script.
You can define the pivot lengths used to find trend zones (defaults to 3/3). You can also define the number of pivots to look back for, to find trend zones and the number of active zones, both of these defaults to 3. You can also choose to let the script create new zones based on time ("Oldest") or the zone that is furthest away in price, this defaults to be based on time but it can be useful for letting the script remove the one which is furthest away in price. Another useful setting is the one called "Cross source". This defines the price that has to cross the trend zone to make it invalid (broken). This defaults to "Close", i.e. the bar has to close on the "wrong side" of the trend zone.
The current zones are shown with an extension to the right, but you can also choose to keep the previous lines (without extension). Please note that kept zones are only the ones that are broken, not the replaced ones. I.e. the zones that are kept are the ones that are crossed by the user defined "cross source" (defaults to the closing/current price of the bar).
Hope this makes sense, let me know if you have any questions.
Best of trading luck!
Buy-Sell Volume Bar Gauge [By MUQWISHI]▋ INTRODUCTION :
The Buy-Sell Volume Bar Gauge is developed to provide traders with a detailed analysis of volume in bars using a low timeframe, such as a 1-second interval, to measure the dominance of buy and sell for each bar. By highlighting the balance between buying and selling activities, the Buy-Sell Volume Bar Gauge helps traders identify potential volume momentum of a bar; aimed at being a useful tool for day traders and scalpers.
_______________________
▋ OVERVIEW:
_______________________
▋ METHODOLOGY:
The concept is based on bars from a lower timeframe within the current chart timeframe bar, where volume is categorized into Up, Down, and Neutral Volume, with each one displayed as a portion of a column plot. Up Volume is recorded when the price experiences a positive change, Down Volume occurs when the price experiences a negative change, and Neutral Volume is observed when the price shows no significant change.
_______________________
▋ INDICATOR SETTINGS:
(1) Fetch data from the selected lower timeframe. Note: If the selected timeframe is invalid (higher than chart), the indicator will automatically switch to 1 second.
(2) Price Source.
(3) Treating Neutral Data (Price Source) as
Neutral: In a lower timeframe, when the bar has no change in its price, the volume is counted as Neutral Volume.
Previous Move: In a lower timeframe, when the bar has no change in its price, the volume is counted as the previous change; “Up Volume” if the previous change was positive, and “Down Volume” if the previous change was negative.
Opposite Previous Move: In a lower timeframe, when the bar has no change in its price, the volume is counted as the opposite previous change; “Up Volume” if the previous change was negative, and “Down Volume” if the previous change was positive.
(4) Average Volume Length, it's used for lighting/darkening columns in a plot.
(5) Enable Alert.
(7) Total bought (%) Level.
(8) Total Sold (%) Level.
_____________________
▋ COMMENT:
The Buy-Sell Volume Bar Gauge can be taken as confirmation for predicting the next move, but it should not be considered a major factor in making a trading decision.
Intelle_city - World Cycle - Ath & Atl - Logarithmic - Strategy.Overview
Indicators: Strategy !
INTELLECT_city - World Cycle - ATH & ATL - Timeframe 1D and 1W - Logarithmic - Strategy - The Pi Cycle Top and Bottom Oscillator is an adaptation of the original Pi Cycle Top chart. It compares the 111-Day Moving Average circle and the 2 * 350-Day Moving Average circle of Bitcoin’s Price. These two moving averages were selected as 350 / 111 = 3.153; An approximation of the important mathematical number Pi.
When the 111-Day Moving Average circle reaches the 2 * 350-Day Moving Average circle, it indicates that the market is becoming overheated. That is because the mid time frame momentum reference of the 111-Day Moving Average has caught up with the long timeframe momentum reference of the 2 * 350-Day Moving Average.
Historically this has occurred within 3 days of the very top of each market cycle.
When the 111 Day Moving Average circle falls back beneath the 2 * 350 Day Moving Average circle, it indicates that the market momentum of that cycle is significantly cooling down. The oscillator drops down into the lower green band shown where the 111 Day Moving Average is moving at a 75% discount relative to the 2 * 350 Day Moving Average.
Historically, this has highlighted broad areas of bear market lows.
IMPORTANT: You need to set a LOGARITHMIC graph. (The function is located at the bottom right of the screen)
IMPORTANT: The INTELLECT_city indicator is made for a buy-sell strategy; there is also a signal indicator from INTELLECT_city
IMPORTANT: The Chart shows all cycles, both buying and selling.
IMPORTANT: Suitable timeframes are 1 daily (recommended) and 1 weekly
-----------------------------
Описание на русском:
-----------------------------
Обзор индикатора
INTELLECT_city - World Cycle - ATH & ATL - Timeframe 1D and 1W - Logarithmic - Strategy - Логарифмический - Сигнал - Осциллятор вершины и основания цикла Пи представляет собой адаптацию оригинального графика вершины цикла Пи. Он сравнивает круг 111-дневной скользящей средней и круг 2 * 350-дневной скользящей средней цены Биткойна. Эти две скользящие средние были выбраны как 350/111 = 3,153; Приближение важного математического числа Пи.
Когда круг 111-дневной скользящей средней достигает круга 2 * 350-дневной скользящей средней, это указывает на то, что рынок перегревается. Это происходит потому, что опорный моментум среднего временного интервала 111-дневной скользящей средней догнал опорный момент импульса длинного таймфрейма 2 * 350-дневной скользящей средней.
Исторически это происходило в течение трех дней после вершины каждого рыночного цикла.
Когда круг 111-дневной скользящей средней опускается ниже круга 2 * 350-дневной скользящей средней, это указывает на то, что рыночный импульс этого цикла значительно снижается. Осциллятор опускается в нижнюю зеленую полосу, показанную там, где 111-дневная скользящая средняя движется со скидкой 75% относительно 2 * 350-дневной скользящей средней.
Исторически это высветило широкие области минимумов медвежьего рынка.
ВАЖНО: Выставлять нужно ЛОГАРИФМИЧЕСКИЙ график. (Находиться функция с правой нижней части экрана)
ВАЖНО: Индикатор INTELLECT_city сделан для стратегии покупок продаж, есть также и сигнальный от INTELLECT_сity
ВАЖНО: На Графике видны все циклы, как на покупку так и на продажу.
ВАЖНО: Подходящие таймфреймы 1 дневной (рекомендовано) и 1 недельный
-----------------------------
Beschreibung - Deutsch
-----------------------------
Indikatorübersicht
INTELLECT_city – Weltzyklus – ATH & ATL – Zeitrahmen 1T und 1W – Logarithmisch – Strategy – Der Pi-Zyklus-Top- und Bottom-Oszillator ist eine Anpassung des ursprünglichen Pi-Zyklus-Top-Diagramms. Er vergleicht den 111-Tage-Gleitenden-Durchschnittskreis und den 2 * 350-Tage-Gleitenden-Durchschnittskreis des Bitcoin-Preises. Diese beiden gleitenden Durchschnitte wurden als 350 / 111 = 3,153 ausgewählt; eine Annäherung an die wichtige mathematische Zahl Pi.
Wenn der 111-Tage-Gleitenden-Durchschnittskreis den 2 * 350-Tage-Gleitenden-Durchschnittskreis erreicht, deutet dies darauf hin, dass der Markt überhitzt. Das liegt daran, dass der Momentum-Referenzwert des 111-Tage-Gleitenden-Durchschnitts im mittleren Zeitrahmen den Momentum-Referenzwert des 2 * 350-Tage-Gleitenden-Durchschnitts im langen Zeitrahmen eingeholt hat.
Historisch gesehen geschah dies innerhalb von 3 Tagen nach dem Höhepunkt jedes Marktzyklus.
Wenn der Kreis des 111-Tage-Durchschnitts wieder unter den Kreis des 2 x 350-Tage-Durchschnitts fällt, deutet dies darauf hin, dass die Marktdynamik dieses Zyklus deutlich nachlässt. Der Oszillator fällt in das untere grüne Band, in dem der 111-Tage-Durchschnitt mit einem Abschlag von 75 % gegenüber dem 2 x 350-Tage-Durchschnitt verläuft.
Historisch hat dies breite Bereiche mit Tiefstständen in der Baisse hervorgehoben.
WICHTIG: Sie müssen ein logarithmisches Diagramm festlegen. (Die Funktion befindet sich unten rechts auf dem Bildschirm)
WICHTIG: Der INTELLECT_city-Indikator ist für eine Kauf-Verkaufs-Strategie konzipiert; es gibt auch einen Signalindikator von INTELLECT_city
WICHTIG: Das Diagramm zeigt alle Zyklen, sowohl Kauf- als auch Verkaufszyklen.
WICHTIG: Geeignete Zeitrahmen sind 1 täglich (empfohlen) und 1 wöchentlich
intellect_city - World Cycle - Ath & Atl - Logarithmic - Signal.Indicator Overview
INTELLECT_city - World Cycle - ATH & ATL - Timeframe 1D and 1W - Logarithmic - Signal - The Pi Cycle Top and Bottom Oscillator is an adaptation of the original Pi Cycle Top chart. It compares the 111-Day Moving Average circle and the 2 * 350-Day Moving Average circle of Bitcoin’s Price. These two moving averages were selected as 350 / 111 = 3.153; An approximation of the important mathematical number Pi.
When the 111-Day Moving Average circle reaches the 2 * 350-Day Moving Average circle, it indicates that the market is becoming overheated. That is because the mid time frame momentum reference of the 111-Day Moving Average has caught up with the long timeframe momentum reference of the 2 * 350-Day Moving Average.
Historically this has occurred within 3 days of the very top of each market cycle.
When the 111 Day Moving Average circle falls back beneath the 2 * 350 Day Moving Average circle, it indicates that the market momentum of that cycle is significantly cooling down. The oscillator drops down into the lower green band shown where the 111 Day Moving Average is moving at a 75% discount relative to the 2 * 350 Day Moving Average.
Historically, this has highlighted broad areas of bear market lows.
IMPORTANT: You need to set a LOGARITHMIC graph. (The function is located at the bottom right of the screen)
IMPORTANT: The INTELLECT_city indicator is made for signal purchases of sales, there is also a strategic one from INTELLECT_city
IMPORTANT: The Chart shows all cycles, both buying and selling.
IMPORTANT: Suitable timeframes are 1 daily (recommended) and 1 weekly
-----------------------------
Описание на русском:
-----------------------------
Обзор индикатора
INTELLECT_city - World Cycle - ATH & ATL - Timeframe 1D and 1W - Logarithmic - Signal - Логарифмический - Сигнал - Осциллятор вершины и основания цикла Пи представляет собой адаптацию оригинального графика вершины цикла Пи. Он сравнивает круг 111-дневной скользящей средней и круг 2 * 350-дневной скользящей средней цены Биткойна. Эти две скользящие средние были выбраны как 350/111 = 3,153; Приближение важного математического числа Пи.
Когда круг 111-дневной скользящей средней достигает круга 2 * 350-дневной скользящей средней, это указывает на то, что рынок перегревается. Это происходит потому, что опорный моментум среднего временного интервала 111-дневной скользящей средней догнал опорный момент импульса длинного таймфрейма 2 * 350-дневной скользящей средней.
Исторически это происходило в течение трех дней после вершины каждого рыночного цикла.
Когда круг 111-дневной скользящей средней опускается ниже круга 2 * 350-дневной скользящей средней, это указывает на то, что рыночный импульс этого цикла значительно снижается. Осциллятор опускается в нижнюю зеленую полосу, показанную там, где 111-дневная скользящая средняя движется со скидкой 75% относительно 2 * 350-дневной скользящей средней.
Исторически это высветило широкие области минимумов медвежьего рынка.
ВАЖНО: Выставлять нужно ЛОГАРИФМИЧЕСКИЙ график. (Находиться функция с правой нижней части экрана)
ВАЖНО: Индикатор INTELLECT_city сделан для сигнальных покупок продаж, есть также и стратегический от INTELLECT_сity
ВАЖНО: На Графике видны все циклы, как на покупку так и на продажу.
ВАЖНО: Подходящие таймфреймы 1 дневной (рекомендовано) и 1 недельный
-----------------------------
Beschreibung - Deutsch
-----------------------------
Indikatorübersicht
INTELLECT_city – Weltzyklus – ATH & ATL – Zeitrahmen 1T und 1W – Logarithmisch – Signal – Der Pi-Zyklus-Top- und Bottom-Oszillator ist eine Anpassung des ursprünglichen Pi-Zyklus-Top-Diagramms. Er vergleicht den 111-Tage-Gleitenden-Durchschnittskreis und den 2 * 350-Tage-Gleitenden-Durchschnittskreis des Bitcoin-Preises. Diese beiden gleitenden Durchschnitte wurden als 350 / 111 = 3,153 ausgewählt; eine Annäherung an die wichtige mathematische Zahl Pi.
Wenn der 111-Tage-Gleitenden-Durchschnittskreis den 2 * 350-Tage-Gleitenden-Durchschnittskreis erreicht, deutet dies darauf hin, dass der Markt überhitzt. Das liegt daran, dass der Momentum-Referenzwert des 111-Tage-Gleitenden-Durchschnitts im mittleren Zeitrahmen den Momentum-Referenzwert des 2 * 350-Tage-Gleitenden-Durchschnitts im langen Zeitrahmen eingeholt hat.
Historisch gesehen geschah dies innerhalb von 3 Tagen nach dem Höhepunkt jedes Marktzyklus.
Wenn der Kreis des 111-Tage-Durchschnitts wieder unter den Kreis des 2 x 350-Tage-Durchschnitts fällt, deutet dies darauf hin, dass die Marktdynamik dieses Zyklus deutlich nachlässt. Der Oszillator fällt in das untere grüne Band, in dem der 111-Tage-Durchschnitt mit einem Abschlag von 75 % gegenüber dem 2 x 350-Tage-Durchschnitt verläuft.
Historisch hat dies breite Bereiche mit Tiefstständen in der Baisse hervorgehoben.
WICHTIG: Sie müssen ein logarithmisches Diagramm festlegen. (Die Funktion befindet sich unten rechts auf dem Bildschirm)
WICHTIG: Der INTELLECT_city-Indikator dient zur Signalisierung von Käufen oder Verkäufen, es gibt auch einen strategischen Indikator von INTELLECT_city
WICHTIG: Das Diagramm zeigt alle Zyklen, sowohl Kauf- als auch Verkaufszyklen.
WICHTIG: Geeignete Zeitrahmen sind 1 täglich (empfohlen) und 1 wöchentlich
Volatility and Volume by Hour EXT(Extended republication, use this instead of the old one)
The goal of this indicator is to show a “characteristic” of the instrument, regarding the price change and trading volume. You can see how the instrument “behaved” throughout the day in the lookback period. I've found this useful for timing in day trading.
The indicator creates a table on the chart to display various statistics for each hour of the day.
Important: ONLY SHOWS THE TABLE IF THE CHART’S TIMEFRAME IS 1H!
Explanation of the columns:
1. Volatility Percentage (Volat): This column shows the volatility of the price as a percentage. For example, a value of "15%" means the price movement was 15% of the total daily price movement within the hour.
2. Hourly Point Change (PointCh): This column shows the change in price points for each hour in the lookback period. For example, a value of "5" means the price has increased by 5 points in the hour, while "-3" means it has decreased by 3 points.
3. Hourly Point Change Percentage (PrCh% (LeverageX)): This column shows the percentage change in price points for each hour, adjusted with leverage multiplier. Displayed green (+) or red (-) accordingly. For example, a value of "10%" with a leverage of 2X means the price has effectively changed by 5% due to the leverage.
4. Trading Volume Percentage (TrVol): This column shows the percentage of the daily total volume that was traded in a specific hour. For example, a value of "10%" would mean that 10% of the day's total trading volume occurred in that hour.
5. Added New! - Relevancy Check: The indicator checks the last 24 candle. If the direction of the price movement was the same in the last 24 hour as the statistical direction in that hour, the background of the relevant hour in the second column goes green.
For example: if today at 9 o'clock the price went lower, so as at 9 o'clock in the loopback period, the instrument "behaves" according to statistics . So the statistics is probably more relevant for today. The more green background row the more relevancy.
Settings:
1. Lookback period: The lookback period is the number of previous bars from which data is taken to perform calculations. In this script, it's used in a loop that iterates over a certain number of past bars to calculate the statistics. TIP: Select a period the contains a trend in one direction, because an upward and a downward trend compensate the price movement in opposite directions.
2. Timezone: This is a string input that represents the user's timezone. The default value is "UTC+2". Adjust it to your timezone in order to view the hours properly.
3. Leverage: The default value is 10(!). This input is used to adjust the hourly point change percentage. For FOREX traders (for example) the statistics can show the leveraged percentage of price change. Set that according the leverage you trade the instrument with.
Use at your own risk, provided “as is” basis!
Hope you find it useful! Cheers!
Liquidity Grab Zones | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Liquidity Grab Zones Indicator! This indicator finds liquidity grabs in the current ticker and renders buyside & sellside liquidity grab zones. The retests and breakout of the zones are labeled, and you can set up alerts to get notified. For more information, please check the "HOW DOES IT WORK" section.
Features of the new Liquidity Grab Zones Indicator :
Renders Buyside & Sellside Liquidity Grab Zones
Retests & Breaks
Inverse Zones After Broken Feature
Alerts For All Features
Customizable Algorithm
Customizable Styles
🚩UNIQUENESS
Liquidity grabs can be useful when determining candles that have executed a lot of market orders, so you can plann your trades accordingly. This indicator lets you customize the pivot length and the wick-body ratio for liquidity grabs, provide retest & breakout labels, with customized styling and alerts.
📌 HOW DOES IT WORK ?
Liquidity grabs occur when one of the latest pivots has a false breakout. Then, if the wick to body ratio of the bar is higher than 0.5 (can be changed from the settings) a zone is plotted.
These zones usually indicate areas of high market interest where price action may reverse or accelerate. Identifying these zones can provide traders with critical levels for entering or exiting trades. A breakout of these zones generally mean strong movements are inbound, while failing breakouts make these zones act like support / resistance zones.
The indicator also reverses the type of the zone after an invalidation (can be turned off from the settings). This feature helps traders identify potential reversals more accurately.
The zone width is set to the area from the wick to the body of the candlestick, which can be seen here :
⚙️SETTINGS
1. General Configuration
Pivot Length -> This setting determines the range of the pivots. This means a candle has to have the highest / lowest wick of the previous X bars and the next X bars to become a high / low pivot.
Wick-Body Ratio -> After a pivot has a false breakout, the wick-body ratio of the latest candle is tested. The resulting ratio must be higher than this setting for it to be considered as a liquidity grab.
Zone Invalidation -> Select between Wick & Close price for Liquidity Grab Zone Invalidation.
Use these customizable settings to fine-tune the indicator according to your trading strategy and preferences.
Premium Imbalance FinderIntroducing the Premium Imbalances Indicator, a powerful tool designed help traders identify and analyze market imbalances. This advanced indicator offers a comprehensive suite of features to enhance your trading experience and provide valuable insights into market dynamics.
Key Features:
Fair Value Gap (FVG): Identify price ranges where the market has not achieved fair value, indicating potential imbalances and trading opportunities.
Balanced Price Range (BPR): Visualize price ranges where the market has found a balance between supply and demand.
Volume Imbalance: Detect areas of significant volume imbalance, highlighting the absence of body volume and potential market inefficiencies.
Opening Gap: Identify un-offered price ranges at the opening of a trading session, providing insights into potential market direction.
Customizable Display: Adjust the display limit to control the number of imbalance boxes visible on the chart, ensuring a clutter-free and focused view.
Mitigation Analysis: Set a mitigation level to determine when an imbalance has been mitigated and track the percentage of mitigation for each imbalance.
Higher Timeframe Analysis: Enable the HTF Imbalance feature to analyze imbalances on higher timeframes, providing a broader perspective on market structure.
Customizable Appearance: Personalize the colors of imbalance boxes, premium zones, and mid-lines to suit your visual preferences and easily distinguish between bullish and bearish imbalances.
Flexible Imbalance Extension: Choose between custom, current, or extended imbalance box display to adapt to your trading style and analysis requirements.
Detailed Tooltips: Hover over imbalance labels to view the percentage of mitigation for each imbalance, providing quick and easy access to crucial information.
The Premium Imbalances Indicator is suitable for traders of all levels, from beginners to experienced professionals, and can be used across various markets and timeframes.
By utilizing this powerful tool, traders can gain a deeper understanding of market dynamics, identify potential trading opportunities, and make more informed decisions based on the analysis of imbalances. The indicator's customizable features and detailed insights make it an essential addition to any trader's toolkit.
mathLibrary "math"
It's a library of discrete aproximations of a price or Series float it uses Fourier Discrete transform, Laplace Discrete Original and Modified transform and Euler's Theoreum for Homogenus White noice operations. Calling functions without source value it automatically take close as the default source value.
Here is a picture of Laplace and Fourier approximated close prices from this library:
Copy this indicator and try it yourself:
import AutomatedTradingAlgorithms/math/1 as math
//@version=5
indicator("Close Price with Aproximations", shorttitle="Close and Aproximations", overlay=false)
// Sample input data (replace this with your own data)
inputData = close
// Plot Close Price
plot(inputData, color=color.blue, title="Close Price")
ltf32_result = math.LTF32(a=0.01)
plot(ltf32_result, color=color.green, title="LTF32 Aproximation")
fft_result = math.FFT()
plot(fft_result, color=color.red, title="Fourier Aproximation")
wavelet_result = math.Wavelet()
plot(wavelet_result, color=color.orange, title="Wavelet Aproximation")
wavelet_std_result = math.Wavelet_std()
plot(wavelet_std_result, color=color.yellow, title="Wavelet_std Aproximation")
DFT3(xval, _dir)
Discrete Fourier Transform with last 3 points
Parameters:
xval (float) : Source series
_dir (int) : Direction parameter
Returns: Aproxiated source value
DFT2(xval, _dir)
Discrete Fourier Transform with last 2 points
Parameters:
xval (float) : Source series
_dir (int) : Direction parameter
Returns: Aproxiated source value
FFT(xval)
Fast Fourier Transform once. It aproximates usig last 3 points.
Parameters:
xval (float) : Source series
Returns: Aproxiated source value
DFT32(xval)
Combined Discrete Fourier Transforms of DFT3 and DTF2 it aproximates last point by first
aproximating last 3 ponts and than using last 2 points of the previus.
Parameters:
xval (float) : Source series
Returns: Aproxiated source value
DTF32(xval)
Combined Discrete Fourier Transforms of DFT3 and DTF2 it aproximates last point by first
aproximating last 3 ponts and than using last 2 points of the previus.
Parameters:
xval (float) : Source series
Returns: Aproxiated source value
LFT3(xval, _dir, a)
Discrete Laplace Transform with last 3 points
Parameters:
xval (float) : Source series
_dir (int) : Direction parameter
a (float) : laplace coeficient
Returns: Aproxiated source value
LFT2(xval, _dir, a)
Discrete Laplace Transform with last 2 points
Parameters:
xval (float) : Source series
_dir (int) : Direction parameter
a (float) : laplace coeficient
Returns: Aproxiated source value
LFT(xval, a)
Fast Laplace Transform once. It aproximates usig last 3 points.
Parameters:
xval (float) : Source series
a (float) : laplace coeficient
Returns: Aproxiated source value
LFT32(xval, a)
Combined Discrete Laplace Transforms of LFT3 and LTF2 it aproximates last point by first
aproximating last 3 ponts and than using last 2 points of the previus.
Parameters:
xval (float) : Source series
a (float) : laplace coeficient
Returns: Aproxiated source value
LTF32(xval, a)
Combined Discrete Laplace Transforms of LFT3 and LTF2 it aproximates last point by first
aproximating last 3 ponts and than using last 2 points of the previus.
Parameters:
xval (float) : Source series
a (float) : laplace coeficient
Returns: Aproxiated source value
whitenoise(indic_, _devided, minEmaLength, maxEmaLength, src)
Ehler's Universal Oscillator with White Noise, without extra aproximated src.
It uses dinamic EMA to aproximate indicator and thus reducing noise.
Parameters:
indic_ (float) : Input series for the indicator values to be smoothed
_devided (int) : Divisor for oscillator calculations
minEmaLength (int) : Minimum EMA length
maxEmaLength (int) : Maximum EMA length
src (float) : Source series
Returns: Smoothed indicator value
whitenoise(indic_, dft1, _devided, minEmaLength, maxEmaLength, src)
Ehler's Universal Oscillator with White Noise and DFT1.
It uses src and sproxiated src (dft1) to clearly define white noice.
It uses dinamic EMA to aproximate indicator and thus reducing noise.
Parameters:
indic_ (float) : Input series for the indicator values to be smoothed
dft1 (float) : Aproximated src value for white noice calculation
_devided (int) : Divisor for oscillator calculations
minEmaLength (int) : Minimum EMA length
maxEmaLength (int) : Maximum EMA length
src (float) : Source series
Returns: Smoothed indicator value
smooth(dft1, indic__, _devided, minEmaLength, maxEmaLength, src)
Smoothing source value with help of indicator series and aproximated source value
It uses src and sproxiated src (dft1) to clearly define white noice.
It uses dinamic EMA to aproximate src and thus reducing noise.
Parameters:
dft1 (float) : Value to be smoothed.
indic__ (float) : Optional input for indicator to help smooth dft1 (default is FFT)
_devided (int) : Divisor for smoothing calculations
minEmaLength (int) : Minimum EMA length
maxEmaLength (int) : Maximum EMA length
src (float) : Source series
Returns: Smoothed source (src) series
smooth(indic__, _devided, minEmaLength, maxEmaLength, src)
Smoothing source value with help of indicator series
It uses dinamic EMA to aproximate src and thus reducing noise.
Parameters:
indic__ (float) : Optional input for indicator to help smooth dft1 (default is FFT)
_devided (int) : Divisor for smoothing calculations
minEmaLength (int) : Minimum EMA length
maxEmaLength (int) : Maximum EMA length
src (float) : Source series
Returns: Smoothed src series
vzo_ema(src, len)
Volume Zone Oscillator with EMA smoothing
Parameters:
src (float) : Source series
len (simple int) : Length parameter for EMA
Returns: VZO value
vzo_sma(src, len)
Volume Zone Oscillator with SMA smoothing
Parameters:
src (float) : Source series
len (int) : Length parameter for SMA
Returns: VZO value
vzo_wma(src, len)
Volume Zone Oscillator with WMA smoothing
Parameters:
src (float) : Source series
len (int) : Length parameter for WMA
Returns: VZO value
alma2(series, windowsize, offset, sigma)
Arnaud Legoux Moving Average 2 accepts sigma as series float
Parameters:
series (float) : Input series
windowsize (int) : Size of the moving average window
offset (float) : Offset parameter
sigma (float) : Sigma parameter
Returns: ALMA value
Wavelet(src, len, offset, sigma)
Aproxiates srt using Discrete wavelet transform.
Parameters:
src (float) : Source series
len (int) : Length parameter for ALMA
offset (simple float)
sigma (simple float)
Returns: Wavelet-transformed series
Wavelet_std(src, len, offset, mag)
Aproxiates srt using Discrete wavelet transform with standard deviation as a magnitude.
Parameters:
src (float) : Source series
len (int) : Length parameter for ALMA
offset (float) : Offset parameter for ALMA
mag (int) : Magnitude parameter for standard deviation
Returns: Wavelet-transformed series
LaplaceTransform(xval, N, a)
Original Laplace Transform over N set of close prices
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
Returns: Aproxiated source value
NLaplaceTransform(xval, N, a, repeat)
Y repetirions on Original Laplace Transform over N set of close prices, each time N-k set of close prices
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
repeat (int) : number of repetitions
Returns: Aproxiated source value
LaplaceTransformsum(xval, N, a, b)
Sum of 2 exponent coeficient of Laplace Transform over N set of close prices
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
Returns: Aproxiated source value
NLaplaceTransformdiff(xval, N, a, b, repeat)
Difference of 2 exponent coeficient of Laplace Transform over N set of close prices
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
repeat (int) : number of repetitions
Returns: Aproxiated source value
N_divLaplaceTransformdiff(xval, N, a, b, repeat)
N repetitions of Difference of 2 exponent coeficient of Laplace Transform over N set of close prices, with dynamic rotation
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
repeat (int) : number of repetitions
Returns: Aproxiated source value
LaplaceTransformdiff(xval, N, a, b)
Difference of 2 exponent coeficient of Laplace Transform over N set of close prices
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
Returns: Aproxiated source value
NLaplaceTransformdiffFrom2(xval, N, a, b, repeat)
N repetitions of Difference of 2 exponent coeficient of Laplace Transform over N set of close prices, second element has for 1 higher exponent factor
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
repeat (int) : number of repetitions
Returns: Aproxiated source value
N_divLaplaceTransformdiffFrom2(xval, N, a, b, repeat)
N repetitions of Difference of 2 exponent coeficient of Laplace Transform over N set of close prices, second element has for 1 higher exponent factor, dynamic rotation
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
repeat (int) : number of repetitions
Returns: Aproxiated source value
LaplaceTransformdiffFrom2(xval, N, a, b)
Difference of 2 exponent coeficient of Laplace Transform over N set of close prices, second element has for 1 higher exponent factor
Parameters:
xval (float) : series to aproximate
N (int) : number of close prices in calculations
a (float) : laplace coeficient
b (float) : second laplace coeficient
Returns: Aproxiated source value
Order Block Refiner [TradingFinder]🔵 Introduction
The "Refinement" feature allows you to adjust the width of the order block according to your strategy. There are two modes, "Aggressive" and "Defensive," in the "Order Block Refine". The difference between "Aggressive" and "Defensive" lies in the width of the order block.
For risk-averse traders, the "Defensive" mode is suitable as it provides a lower loss limit and a greater reward-to-risk ratio. For risk-taking traders, the "Aggressive" mode is more appropriate. These traders prefer to enter trades at higher prices, and this mode, which has a wider order block width, is more suitable for this group of individuals.
Important :
One of the advantages of using this library is increased code accuracy. Not only does it have the capability to create order blocks, but you can also simply define the condition for order block creation (true/false) and "bar_index," and you'll find the primary range without applying any filters.
🟣 Order Block Refinement Algorithm
The order block ranges are filtered in two stages. In the first stage, the "Open," "High," "Low," and "Close" of the current order block candle, its two or three previous candles, and one subsequent candle (if available) are examined. In this stage, minimum and maximum distances are calculated, and logical range filters are applied.
In the second stage, two modes, "Aggressive" and "Defensive," are calculated.
For the "Defensive" mode, the width of these ranges is compared with the "ATR" (Average True Range) of period 55, and if they are smaller than "ATR" or 1 to more than 4 times "ATR," the width of the range is reduced from 0 to 80 percent.
For the "Aggressive" mode, you get the same output as the first filter, which usually has a wider width than the "Defensive" mode.
• Order Block Refiner : Off
• Order Block Refiner : On / "Aggressive Mode"
• Order Block Refiner : On / "Defensive Mode"
🔵 How to Use
OBRefiner(string OBType, string OBRefine, string RefineMethod, bool TriggerCondition, int Index) =>
Parameters:
• OBType (string)
• OBRefine (string)
• RefineMethod (string)
• TriggerCondition (bool)
• Index (int)
To add "Order Block Refiner Library", you must first add the following code to your script.
import TFlab/OrderBlockRefiner_TradingFinder/1
OBType : This parameter receives 2 inputs. If the order block you want to "Refine" is of type demand, you should enter "Demand," and if it's of type supply, you should enter "Supply."
OBRefine : Set to "On" if you want the "Refine" operation to be performed. Otherwise, set to "Off."
RefineMethod : This input receives 2 modes, "Aggressive" and "Defensive." You can switch between these modes according to your needs.
TriggerCondition : Enter the condition with which the order block is formed in this parameter.
Index : Enter the "bar_index" of the candle where the order block is formed in this parameter.
🟣 Function Outputs
This function has 6 outputs: "bar_index" at the beginning of the "Distal" line, "bar_index+1" at the end of the "Distal" line, "Price" at the "Distal" line, "bar_index" at the beginning of the "Proximal" line, "bar_index+1" at the end of the "Proximal" line, and "Price" at the "Proximal" line, which can be used to draw order blocks.
Sample :
= Refiner.OBRefiner('Demand', 'Off', 'Aggressive',BuMChMain_Trigger, BuMChMain_Index)
if BuMChMain_Trigger
BuMChHlineMain := line.new(BuMChMain_Xp1 , BuMChMain_Yp12 , bar_index , BuMChMain_Yp12, color = color.black , style = line.style_dotted)
BuMChLlineMain := line.new(BuMChMain_Xd1 , BuMChMain_Yd12 , bar_index , BuMChMain_Yd12, color = color.black , style = line.style_dotted)
BuMChFilineMain := linefill.new(BuMChHlineMain ,BuMChLlineMain , color = color.rgb(76, 175, 80 , 75 ) )
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)
1 Year Historical Trend AnalyzerHey everyone!
This is a new indicator of mine. If you know me, you know I really like Z-Score and there are a lot of cool things that can be done with Z-Score, especially as it pertains to trading!
This indicator uses Z-Score but in a different way from conventional Z-Score indicators (including mine). It uses Z-Score to plot out the current 1 year trend of a stock. Now, 1 year trend is not year to date (i.e. if we are in April, it is not just looking from January to April), but instead, its taking the last 1 trading year of candle data to plot out the trend, ranges and areas of z-score math based supports and resistances.
How it works:
The indicator will look at the current timeframe you are on, whether it be daily, 1 hour, 4 hours, weekly or even monthly. It will then look back the designated amount of candles that constitute 1 trading year. These are preprogrammed into the indicator so it knows to look back X number of Candles based on Y timeframe. This will give you a standard, scaled version of the past 1 year of trading data.
From there, the indicator will calculate the MAX Z-Score (or the highest Z-Score that the stock reached over the 1 trading year) and the MIN Z-score (or the lowest Z-Score that the stock reached over the 1 trading year). It plots these as a red and green line respectively:
It will then display the price that the MAX and MIN fall at. Keep in mind, the MAX and MIN price will change as the trading time elapses, but the Z-Score will remain the same until the stock does a lower or higher move from that z-score point.
It will then calculate the mean (average) of the Max and Min and then the mid points between the max and mean, and the min and mean. These all represent mathematical areas of support and resistance and key levels to watch when trading.
The indicator also has a table that is optional. The table can be toggled to either Auto or Manual. Auto will automatically calculate 5 Z-Score Points that are within the proximity of the annual trading range. However, you can select manual and input your own Z-Score values to see where the prices will fall based on the 1 year of data.
Some other options:
You can toggle on and off these midline support and resistance levels in the settings menu. Additionally, you can have the indicator plot actual scaled candles of the 1 year trading history. This is a great function to really see how the support and resistance works. Let’s take a look at RIVN, plotted as candles, on the 1 hour timeframe:
In this diagram, we can see two recent points in March where the Z-Score has acted as support for the stock. If we view this in conjunction with the actual ticker, you can see these were great buy points:
Do get this functionality, simply go into the plots menu in the settings menu and select “Plot as Candles”.
How to Use it:
While I have discussed some applications of the indicator, namely identify math supports and resistances, targets and such, there are some key things I really want to emphasize that this indicator excels at. I am going to group them for greater clarity:
All time Highs and All Time Lows:
AXP has recently been pushing ATHs. When a stock breaks an ATH or an ATL, it is said that there is no resistance or support. However, with Z-Score that is never true, there are always areas of math resistance and support. We can use this indicator to identify such areas. Let’s look at AXP:
Using this as a reference, we can see that AXP broke out of a Z-Score resistance level and re-tested the resistance as support. It held and continued up. We can see that the next area of math resistance is at 270:
And 234.65 is support. We would look for the ticker to hold this 234.65 line as support to continue the move up to the 270s.
Similar setup for ATLs with RIVN:
We can see that RIVN can indeed make a new ATL because support isn’t until 7.63.
Technical Tips on How to Use:
Because this indicator uses predefined lookback periods based on timeframes, its important that you are analyzing the data with pre-market turned off. The candles are calculated with the assumption that there is no pre-market data.
As well, the lowest timeframe that can be used to get 1 year worth of data is 1 hour. Anything below 1 hour will require you to manually input a lookback length (default is 252) which will be less than 1 year. This is simply because of the limitations of candle lookbacks through Pinescript.
That is not to say that this is not effective on smaller timeframes, it is! You just need to be sure that you understand you are not looking at a year trend worth of data. You can toggle your manual lookback parameters in the settings menu.
Concluding remarks
And that’s the indicator! I know the explanation is lengthy but I really suggest you read it carefully to understand how the indicator works and how you can best use it to analyze tickers and supplement your strategy.
Thanks for reading and safe trades as always!






















