World Clock [VHX]Keeping track of local times across different time zones has always been a challenge, especially when working with global markets.
But worry no more, as we now have a solution tailored for this very need. With this indicator, you can effortlessly add two different time zones to your chart, making it easier than ever to stay on top of market activity. The indicator not only shows the current date and time for the selected time zones but also integrates seamlessly with your chart, ensuring that you’re always aligned with the right market timings, no matter where you or your trades are based.
Unfortunately, the clock won't function when the market is closed.
CZAS
Opening Price LinesThis script allows the user to set 16 custom opening time price lines and labels, as well as 4 vertical lines to delineate times of the day.
Opening price is crucial for PO3 and OHLC/OLHC market strategies. If you are bearish, you want to get in above the opening price of a candle; conversely if you are bullish you want to enter below the opening price of a candle.
This indicator will aid in identifying time clusters in price as well as identifying important times for whatever strategy the user employs.
*Many thanks to TFO for the framework from which this indicator was created.*
Fibonacci Time PeriodsThe " Fibonacci Time Periods " indicator uses power exponents of the constant Phi based on your custom time period to generate Fibonacci sequence-based progression on a given chart. This tool can help to anticipate the timing of potential turning points by highlighting Fib time zones where significant price movements may occur.
It is different from other alternatives specifically for the ability to alter the rate of progression .
Most famous regular Fib sequence expands with 1.618^(n+1) rate which produces vast change just after few iterations.
Those ever-expanding big intervals don't allow us to cover the smaller details of the chart which we might find crucial. So, the idea was born to break down the constant Phi to a self-fraction using power exponents. In other words, reducing rate of progression to make the expansion more gradual without losing properties of Fibonacci proportions.
Default settings have a rate of 0.25 which is basically Phi^1/4
That means we expect 4x more lines than in regular sequence to cover missing bits owing to formula: 1.618^(0.25*(n+1))
(Line 0.618 is added to enhance visual orientation and perception of proportions)
How it works:
Exponential rate of progression
First, it works out the difference between your custom start (0) and end (1) period
The result is multiplied by 1.618^rate to get the step
Rest lines are created by iterations. For instance, with default rate of 0.25, the 1st generated line = start + (End-Start)*1.618^0.25* 1 , second line = start + (End-Start)*1.618^0.25* 2 , etc.
If we change the rate to 1 it will produce the regular fib sequence with 1.618^(n+1) rate
Fixed rate of progression:
In this mode, when rate is 0.25, it grows exactly with exponent step of 0.25 so first, second, third, etc generated lines also have the fixed exponent of 0.25. The distance between lines do not expand.
How to use:
Set the start and end dates
Choose the type of progression
Choose your desired rate of progression
Customize the colors to match your chart preferences.
Observe the generated Fibonacci time intervals and use them to identify potential market movements and reactions.
Time Vertical LineThis indicator is designed to plot vertical lines at specified hourly intervals on a trading chart. The indicator includes default settings to draw vertical lines at every hour of the day and provides users with the flexibility to customize up to six additional vertical lines at specified times.
Traders can use the vertical lines to segment the trading day, making it easier to analyze market movements within specific hours.
Customizable lines allow traders to mark important times such as market openings, closings, and economic news releases.
This indicator is a powerful tool for traders who need to keep track of specific times and events during the trading day, providing a clear and customizable visual representation of time on their charts.
The indicator allows you to easily customize the appearance of the 24 default vertical lines that mark each hour of the day. You can change the color by adjusting the Color input, modify the transparency using the Transparency input, and set the line width with the Line Width input.
Each of custom lines can have its own color, transparency, and line width, giving you full control over their appearance. By default, these custom vertical lines are turned off. To activate them, go to the "Style" tab in the settings menu of the indicator.
The time for each vertical line is based on the exchange's timezone. You can set the time for each of the 6 custom vertical lines using decimal notation. For example:
Input 9.1 to display a vertical line at 9:10.
Input 9.15 to display a vertical line at 9:15.
The indicator should only be displayed in time frames less than 15 minutes. Go to "Visibility" in settings for options.
Time Zone RouzzyTNYC , London & Asia section
Each time-zone has a different color to be able to distinguish which section we are in at the moment.
These sessions have been identified to operate the EURUSD, apart from that it also works with the DXY.
London is identified with the color light purple.
NYC is identified with the color turquoise blue.
Asia is identified with the color yellow.
The beginnings of each Day are identified with the color gray.
London is from 2am to 5am
NYC from 8am to 11am
Asia from 8pm to 11pm
OANDA:EURUSD
FX:EURUSD
TVC:DXY
Seasonality Widget [LuxAlgo]The Seasonality Widget tool allows users to easily visualize seasonal trends from various data sources.
Users can select different levels of granularity as well as different statistics to express seasonal trends.
🔶 USAGE
Seasonality allows us to observe general trends occurring at regular intervals. These intervals can be user-selected from the granularity setting and determine how the data is grouped, these include:
Hour
Day Of Week
Day Of Month
Month
Day Of Year
The above seasonal chart shows the BTCUSD seasonal price change for every hour of the day, that is the average price change taken for every specific hour. This allows us to obtain an estimate of the expected price move at specific hours of the day.
Users can select when data should start being collected using the "From Date" setting, any data before the selected date will not be included in the calculation of the Seasonality Widget.
🔹 Data To Analyze
The Seasonality Widget can return the seasonality for the following data:
Price Change
Closing price minus the previous closing price.
Price Change (%)
Closing price minus the previous closing price, divided by the
previous closing price, then multiplied by 100.
Price Change (Sign)
Sign of the price change (-1 for negative change, 1 for positive change), normalized in a range (0, 100). Values above 50 suggest more positive changes on average.
Range
High price minus low price.
Price - SMA
Price minus its simple moving average. Users can select the SMA period.
Volume
Amount of contracts traded. Allow users to see which periods are generally the most /least liquid.
Volume - SMA
Volume minus its simple moving average. Users can select the SMA period.
🔹 Filter
In addition to the "From Date" threshold users can exclude data from specific periods of time, potentially removing outliers in the final results.
The period type can be specified in the "Filter Granularity" setting. The exact time to exclude can then be specified in the "Numerical Filter Input" setting, multiple values are supported and should be comma separated.
For example, if we want to exclude the entire 2008 period we can simply select "Year" as filter granularity, then input 2008 in the "Numerical Filter Input" setting.
Do note that "Sunday" uses the value 1 as a day of the week.
🔶 DETAILS
🔹 Supported Statistics
Users can apply different statistics to the grouped data to process. These include:
Mean
Median
Max
Min
Max-Min Average
Using the median allows for obtaining a measure more robust to outliers and potentially more representative of the actual central tendency of the data.
Max and Min do not express a general tendency but allow obtaining information on the highest/lowest value of the analyzed data for specific periods.
🔶 SETTINGS
Granularity: Periods used to group data.
From Data: Starting point where data starts being collected
🔹 Data
Analyze: Specific data to be processed by the seasonality widget.
SMA Length: Period of the simple moving average used for "Price - SMA" and "Volume - SMA" options in "Analyze".
Statistic: Statistic applied to the grouped data.
🔹 Filter
Filter Granularity: Period type to exclude in the processed data.
Numerical Filter Input: Determines which of the selected hour/day of week/day of month/month/year to exclude depending on the selected Filter Granularity. Only numerical inputs can be provided. Multiple values are supported and must be comma-separated.
Session TimesDescription:
This indicator simply when enabled will draw dashed lines at each of the session openings. This is based on UTC+1 Time. There will be lines at 00:00 & 08:00 (Asian Session), lines at 08:00 & 13:00 (London Session) and finally lines at 13:00 & 00:00 (New York Session).
Potential Use:
There are many ways you could use this indicator to benefit your trading, but the best way I find is that it makes it clear where the previous highs and lows are of a session, which are potential areas you could trade off. Obviously, there are many other ways you can use this to help you.
How The Script Works:
The way the script works isn't too complicated as it is only a short script. Simply it firstly calculates what are the weekdays (Whenever it isn't Saturday or Sunday). Then from there simply finds the times which I mentioned above, and adds a vertical dashed line there.
Future Updates:
In the future I will mainly be looking to make the indicator more customisable. Firstly, I will look to make it so that the user can adjust the times that the lines are drawn at so it still works wherever you are in the world. I would also like to make it so the user can choose the colour of the lines. If you have any other additions you would like added to this, then feel free to message me.
Timeframe Marker - know when timeframes start/end
When you're on a lower timeframe, it's important to know which timeframes are starting/ending.
Timeframe Marker will display a bars that stack notifying you of your chosen timeframes.
For example, if you're on the one minute chart or another low timeframe, you'll be aware of the larger timeframes are about to begin or start.
It's always good to select the lowest timeframe first in ascending order so that the lowest bar is the lowest timeframe and bars that stack on top are larger timeframes.
The default timeframes are:
• 5 minutes (green)
• 15 minutes (yellow)
• 1 hour (orange)
• 4 hour (red)
• daily (blue)
• weekly (purple)
• monthly (gray)
If your chart's timeframe is higher than the timeframe marker you've selected, then it won't display a bar stack for that timeframe as it would normally display on every bar (this is to avoid clutter).
The future timeframe marks basically will offset to future timeframes. Set how many bars forward you'd like to see.
Time Bound Trading SessionsTime Bound Trading Sessions allows to add time bound conditions to your trading sessions given a date range , a time range and/or days of the week .
This indicator can be very handy if you want to control your trading sessions along those three time boundaries, applying them together and/or separately.
Feel free to reuse this code in your own strategy, and leverage the inSession condition as needed.
Features
+ It allows for date range start and/or end to be set.
+ It allows for session time range to be set.
+ It allows for days of the week to be set.
+ It applies chart background color if we are not within the given time bound session parameters.
+ It includes turn on/off functionality.
Settings
Date Range
+ {Start} checkbox: turns on/off start date
+ {Start} date/time
+ {End} checkbox: turns on/off end date
+ {End} date/time
Time Range
+ {Session} checkbox: turns on/off session time range
+ {Session} time range
Days
+ {M} checkbox: turns on/off Mondays
+ {T} checkbox: turns on/off Tuesdays
+ {W} checkbox: turns on/off Wednesdays
+ {T} checkbox: turns on/off Thursdays
+ {F} checkbox: turns on/off Fridays
+ {S} checkbox: turns on/off Saturdays
+ {S} checkbox: turns on/off Sundays
Vertical line at 8 AMThis indicator plots a blue vertical line on the chart when it's 8 AM, providing a clear visual reference of this time point on the TradingView chart.
ICT Hydra MacrosThis indicator allows you to set a colored box at each time frame specified as Macro.
The purpose of this customizable color box is to be able to identify the start and end of the desired time frame, as well as the highest and lowest price during that time frame.
It also allows to place the schedule in numbers inside the box in order to quickly identify the painted time frame.
The indicator has up to 26 customizable boxes both in time frame and color. This allows to have different time frames that each Trader considers convenient for his strategy.
Settings:
General Settings:
Limit Days to Draw: Indicates the number of past days in which boxes will be drawn. Default value is 5 past days.
Timeframe Limit: Indicates the maximum time frame in which the boxes will be displayed. Default value is 5 minutes.
Timezone: Indicates the desired Timezone to calculate the schedules that will be configured later.
Macros Settings:
Show Macros Boxes: Enables or disables all boxes. It is enabled by default.
Display Text: Enables or disables all labels inside the boxes containing the time frame corresponding to the box. It is enabled by default.
Macros Transparency: Indicates the transparency percentage of the selected color for all boxes. By default it contains a value of 80% transparency.
Macro 1-26: Indicates the start time and end time, as well as the color of the individual box. Each Macro can be enabled or disabled individually. Note that the boxes of each Macro will be visible only if the "Show Macros Boxes" property is enabled. By default, there are specified certain Macros or time frames with a duration of 20 minutes, which are Manipulation or Expansion Macros that mentor Hydra has taught us based on the knowledge that ICT has provided for everyone.
The objective of this indicator is to provide a visual tool on the Macros or Time Frames in which the Trader can easily observe the desired schedule and which will automatically adjust according to the time and price on all 4 sides of the box.
Time Based Comparison Tool [TFO]The goal of this indicator is to show how multiple assets are trading relative to their Previous Highs and Lows. Many traders have probably seen charts resembling this that may plot how asset prices are trading as a percent change over time, or something similar.
The key difference with this indicator is that all prices are normalized to reflect how they are trading with respect to the previous range of a user-defined timeframe. Without the normalization process, we would simply be observing some percent change from a given point in time; but this does not provide enough information to describe where price is trading relative to our desired frame of reference.
For example, if the timeframe setting was chosen to be 1 day, the indicator would plot the Previous High (PH) and Previous Low (PL) of the current symbol on the daily timeframe, denoted here by the black lines and labels. Then, the adjusted price of all selected symbols would be shown to visualize how each one is moving with respect its own PH and PL, using the current symbol's PH and PL as reference points.
In the above chart, we can see that CL was trading below its PDL from about 10:00-11:00 am EST, then broke above and retested it at around 11:20 am EST, before trading higher. To verify that this comparison works as intended, we can check to see that CL did in fact retest its PDL at this time before trading higher. Note that we are using the close price for this evaluation.
Since limiting the output to close prices can leave out some vital information, we can change the Plot Type setting from "Close" to "High to Low," which will instead show the range of prices from high to low instead of just the close.
We can expand on this by detecting when PH's and PL's have been raided (traded through), by displaying the text PHR (Previous High Raid) or PLR (Previous Low Raid) next to the symbol's label on the right. In this case below, where we're using the 1 week timeframe, we can observe that NQ1! (purple) traded through the PL level and thus its label (right) is updated to indicate a PLR.
Similarly, YM1! traded through its PH level and was updated to indicate a PHR; and ES1! raided both levels, with its label reflecting just that.
Due to the native limitation of output series in a single pine script, alerts have been consolidated to "Any PHR" or "Any PLR," meaning these alerts would fire if any of the selected symbols raided a PH or PL, respectively. If one wanted to be alerted for just a specific symbol, this could be achieved by deselecting all symbols except that which is desired, then setting an alert and adjusting its title for easier user recognition.
Period SeparatorA useful indicator designed to display vertical line separators at specified periods, for example every hour or every 4 hours.
To use this indicator, you must be in a timeframe lower than the specified timeframe on the indicator.
I haven't found any other scripts that allow for custom time frames so I created my own :)
Let me know if you have any suggestions.
Time Matrix TableICT stresses time and liquidity levels in his teachings. This table helps to easily locate these key Time-based price levels. You can use these levels to determine your directional bias and to help generate your narrative for where the market is going.
This indicator creates a table that gives you the price for the following liquidity levels:
PDO - Previous Day Open
PDH - Previous Day High
PDL - Previous Day Low
PDC - Previous Day Close
PDEQ - Equilibrium of the previous day's range. (Calculated by math.abs(((pdh-pdl)/2)+pdl))
PWH - Previous Week High
PWL - Previous Week Low
PDH2 - Two Days Back High
PDL2 - Two Days Back Low
PDH3 - Three Days Back High
PDL3 - Three Days Back Low
And gives you the opening price for the following times:
Daily Open - 6:00pm open for current session
1:30 AM
3:00 AM
4:00 AM
Midnight Open
6:00 AM
7:30 AM
8:30 AM
NY Open
10:00 AM
12:00 PM
NY PM - 1:30pm
2:00 PM
The levels are sorted descending in price in the table, with the background colored based on their relation to price. The prices are also plotted on the chart based on the range you specify in relation to the current price. These lines are also colored based on their relation to price.
This indicator does not give you anything but the price at a specific time, you must determine your own bias and narrative based on the levels that are given.
Back Week For BacktestIt is Backtest Calculator For Essential and Plus plan holders, the length of available intraday data is calculated as follows: from now to 6 weeks back multiplied by timeframe(in minutes), i.e. you can go 6 weeks back on the 1-minute chart, 12 weeks back on the 2-minute chart, 30 weeks back on the 5-minute chart, 90 weeks back on the 15-minute chart and so on. The higher timeframe is selected, the more intraday data is available.
This show creates a weekday label based on the data in the plans allowed by TradingView. This show creates a weekday label based on the data in the plans allowed by TradingView. How much data is available for Bar Replay? According to the article, we can replay 6 weeks backwards for a 1-minute chart. This indicator is a label that shows how far we can go back, consisting of multiplying each minute by 6 between 1 minute and 60 minutes.
1 minute => 6 week backtest
2 minutes => 12 week backtest
.....
15 minutes => 90 week backtest
...
59 minutes => 354 week backtest
commonThe "Pineify/common" library presents a specialized toolkit crafted to empower traders and script developers with state-of-the-art time manipulation functions on the TradingView platform. It is instead a foundational utility aimed at enriching your script's ability to process and interpret time-based data with unparalleled precision.
Key Features
String Splitter:
The 'str_split_into_two' function is a universal string handler that separates any given input into two distinct strings based on a specified delimiter. This function is especially useful in parsing time strings or any scenario where a string needs to be divided into logical parts efficiently.
Example:
= str_split_into_two("a:b", ":")
// a = "a"
// b = "b"
Time Parser:
With 'time_to_hour_minute', users can effortlessly convert a time string into numerical hours and minutes. This function is pivotal for those who need to exact specific time series data or wish to schedule their trades down to the minute.
Example:
= time_to_hour_minute("02:30")
// time_hour = 2
// time_minute = 30
Unix Time Converter
The 'time_range_to_unix_time' function transcends traditional boundaries by converting a given time range into Unix timestamp format. This integration of date, time, and timezone, accounts for a comprehensive approach, allowing scripts to make timed decisions, perform historical analyses, and account for international markets across different time zones.
Example:
// Support 'hhmm-hhmm' and 'hh:mm-hh:mm'
= time_range_to_unix_time("09:30-12:00")
Summary:
Each function is meticulously designed to minimize complexity and maximize versatility. Whether you are a programmer seeking to streamline your code, or a trader requiring precise timing for your strategies, our library provides the logical framework that aligns with your needs.
The "Pineify/common" library is the bridge between high-level time concepts and actionable trading insights. It serves a multitude of purposes – from crafting elegant time-based triggers to dissecting complex string data. Embrace the power of precision with "Pineify/common" and elevate your TradingView scripting experience to new heights.
Gradient Value Overlay
This script helps with identifying certain conditions without cluttering too much of the candles.
Some use cases:
It helps identify rsi low and high values.
Directional price movement becoming difficult.
low and high volume.
it uses a percent rank to distinguish low and high values.
It then uses a gradient to match the percentile rank to heatmap type colors.
i.e. dark blue for lowest volume, white for highest volume.
Current options are:
max bars to use.
approximate color - This value will attempt to give an approximation of what the color might be for the candle close.
e.g. If you're on the 1-hour chart, and only 30 minutes have past, it will multiple the current volume by 1.5. As time passes, if no volume comes in eventually, it will multiply current volume by 1.
This approximate value is only set to work with volume-based options.
option - select the type of value you'd like to see the gradient for.
timeframe - get values from a different chart timeframe.
on/off - turns the gradient on or off.
Gradient type - color wheel or heatmap. Currently these are the only two gardient options.
color wheel's colors for low to high values:
color wheel's current colors:
dark blue
purple
pink
red
orange
yellow
green
teal
white
heatmap's current colors from low values to high values:
dark blue
purple
pink
red
orange
yellow
white
reverse gradient - will reverse the colors so dark blue will be the high value and white will be the low value. Some charts based on previous data; you might need to switch the gradient colors.
moving average length while inside timeframe - an exponential moving average is applied to the values. At 1, there is no moving average applied.
Use case for this is to smooth out the gradient.
An example use case - if your currently on the 1-hour chart, you can set the timeframe to 1 minute and then the moving average length inside timeframe to 60. You will then be seeing the color sixty 1-minute bars.
current timeframe moving average length - an exponential moving average applied to current gradient (helps with smoothing gradient).
Smooth, further smooths values.
There is no set rule for what moving average lengths to use. Adjust timeframe, and moving average lengths to get an insight.
chrono_utilsLibrary "chrono_utils"
📝 Description
Collection of objects and common functions that are related to datetime windows session days and time ranges. The main purpose of this library is to handle time-related functionality and make it easy to reason about a future bar checking if it will be part of a predefined session and/or inside a datetime window. All existing session functionality I found in the documentation e.g. "not na(time(timeframe, session, timezone))" are not suitable for strategy scripts, since the execution of the orders is delayed by one bar, due to the script execution happening at the bar close. Moreover, a history operator with a negative value that looks forward is not allowed in any pinescript expression. So, a prediction for the next bar using the bars_back argument of "time()"" and "time_close()" was necessary. Thus, I created this library to overcome this small but very important limitation. In the meantime, I added useful functionality to handle session-based behavior. An interesting utility that emerged from this development is data anomaly detection where a comparison between the prediction and the actual value is happening. If those two values are different then a data inconsistency happens between the prediction bar and the actual bar (probably due to a holiday, half session day, a timezone change etc..)
🤔 How to Guide
To use the functionality this library provides in your script you have to import it first!
Copy the import statement of the latest release by pressing the copy button below and then paste it into your script. Give a short name to this library so you can refer to it later on. The import statement should look like this:
import jason5480/chrono_utils/2 as chr
To check if a future bar will be inside a window first of all you have to initialize a DateTimeWindow object.
A code example is the following:
var dateTimeWindow = chr.DateTimeWindow.new().init(fromDateTime = timestamp('01 Jan 2023 00:00'), toDateTime = timestamp('01 Jan 2024 00:00'))
Then you have to "ask" the dateTimeWindow if the future bar defined by an offset (default is 1 that corresponds th the next bar), will be inside that window:
// Filter bars outside of the datetime window
bool dateFilterApproval = dateTimeWindow.is_bar_included()
You can visualize the result by drawing the background of the bars that are outside the given window:
bgcolor(color = dateFilterApproval ? na : color.new(color.fuchsia, 90), offset = 1, title = 'Datetime Window Filter')
In the same way, you can "ask" the Session if the future bar defined by an offset it will be inside that session.
First of all, you should initialize a Session object.
A code example is the following:
var sess = chr.Session.new().from_sess_string(sess = '0800-1700:23456', refTimezone = 'UTC')
Then check if the given bar defined by the offset (default is 1 that corresponds th the next bar), will be inside the session like that:
// Filter bars outside the sessions
bool sessionFilterApproval = view.sess.is_bar_included()
You can visualize the result by drawing the background of the bars that are outside the given session:
bgcolor(color = sessionFilterApproval ? na : color.new(color.red, 90), offset = 1, title = 'Session Filter')
In case you want to visualize multiple session ranges you can create a SessionView object like that:
var view = SessionView.new().init(SessionDays.new().from_sess_string('2345'), array.from(SessionTimeRange.new().from_sess_string('0800-1600'), SessionTimeRange.new().from_sess_string('1300-2200')), array.from('London', 'New York'), array.from(color.blue, color.orange))
and then call the draw method of the SessionView object like that:
view.draw()
🏋️♂️ Please refer to the "EXAMPLE DATETIME WINDOW FILTER" and "EXAMPLE SESSION FILTER" regions of the script for more advanced code examples of how to utilize the full potential of this library, including user input settings and advanced visualization!
⚠️ Caveats
As I mentioned in the description there are some cases that the prediction of the next bar is not accurate. A wrong prediction will affect the outcome of the filtering. The main reasons this could happen are the following:
Public holidays when the market is closed
Half trading days usually before public holidays
Change in the daylight saving time (DST)
A data anomaly of the chart, where there are missing and/or inconsistent data.
A bug in this library (Please report by PM sending the symbol, timeframe, and settings)
Special thanks to @robbatt and @skinra for the constructive feedback 🏆. Without them, the exposed API of this library would be very lengthy and complicated to use. Thanks to them, now the user of this library will be able to get the most, with only a few lines of code!
ATH Drawdown Indicator by Atilla YurtsevenThe ATH (All-Time High) Drawdown Indicator, developed by Atilla Yurtseven, is an essential tool for traders and investors who seek to understand the current price position in relation to historical peaks. This indicator is especially useful in volatile markets like cryptocurrencies and stocks, offering insights into potential buy or sell opportunities based on historical price action.
This indicator is suitable for long-term investors. It shows the average value loss of a price. However, it's important to remember that this indicator only displays statistics based on past price movements. The price of a stock can remain cheap for many years.
1. Utility of the Indicator:
The ATH Drawdown Indicator provides a clear view of how far the current price is from its all-time high. This is particularly beneficial in assessing the magnitude of a pullback or retracement from peak levels. By understanding these levels, traders can gauge market sentiment and make informed decisions about entry and exit points.
2. Risk Management:
This indicator aids in risk management by highlighting significant drawdowns from the ATH. Traders can use this information to adjust their position sizes or set stop-loss orders more effectively. For instance, entering trades when the price is significantly below the ATH could indicate a higher potential for recovery, while a minimal drawdown from the ATH may suggest caution due to potential overvaluation.
3. Indicator Functionality:
The indicator calculates the percentage drawdown from the ATH for each trading period. It can display this data either as a line graph or overlaid on candles, based on user preference. Horizontal lines at -25%, -50%, -75%, and -100% drawdown levels offer quick visual cues for significant price levels. The color-coding of candles further aids in visualizing bullish or bearish trends in the context of ATH drawdowns.
4. ATH Level Indicator (0 Level):
A unique feature of this indicator is the 0 level, which signifies that the price is currently at its all-time high. This level is a critical reference point for understanding the market's peak performance.
5. Mean Line Indicator:
Additionally, this indicator includes a 'Mean Line', representing the average percentage drawdown from the ATH. This average is calculated over more than a thousand past bars, leveraging the law of large numbers to provide a reliable mean value. This mean line is instrumental in understanding the typical market behavior in relation to the ATH.
Disclaimer:
Please note that this ATH Drawdown Indicator by Atilla Yurtseven is provided as an open-source tool for educational purposes only. It should not be construed as investment advice. Users should conduct their own research and consult a financial advisor before making any investment decisions. The creator of this indicator bears no responsibility for any trading losses incurred using this tool.
Please remember to follow and comment!
Trade smart, stay safe
Atilla Yurtseven
ICT Time Indicator - MinimalisticThis indicator is intended to make backtesting and journaling a lot easier.
This script will automatically plot the sessions you selec.t
You don't have to worry about your timezone because this indicator will automatically handle that.
For best results please don't go any higher than the Hourly.
I aimed to keep this indicator very minimalistic to reduce the 'lipstick' on your chart.
Enabling any of the follow settings will quickly show you on your chart the times you want to be looking at:
Morning Session
Lunch
Afternoon Session
Marco 0950-1010
Marco 1050-1110
Marco 1450-1510
Silver Bullet London Open
Silver Bullet AM
Silver Bullet PM
You can also customize the color of any time session to suite your color scheme.
If you have any requests please leave a comment (I'm sure there are more marcos) :)
Personal Trading Hours (timezone Europe/Amsterdam)This Personal Trading Hours indicator is intended to specify the times you can trade and make them visible on the chart. Multiple sessions can be specified per specific day of the week and you can give each day its own color if you want.
This can be used perfectly if you are backtesting your strategy manually. You can indicate exactly when you have time to look at the charts and therefore only perform your backtest at those times. Making mistakes that you open en close trades during your sleeptime or worktime in your backtest are gone.
But this indicator is also suitable for live trading.
Filter out the times when you don't want to trade, for example during lunchtime, during opening hours of the exchanges or when you know that big news events will take place during your tradingweek. All the timesessions you do want to trade you can make visible on you chart.
The timezone that is used for this indicator is the timezone: Europe/Amsterdam and therefor only usable for traders in this timezone.
You can use this indicator for timeframes lower then the Daily timeframe with the normal settings. If you want to use this indicator on the Daily timeframe, all the settings in the upper part of the settingsmenu must be unchecked and only the part at the bottom of the settingsmenu can then be used.
This indicator doesn't work on timeframes higher than the Daily timeframe.
If you do not use all the tradingsessions on each day, you have to make sure that all the boxes are filled. So unused session boxes must have the same timeperiodes as the used boxes, otherwise the whole day will be highlighted on the chart.
Realtime Divergence for Any Indicator - By John BartleThe main purpose of this script is to show historical and real-time divergences for any oscillating indicator. The secondary purpose is to give the user a lot of precise control over identifying divergences and determining what they are. This is an improved version of my other script which is similarly called "Realtime Divergence for Any Indicator"
There are four types of divergences that are offered:
Bull divergence
Hidden bull divergence
Bear divergence
Hidden Bear divergence
There are three types of potential(real-time) divergences which include:
1) Without right side bars for rightside pivots. Plus without waiting for the rightside pivot bar to complete
2) Without right side bars for rightside pivots. Plus with waiting for the rightside pivot bar to complete
3) With right side bars for rightside pivots. Plus without waiting for the rightside pivot right-most bar to complete
A definite divergence occurs when all specified bars are accounted for and fully formed.
Potential divergences use dashed lines and definite(historical) divergences use solid lines.
In addition to several other categories of settings to filter out unwanted divergences or manipulate the search process, this script also offers Alerts. Remember that alerts must not only be set within this scripts settings but also your "Alerts" panel on your right. It's strange but BOTH must be set for alerts to work...
Other interesting Things To Know:
1)I actually don't trade and so I have no need of a paid account. Unpaid accounts don't have the playback feature so I haven't really tested this script out very well. Sorry. Just let me know if something seems off and IF I have time I'll try to fix it.
2)Keep in mind that Pinescript limits the number of lines that can be shown at one time. This means that if your settings allow for a large number of divergence lines they will be removed from the leftward side of your chart but appear in the rightward side.
3) The time and the values for the price or oscillator are not the same things as each other nor are they physical things with physical space. This means that slopes of lines using the time as X and value as Y can not have definite angles. Consequently, under the setting "DIVERGENCES: SLOPE ANGLE EXCLUSION" YOU have to decide what slope equals what angle by using the setting called "Normalization Factor".
4) Remember that some individual settings apply to both the oscillator and price chart. This means that even if the setting's conditions are fulfilled in one they may not be fulfilled in the other.
5) Under the category "DIVERGENCES: INTERSECTION ALLOWANCE", if you set the "Measurement Type" to Relative Percentage then FYI any single given length will equate to an increasingly smaller percentage the further away from zero it is. Because of this, I think "Reletive Percentage" is probably only useful for price charts or oscillators with big values. Maybe >200 is OK ?
Errors:
1) If you get the error mentioning that the script must complete execution within X amount of time, this is because this is a big script and sometimes takes longer than your service plan's allotted time limit. You can just disable some of the settings to reduce the scripts amount of work and time. The biggest time savers will be to disable some lines and labels
2) If you get an error saying the script accessed a negative index(e.g. ) then try temporarily increasing the "Add More Array Elements" setting to 100-200. Sometimes it fixes the problem.
3) You may sometimes temporarily get an error that reads: "Pine cannot determine the referencing length of a series. Try using max_bars_back in the study or strategy function".
If this happens there are several things that you can do:
3A) Create a copy of my script. Then edit the section of code that looks like this ")//, max_bars_back = INSERT_YOUR_QUANTITY_HERE)" and transform it to look like this new code ", max_bars_back = INSERT_YOUR_QUANTITY_HERE)" then repeatedly try replacing "INSERT_YOUR_QUANTITY_HERE" with an increasingly larger number greater than 244 but less than 5000.
This method will increase your system resources and could cause other problems. Try changing the code back after a few hours and see if all is well again. It is a Pinescript limitation issue and happens when certain functions or variables don't get used at least once within the first 244 bars.
3B) Adjust your settings to hopefully find a divergence within the first 244 bars. If one is found then the problematic variables or functions should get used and the Pinescript 244 bar limitation should be temporarily resolved.
3C) Wait for X number of new bars to occur. If a divergence is eventually found within the first 244 bars that should solve the issue.
Tips:
1) If the amount that a setting changes value is undesirable for each time you click it then you can change that amount in the code. To do that, you'll need your own copy of my script. To make your own copy just click on "create a working copy" in the brown colored strip area above the code. Then within approximately the first 108 lines find the title of the setting you want to change. Then look to it's right to find the parameter called "step =". Change what the step equals to whatever you want. FYI, you can hover your mouse over the blue colored code and a popup will tell you what parameters(i.e. settings) that function(e.g. "input.int()") has available.
Papercuts Time Sampled Higher Timeframe EMA Without SecurityThis EMA uses a higher time sampled method instead of using security to gather higher timeframe data.
Its quite fast and worked well with the timeframes prescribed, up to 8hrs, after 8hrs, the formatting gets more complicated and i probably wouldn't use it anyway.
You can use this as a guide to avoid security and even f_security with this method.
NOTE: This includes the non repainting f_security call so that i woudl be able to check my results against what it does, thats not nessecary to keep at all.
There is some minor differences in data, but its so minor it doesnt bother me, though it would be interesting to know what the difference actually is. If anyone figures that out, leave a comment and let me know!
This is meant to be an example for others to build and learn and play with.. so enjoy!