chrono_utilsLibrary "chrono_utils"
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 and see if it is part of a predefined user session and/or inside a datetime window. All existing session
functions I found in the documentation e.g. "not na(time(timeframe, session, timezone))" are not suitable for
strategies, since the execution of the orders is delayed by one bar due to the execution happening at the bar close.
So a prediction for the next bar is necessary. Moreover, a history operator with a negative value is not allowed e.g.
`not na(time(timeframe, session, timezone) )` expression is not valid. 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 or half session day etc..)
exTimezone(timezone)
exTimezone - Convert extended timezone to timezone string
Parameters:
timezone (simple string) : - The timezone or a special string
Returns: string representing the timezone
nameOfDay(day)
nameOfDay - Convert the day id into a short nameOfDay
Parameters:
day (int) : - The day id to convert
Returns: - The short name of the day
today()
today - Get the day id of this day
Returns: - The day id
nthDayAfter(day, n)
nthDayAfter - Get the day id of n days after the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days after the reference day
nextDayAfter(day)
nextDayAfter - Get the day id of next day after the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the next day after the reference day
nthDayBefore(day, n)
nthDayBefore - Get the day id of n days before the given day
Parameters:
day (int) : - The day id of the reference day
n (int) : - The number of days to go forward
Returns: - The day id of the day that is n days before the reference day
prevDayBefore(day)
prevDayBefore - Get the day id of previous day before the given day
Parameters:
day (int) : - The day id of the reference day
Returns: - The day id of the previous day before the reference day
tomorrow()
tomorrow - Get the day id of the next day
Returns: - The next day day id
normalize(num, min, max)
normalizeHour - Check if number is inthe range of
Parameters:
num (int)
min (int)
max (int)
Returns: - The normalized number
normalizeHour(hourInDay)
normalizeHour - Check if hour is valid and return a noralized hour range from
Parameters:
hourInDay (int)
Returns: - The normalized hour
normalizeMinute(minuteInHour)
normalizeMinute - Check if minute is valid and return a noralized minute from
Parameters:
minuteInHour (int)
Returns: - The normalized minute
monthInMilliseconds(mon)
monthInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Parameters:
mon (int) : - The month of reference to get the miliseconds
Returns: - The number of milliseconds of the month
barInMilliseconds()
barInMilliseconds - Calculate the miliseconds in one bar of the timeframe
Returns: - The number of milliseconds in one bar
method init(this, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, refTimezone, chTimezone, fromDateTime, toDateTime)
init - Initialize the time window object from boolean values of each session day
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object that will hold the from and to datetimes
refTimezone (simple string) : - The timezone of reference of the 'from' and 'to' dates
chTimezone (simple string) : - The target timezone to convert the 'from' and 'to' dates
fromDateTime (int) : - The starting datetime of the time window
toDateTime (int) : - The ending datetime of the time window
Returns: - The time window object
method init(this, sun, mon, tue, wed, thu, fri, sat)
init - Initialize the session days object from boolean values of each session day
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sun (bool) : - Is Sunday a trading day?
mon (bool) : - Is Monday a trading day?
tue (bool) : - Is Tuesday a trading day?
wed (bool) : - Is Wednesday a trading day?
thu (bool) : - Is Thursday a trading day?
fri (bool) : - Is Friday a trading day?
sat (bool) : - Is Saturday a trading day?
Returns: - The session days objectfrom_chart
method init(this, unixTime)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
unixTime (int) : - The unix time
Returns: - The session time object
method init(this, hourInDay, minuteInHour)
init - Initialize the object from the hour and minute of the session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
Returns: - The session time object
method init(this, hourInDay, minuteInHour, refTimezone)
init - Initialize the object from the hour and minute of the session time
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
hourInDay (int) : - The hour of the time
minuteInHour (int) : - The minute of the time
refTimezone (string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method init(this, startTime, endTime)
init - Initialize the object from the start and end session time in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTime (SessionTime) : - The time the session begins
endTime (SessionTime) : - The time the session ends
Returns: - The session time range object
method init(this, startTimeHour, startTimeMinute, endTimeHour, endTimeMinute, refTimezone)
init - Initialize the object from the start and end session time
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
startTimeHour (int) : - The time hour the session begins
startTimeMinute (int) : - The time minute the session begins
endTimeHour (int) : - The time hour the session ends
endTimeMinute (int) : - The time minute the session ends
refTimezone (string)
Returns: - The session time range object
method init(this, days, timeRanges)
init - Initialize the user session object from session days and time range
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
days (SessionDays) : - The session days object that defines the days the session is happening
timeRanges (SessionTimeRange ) : - The array of all the session time ranges during a session day
Returns: - The user session object
method to_string(this)
to_string - Formats the time window into a human-readable string
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The string of the time window
method to_string(this)
to_string - Formats the session days into a human-readable string with short day names
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The string of the session day short names
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_string(this)
to_string - Formats the session time into a human-readable string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_string(this)
to_string - Formats the user session into a human-readable string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_string(this)
to_string - Formats the bar into a human-readable string
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The string of the bar times
method to_string(this)
to_string - Formats the chart session into a human-readable string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method get_size_in_secs(this)
get_size_in_secs - Count the seconds from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of seconds inside the time widow for the given timeframe
method get_size_in_secs(this)
get_size_in_secs - Calculate the seconds inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of seconds inside the session
method get_size_in_bars(this)
get_size_in_bars - Count the bars from start to end in the given timeframe
Namespace types: DateTimeWindow
Parameters:
this (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - The number of bars inside the time widow for the given timeframe
method get_size_in_bars(this)
get_size_in_bars - Calculate the bars inside the session
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The number of bars inside the session for the given timeframe
method from_chart(this)
from_chart - Initialize the session days object from the chart
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
Returns: - The user session object
method from_chart(this)
from_chart - Initialize the session time range object from the chart
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
Returns: - The session time range object
method from_chart(this)
from_chart - Initialize the session object from the chart
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that will hold the days and the time range shown in the chart
Returns: - The chart session object
method to_sess_string(this)
to_sess_string - Formats the session days into a session string with day ids
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object
Returns: - The string of the session day ids
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the session time into a session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - The string of the session time
method to_sess_string(this)
to_sess_string - Formats the user session into a session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - The string of the user session
method to_sess_string(this)
to_sess_string - Formats the chart session into a session string
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
Returns: - The string of the chart session
method from_sess_string(this, sess)
from_sess_string - Initialize the session days object from the session string
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object that will hold the day selection
sess (string) : - The session string part that represents the days
Returns: - The session days object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
Returns: - The session time object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time object from the session string
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object that will hold the hour and minute of the time
sess (string) : - The session string part that represents the time HHmm
refTimezone (simple string) : - The timezone of reference of the 'hour' and 'minute'
Returns: - The session time object
method from_sess_string(this, sess)
from_sess_string - Initialize the session time range object from the session string in exchange timezone (syminfo.timezone)
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the session time range object from the session string
Namespace types: SessionTimeRange
Parameters:
this (SessionTimeRange) : - The session time range object that will hold the start and end time of the daily session
sess (string) : - The session string part that represents the time range HHmm-HHmm
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method from_sess_string(this, sess)
from_sess_string - Initialize the user session object from the session string in exchange timezone (syminfo.timezone)
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
Returns: - The session time range object
method from_sess_string(this, sess, refTimezone)
from_sess_string - Initialize the user session object from the session string
Namespace types: UserSession
Parameters:
this (UserSession) : - The user-defined session object that will hold the day and the time range selection
sess (string) : - The session string that represents the user session HHmm-HHmm,HHmm-HHmm:ddddddd
refTimezone (simple string) : - The timezone of reference of the time ranges
Returns: - The session time range object
method nth_day_after(this, day, n)
nth_day_after - The nth day after the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week after the given day
method nth_day_before(this, day, n)
nth_day_before - The nth day before the given day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
day (int) : - The day id of the reference day
n (int) : - The number of days after
Returns: - The day id of the nth session day of the week before the given day
method next_day(this)
next_day - The next day that is a session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the next session day of the week
method previous_day(this)
previous_day - The previous day that is session day (true) in the object
Namespace types: SessionDays
Parameters:
this (SessionDays) : - The session days object with the day selection
Returns: - The day id of the previous session day of the week
method get_sec_in_day(this)
get_sec_in_day - Count the seconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of seconds passed from the start of the day until that session time
method get_ms_in_day(this)
get_ms_in_day - Count the milliseconds since the start of the day this session time represents
Namespace types: SessionTime
Parameters:
this (SessionTime) : - The session time object with the hour and minute of the time of the day
Returns: - The number of milliseconds passed from the start of the day until that session time
method eq(this, other)
eq - Compare two bars
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
other (Bar) : - The bar object to compare with
Returns: - Whether this bar is equal to the other one
method get_open_time(this)
get_open_time - The open time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The open time object
method get_close_time(this)
get_close_time - The close time object
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The close time object
method get_time_range(this)
get_time_range - Get the time range of the bar
Namespace types: Bar
Parameters:
this (Bar) : - The bar object with the open and close times
Returns: - The time range that the bar is in
getBarNow()
getBarNow - Get the current bar object with time and time_close timestamps
Returns: - The current bar
getFixedBarNow()
getFixedBarNow - Get the current bar with fixed width defined by the timeframe. Note: There are case like SPX 15min timeframe where the last session bar is only 10min. This will return a bar of 15 minutes
Returns: - The current bar
method is_in_window(this, win)
is_in_window - Check if the given bar is between the start and end dates of the window
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes of the window
win (DateTimeWindow) : - The time window object with the from and to datetimes
Returns: - Whether the current bar is inside the datetime window
method is_in_timerange(this, rng)
is_in_timerange - Check if the given bar is inside the session time range
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
rng (SessionTimeRange) : - The session time range object with the start and end time of the daily session
Returns: - Whether the bar is inside the session time range and if this part of the next trading day
method is_in_days(this, days)
is_in_days - Check if the given bar is inside the session days
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if its day is a trading day
days (SessionDays) : - The session days object with the day selection
Returns: - Whether the current bar day is inside the session
method is_in_session(this, sess)
is_in_session - Check if the given bar is inside the session as defined by the input params (what "not na(time(timeframe.period, this.to_sess_string()) )" should return if you could write it
Namespace types: Bar
Parameters:
this (Bar) : - The bar to check if it is between the from and to datetimes
sess (UserSession) : - The user-defined session object with the day and the time range selection
Returns: - Whether the current time is inside the session
method next_bar(this, offsetBars)
next_bar - Predicts the next bars open and close time based on the charts session
Namespace types: ChartSession
Parameters:
this (ChartSession) : - The chart session object that contains the days and the time range shown in the chart
offsetBars (simple int) : - The number of bars forward
Returns: - Whether the current time is inside the session
DateTimeWindow
DateTimeWindow - Object that represents a datetime window with a beginning and an end
Fields:
fromDateTime (series int) : - The beginning of the datetime window
toDateTime (series int) : - The end of the datetime window
SessionDays
SessionDays - Object that represent the trading days of the week
Fields:
days (map) : - The map that contains all days of the week and their session flag
SessionTime
SessionTime - Object that represents the time (hour and minutes)
Fields:
hourInDay (series int) : - The hour of the day that ranges from 0 to 24
minuteInHour (series int) : - The minute of the hour that ranges from 0 to 59
minuteInDay (series int) : - The minute of the day that ranges from 0 to 1440. They will be calculated based on hourInDay and minuteInHour when method is called
SessionTimeRange
SessionTimeRange - Object that represents a range that extends from the start to the end time
Fields:
startTime (SessionTime) : - The beginning of the time range
endTime (SessionTime) : - The end of the time range
isOvernight (series bool) : - Whether or not this is an overnight time range
UserSession
UserSession - Object that represents a user-defined session
Fields:
days (SessionDays) : - The map of the user-defined trading days
timeRanges (SessionTimeRange ) : - The array with all time ranges of the user-defined session during the trading days
Bar
Bar - Object that represents the bars' open and close times
Fields:
openUnixTime (series int) : - The open time of the bar
closeUnixTime (series int) : - The close time of the bar
chartDayOfWeek (series int)
ChartSession
ChartSession - Object that represents the default session that is shown in the chart
Fields:
days (SessionDays) : - A map with the trading days shown in the chart
timeRange (SessionTimeRange) : - The time range of the session during a trading day
isFinalized (series bool)
在腳本中搜尋"daily"
Opening/Closing Highs and LowsDescription:
This indicator tracks the daily, monthly, and yearly opening, closing, highs, and lows in the stock market. It's designed to display crucial price points within different time frames, aiding traders in assessing significant market movements.
Features:
Daily View: Shows the opening, closing, highest, and lowest prices within each trading day.
Monthly Overview: Highlights the monthly opening, closing, highs, and lows to offer insights into broader market trends.
Yearly Perspective: Presents the annual opening, closing, highs, and lows, aiding in long-term market analysis.
How to Use:
Daily Analysis: Monitor daily fluctuations and spot intraday trends by observing the daily opening/closing ranges.
Monthly Trends: Identify monthly patterns by reviewing the monthly opening/closing levels.
Yearly Insights: Gain a broader perspective on yearly market movements by analyzing the annual highs and lows
Market SessionsMarket Sessions Indicator Overview:
The "Market Sessions" indicator is a powerful tool designed to enhance traders' insights by providing comprehensive information about key market sessions, daily high/low values, and important exponential moving averages (EMAs) directly on the trading chart.
Key Features:
Market Sessions Display:
Visually represents Sydney/Tokyo, London, and New York sessions using distinct color-coded shapes.
Enhances visibility by dynamically changing the background color during specific trading sessions.
Daily High/Low:
Plots and labels the high and low values of the previous trading day on the chart.
Customizable colors for daily high and low markers.
Exponential Moving Averages (EMAs):
Includes 20, 50, and 200-period EMAs for comprehensive trend analysis.
Users have the flexibility to customize the visibility and color of each EMA.
Dashboard Information:
Real-time information about the current and upcoming market sessions.
Displays the time remaining for the upcoming session, aiding in timely decision-making.
Stock Session Information:
Clearly marks open and close times for Asia, Euro, and USA stock sessions.
Customizable visibility options for stock open/close lines, allowing for a tailored chart display.
Usage Guidelines:
Market Session Identification: Easily identify distinct market sessions using color-coded shapes and background color changes.
Daily Analysis: Quickly reference labeled lines for the high and low values of the previous trading day.
Trend Analysis: Observe the plotted EMAs on the chart for insights into the prevailing trends.
Real-time Monitoring: Utilize the dashboard for real-time information on current and upcoming sessions.
Stock Session Details: Identify specific open and close times for stock sessions, aiding in strategic planning.
Customization Options:
User-Friendly Parameters: Customize visibility, color, and positioning based on individual preferences.
Dashboard Configuration: Adjust dashboard position, text placement, and EMA parameters to tailor the indicator to specific needs.
Backtesting Feature:
The indicator includes a backtest feature, allowing users to visualize past sessions for testing and refining trading strategies.
This Market Sessions Indicator provides traders with a holistic view of market dynamics, facilitating informed decision-making and enhancing overall trading experiences.
Supertrend Advance Pullback StrategyHandbook for the Supertrend Advance Strategy
1. Introduction
Purpose of the Handbook:
The main purpose of this handbook is to serve as a comprehensive guide for traders and investors who are looking to explore and harness the potential of the Supertrend Advance Strategy. In the rapidly changing financial market, having the right tools and strategies at one's disposal is crucial. Whether you're a beginner hoping to dive into the world of trading or a seasoned investor aiming to optimize and diversify your portfolio, this handbook offers the insights and methodologies you need. By the end of this guide, readers should have a clear understanding of how the Supertrend Advance Strategy works, its benefits, potential pitfalls, and practical application in various trading scenarios.
Overview of the Supertrend Advance Pullback Strategy:
At its core, the Supertrend Advance Strategy is an evolution of the popular Supertrend Indicator. Designed to generate buy and sell signals in trending markets, the Supertrend Indicator has been a favorite tool for many traders around the world. The Advance Strategy, however, builds upon this foundation by introducing enhanced mechanisms, filters, and methodologies to increase precision and reduce false signals.
1. Basic Concept:
The Supertrend Advance Strategy relies on a combination of price action and volatility to determine the potential trend direction. By assessing the average true range (ATR) in conjunction with specific price points, this strategy aims to highlight the potential starting and ending points of market trends.
2. Methodology:
Unlike the traditional Supertrend Indicator, which primarily focuses on closing prices and ATR, the Advance Strategy integrates other critical market variables, such as volume, momentum oscillators, and perhaps even fundamental data, to validate its signals. This multidimensional approach ensures that the generated signals are more reliable and are less prone to market noise.
3. Benefits:
One of the main benefits of the Supertrend Advance Strategy is its ability to filter out false breakouts and minor price fluctuations, which can often lead to premature exits or entries in the market. By waiting for a confluence of factors to align, traders using this advanced strategy can increase their chances of entering or exiting trades at optimal points.
4. Practical Applications:
The Supertrend Advance Strategy can be applied across various timeframes, from intraday trading to swing trading and even long-term investment scenarios. Furthermore, its flexible nature allows it to be tailored to different asset classes, be it stocks, commodities, forex, or cryptocurrencies.
In the subsequent sections of this handbook, we will delve deeper into the intricacies of this strategy, offering step-by-step guidelines on its application, case studies, and tips for maximizing its efficacy in the volatile world of trading.
As you journey through this handbook, we encourage you to approach the Supertrend Advance Strategy with an open mind, testing and tweaking it as per your personal trading style and risk appetite. The ultimate goal is not just to provide you with a new tool but to empower you with a holistic strategy that can enhance your trading endeavors.
2. Getting Started
Navigating the financial markets can be a daunting task without the right tools. This section is dedicated to helping you set up the Supertrend Advance Strategy on one of the most popular charting platforms, TradingView. By following the steps below, you'll be able to integrate this strategy into your charts and start leveraging its insights in no time.
Setting up on TradingView:
TradingView is a web-based platform that offers a wide range of charting tools, social networking, and market data. Before you can apply the Supertrend Advance Strategy, you'll first need a TradingView account. If you haven't set one up yet, here's how:
1. Account Creation:
• Visit TradingView's official website.
• Click on the "Join for free" or "Sign up" button.
• Follow the registration process, providing the necessary details and setting up your login credentials.
2. Navigating the Dashboard:
• Once logged in, you'll be taken to your dashboard. Here, you'll see a variety of tools, including watchlists, alerts, and the main charting window.
• To begin charting, type in the name or ticker of the asset you're interested in the search bar at the top.
3. Configuring Chart Settings:
• Before integrating the Supertrend Advance Strategy, familiarize yourself with the chart settings. This can be accessed by clicking the 'gear' icon on the top right of the chart window.
• Adjust the chart type, time intervals, and other display settings to your preference.
Integrating the Strategy into a Chart:
Now that you're set up on TradingView, it's time to integrate the Supertrend Advance Strategy.
1. Accessing the Pine Script Editor:
• Located at the top-center of your screen, you'll find the "Pine Editor" tab. Click on it.
• This is where custom strategies and indicators are scripted or imported.
2. Loading the Supertrend Advance Strategy Script:
• Depending on whether you have the script or need to find it, there are two paths:
• If you have the script: Copy the Supertrend Advance Strategy script, and then paste it into the Pine Editor.
• If searching for the script: Click on the “Indicators” icon (looks like a flame) at the top of your screen, and then type “Supertrend Advance Strategy” in the search bar. If available, it will show up in the list. Simply click to add it to your chart.
3. Applying the Strategy:
• After pasting or selecting the Supertrend Advance Strategy in the Pine Editor, click on the “Add to Chart” button located at the top of the editor. This will overlay the strategy onto your main chart window.
4. Configuring Strategy Settings:
• Once the strategy is on your chart, you'll notice a small settings ('gear') icon next to its name in the top-left of the chart window. Click on this to access settings.
• Here, you can adjust various parameters of the Supertrend Advance Strategy to better fit your trading style or the specific asset you're analyzing.
5. Interpreting Signals:
• With the strategy applied, you'll now see buy/sell signals represented on your chart. Take time to familiarize yourself with how these look and behave over various timeframes and market conditions.
3. Strategy Overview
What is the Supertrend Advance Strategy?
The Supertrend Advance Strategy is a refined version of the classic Supertrend Indicator, which was developed to aid traders in spotting market trends. The strategy utilizes a combination of data points, including average true range (ATR) and price momentum, to generate buy and sell signals.
In essence, the Supertrend Advance Strategy can be visualized as a line that moves with the price. When the price is above the Supertrend line, it indicates an uptrend and suggests a potential buy position. Conversely, when the price is below the Supertrend line, it hints at a downtrend, suggesting a potential selling point.
Strategy Goals and Objectives:
1. Trend Identification: At the core of the Supertrend Advance Strategy is the goal to efficiently and consistently identify prevailing market trends. By recognizing these trends, traders can position themselves to capitalize on price movements in their favor.
2. Reducing Noise: Financial markets are often inundated with 'noise' - short-term price fluctuations that can mislead traders. The Supertrend Advance Strategy aims to filter out this noise, allowing for clearer decision-making.
3. Enhancing Risk Management: With clear buy and sell signals, traders can set more precise stop-loss and take-profit points. This leads to better risk management and potentially improved profitability.
4. Versatility: While primarily used for trend identification, the strategy can be integrated with other technical tools and indicators to create a comprehensive trading system.
Type of Assets/Markets to Apply the Strategy:
1. Equities: The Supertrend Advance Strategy is highly popular among stock traders. Its ability to capture long-term trends makes it particularly useful for those trading individual stocks or equity indices.
2. Forex: Given the 24-hour nature of the Forex market and its propensity for trends, the Supertrend Advance Strategy is a valuable tool for currency traders.
3. Commodities: Whether it's gold, oil, or agricultural products, commodities often move in extended trends. The strategy can help in identifying and capitalizing on these movements.
4. Cryptocurrencies: The volatile nature of cryptocurrencies means they can have pronounced trends. The Supertrend Advance Strategy can aid crypto traders in navigating these often tumultuous waters.
5. Futures & Options: Traders and investors in derivative markets can utilize the strategy to make more informed decisions about contract entries and exits.
It's important to note that while the Supertrend Advance Strategy can be applied across various assets and markets, its effectiveness might vary based on market conditions, timeframe, and the specific characteristics of the asset in question. As always, it's recommended to use the strategy in conjunction with other analytical tools and to backtest its effectiveness in specific scenarios before committing to trades.
4. Input Settings
Understanding and correctly configuring input settings is crucial for optimizing the Supertrend Advance Strategy for any specific market or asset. These settings, when tweaked correctly, can drastically impact the strategy's performance.
Grouping Inputs:
Before diving into individual input settings, it's important to group similar inputs. Grouping can simplify the user interface, making it easier to adjust settings related to a specific function or indicator.
Strategy Choice:
This input allows traders to select from various strategies that incorporate the Supertrend indicator. Options might include "Supertrend with RSI," "Supertrend with MACD," etc. By choosing a strategy, the associated input settings for that strategy become available.
Supertrend Settings:
1. Multiplier: Typically, a default value of 3 is used. This multiplier is used in the ATR calculation. Increasing it makes the Supertrend line further from prices, while decreasing it brings the line closer.
2. Period: The number of bars used in the ATR calculation. A common default is 7.
EMA Settings (Exponential Moving Average):
1. Period: Defines the number of previous bars used to calculate the EMA. Common periods are 9, 21, 50, and 200.
2. Source: Allows traders to choose which price (Open, Close, High, Low) to use in the EMA calculation.
RSI Settings (Relative Strength Index):
1. Length: Determines how many periods are used for RSI calculation. The standard setting is 14.
2. Overbought Level: The threshold at which the asset is considered overbought, typically set at 70.
3. Oversold Level: The threshold at which the asset is considered oversold, often at 30.
MACD Settings (Moving Average Convergence Divergence):
1. Short Period: The shorter EMA, usually set to 12.
2. Long Period: The longer EMA, commonly set to 26.
3. Signal Period: Defines the EMA of the MACD line, typically set at 9.
CCI Settings (Commodity Channel Index):
1. Period: The number of bars used in the CCI calculation, often set to 20.
2. Overbought Level: Typically set at +100, denoting overbought conditions.
3. Oversold Level: Usually set at -100, indicating oversold conditions.
SL/TP Settings (Stop Loss/Take Profit):
1. SL Multiplier: Defines the multiplier for the average true range (ATR) to set the stop loss.
2. TP Multiplier: Defines the multiplier for the average true range (ATR) to set the take profit.
Filtering Conditions:
This section allows traders to set conditions to filter out certain signals. For example, one might only want to take buy signals when the RSI is below 30, ensuring they buy during oversold conditions.
Trade Direction and Backtest Period:
1. Trade Direction: Allows traders to specify whether they want to take long trades, short trades, or both.
2. Backtest Period: Specifies the time range for backtesting the strategy. Traders can choose from options like 'Last 6 months,' 'Last 1 year,' etc.
It's essential to remember that while default settings are provided for many of these tools, optimal settings can vary based on the market, timeframe, and trading style. Always backtest new settings on historical data to gauge their potential efficacy.
5. Understanding Strategy Conditions
Developing an understanding of the conditions set within a trading strategy is essential for traders to maximize its potential. Here, we delve deep into the logic behind these conditions, using the Supertrend Advance Strategy as our focal point.
Basic Logic Behind Conditions:
Every strategy is built around a set of conditions that provide buy or sell signals. The conditions are based on mathematical or statistical methods and are rooted in the study of historical price data. The fundamental idea is to recognize patterns or behaviors that have been profitable in the past and might be profitable in the future.
Buy and Sell Conditions:
1. Buy Conditions: Usually formulated around bullish signals or indicators suggesting upward price momentum.
2. Sell Conditions: Centered on bearish signals or indicators indicating downward price momentum.
Simple Strategy:
The simple strategy could involve using just the Supertrend indicator. Here:
• Buy: When price closes above the Supertrend line.
• Sell: When price closes below the Supertrend line.
Pullback Strategy:
This strategy capitalizes on price retracements:
• Buy: When the price retraces to the Supertrend line after a bullish signal and is supported by another bullish indicator.
• Sell: When the price retraces to the Supertrend line after a bearish signal and is confirmed by another bearish indicator.
Indicators Used:
EMA (Exponential Moving Average):
• Logic: EMA gives more weight to recent prices, making it more responsive to current price movements. A shorter-period EMA crossing above a longer-period EMA can be a bullish sign, while the opposite is bearish.
RSI (Relative Strength Index):
• Logic: RSI measures the magnitude of recent price changes to analyze overbought or oversold conditions. Values above 70 are typically considered overbought, and values below 30 are considered oversold.
MACD (Moving Average Convergence Divergence):
• Logic: MACD assesses the relationship between two EMAs of a security’s price. The MACD line crossing above the signal line can be a bullish signal, while crossing below can be bearish.
CCI (Commodity Channel Index):
• Logic: CCI compares a security's average price change with its average price variation. A CCI value above +100 may mean the price is overbought, while below -100 might signify an oversold condition.
And others...
As the strategy expands or contracts, more indicators might be added or removed. The crucial point is to understand the core logic behind each, ensuring they align with the strategy's objectives.
Logic Behind Each Indicator:
1. EMA: Emphasizes recent price movements; provides dynamic support and resistance levels.
2. RSI: Indicates overbought and oversold conditions based on recent price changes.
3. MACD: Showcases momentum and direction of a trend by comparing two EMAs.
4. CCI: Measures the difference between a security's price change and its average price change.
Understanding strategy conditions is not just about knowing when to buy or sell but also about comprehending the underlying market dynamics that those conditions represent. As you familiarize yourself with each condition and indicator, you'll be better prepared to adapt and evolve with the ever-changing financial markets.
6. Trade Execution and Management
Trade execution and management are crucial aspects of any trading strategy. Efficient execution can significantly impact profitability, while effective management can preserve capital during adverse market conditions. In this section, we'll explore the nuances of position entry, exit strategies, and various Stop Loss (SL) and Take Profit (TP) methodologies within the Supertrend Advance Strategy.
Position Entry:
Effective trade entry revolves around:
1. Timing: Enter at a point where the risk-reward ratio is favorable. This often corresponds to confirmatory signals from multiple indicators.
2. Volume Analysis: Ensure there's adequate volume to support the movement. Volume can validate the strength of a signal.
3. Confirmation: Use multiple indicators or chart patterns to confirm the entry point. For instance, a buy signal from the Supertrend indicator can be confirmed with a bullish MACD crossover.
Position Exit Strategies:
A successful exit strategy will lock in profits and minimize losses. Here are some strategies:
1. Fixed Time Exit: Exiting after a predetermined period.
2. Percentage-based Profit Target: Exiting after a certain percentage gain.
3. Indicator-based Exit: Exiting when an indicator gives an opposing signal.
Percentage-based SL/TP:
• Stop Loss (SL): Set a fixed percentage below the entry price to limit potential losses.
• Example: A 2% SL on an entry at $100 would trigger a sell at $98.
• Take Profit (TP): Set a fixed percentage above the entry price to lock in gains.
• Example: A 5% TP on an entry at $100 would trigger a sell at $105.
Supertrend-based SL/TP:
• Stop Loss (SL): Position the SL at the Supertrend line. If the price breaches this line, it could indicate a trend reversal.
• Take Profit (TP): One could set the TP at a point where the Supertrend line flattens or turns, indicating a possible slowdown in momentum.
Swing high/low-based SL/TP:
• Stop Loss (SL): For a long position, set the SL just below the recent swing low. For a short position, set it just above the recent swing high.
• Take Profit (TP): For a long position, set the TP near a recent swing high or resistance. For a short position, near a swing low or support.
And other methods...
1. Trailing Stop Loss: This dynamic SL adjusts with the price movement, locking in profits as the trade moves in your favor.
2. Multiple Take Profits: Divide the position into segments and set multiple TP levels, securing profits in stages.
3. Opposite Signal Exit: Exit when another reliable indicator gives an opposite signal.
Trade execution and management are as much an art as they are a science. They require a blend of analytical skill, discipline, and intuition. Regularly reviewing and refining your strategies, especially in light of changing market conditions, is crucial to maintaining consistent trading performance.
7. Visual Representations
Visual tools are essential for traders, as they simplify complex data into an easily interpretable format. Properly analyzing and understanding the plots on a chart can provide actionable insights and a more intuitive grasp of market conditions. In this section, we’ll delve into various visual representations used in the Supertrend Advance Strategy and their significance.
Understanding Plots on the Chart:
Charts are the primary visual aids for traders. The arrangement of data points, lines, and colors on them tell a story about the market's past, present, and potential future moves.
1. Data Points: These represent individual price actions over a specific timeframe. For instance, a daily chart will have data points showing the opening, closing, high, and low prices for each day.
2. Colors: Used to indicate the nature of price movement. Commonly, green is used for bullish (upward) moves and red for bearish (downward) moves.
Trend Lines:
Trend lines are straight lines drawn on a chart that connect a series of price points. Their significance:
1. Uptrend Line: Drawn along the lows, representing support. A break below might indicate a trend reversal.
2. Downtrend Line: Drawn along the highs, indicating resistance. A break above might suggest the start of a bullish trend.
Filled Areas:
These represent a range between two values on a chart, usually shaded or colored. For instance:
1. Bollinger Bands: The area between the upper and lower band is filled, giving a visual representation of volatility.
2. Volume Profile: Can show a filled area representing the amount of trading activity at different price levels.
Stop Loss and Take Profit Lines:
These are horizontal lines representing pre-determined exit points for trades.
1. Stop Loss Line: Indicates the level at which a trade will be automatically closed to limit losses. Positioned according to the trader's risk tolerance.
2. Take Profit Line: Denotes the target level to lock in profits. Set according to potential resistance (for long trades) or support (for short trades) or other technical factors.
Trailing Stop Lines:
A trailing stop is a dynamic form of stop loss that moves with the price. On a chart:
1. For Long Trades: Starts below the entry price and moves up with the price but remains static if the price falls, ensuring profits are locked in.
2. For Short Trades: Starts above the entry price and moves down with the price but remains static if the price rises.
Visual representations offer traders a clear, organized view of market dynamics. Familiarity with these tools ensures that traders can quickly and accurately interpret chart data, leading to more informed decision-making. Always ensure that the visual aids used resonate with your trading style and strategy for the best results.
8. Backtesting
Backtesting is a fundamental process in strategy development, enabling traders to evaluate the efficacy of their strategy using historical data. It provides a snapshot of how the strategy would have performed in past market conditions, offering insights into its potential strengths and vulnerabilities. In this section, we'll explore the intricacies of setting up and analyzing backtest results and the caveats one must be aware of.
Setting Up Backtest Period:
1. Duration: Determine the timeframe for the backtest. It should be long enough to capture various market conditions (bullish, bearish, sideways). For instance, if you're testing a daily strategy, consider a period of several years.
2. Data Quality: Ensure the data source is reliable, offering high-resolution and clean data. This is vital to get accurate backtest results.
3. Segmentation: Instead of a continuous period, sometimes it's helpful to backtest over distinct market phases, like a particular bear or bull market, to see how the strategy holds up in different environments.
Analyzing Backtest Results:
1. Performance Metrics: Examine metrics like the total return, annualized return, maximum drawdown, Sharpe ratio, and others to gauge the strategy's efficiency.
2. Win Rate: It's the ratio of winning trades to total trades. A high win rate doesn't always signify a good strategy; it should be evaluated in conjunction with other metrics.
3. Risk/Reward: Understand the average profit versus the average loss per trade. A strategy might have a low win rate but still be profitable if the average gain far exceeds the average loss.
4. Drawdown Analysis: Review the periods of losses the strategy could incur and how long it takes, on average, to recover.
9. Tips and Best Practices
Successful trading requires more than just knowing how a strategy works. It necessitates an understanding of when to apply it, how to adjust it to varying market conditions, and the wisdom to recognize and avoid common pitfalls. This section offers insightful tips and best practices to enhance the application of the Supertrend Advance Strategy.
When to Use the Strategy:
1. Market Conditions: Ideally, employ the Supertrend Advance Strategy during trending market conditions. This strategy thrives when there are clear upward or downward trends. It might be less effective during consolidative or sideways markets.
2. News Events: Be cautious around significant news events, as they can cause extreme volatility. It might be wise to avoid trading immediately before and after high-impact news.
3. Liquidity: Ensure you are trading in assets/markets with sufficient liquidity. High liquidity ensures that the price movements are more reflective of genuine market sentiment and not due to thin volume.
Adjusting Settings for Different Markets/Timeframes:
1. Markets: Each market (stocks, forex, commodities) has its own characteristics. It's essential to adjust the strategy's parameters to align with the market's volatility and liquidity.
2. Timeframes: Shorter timeframes (like 1-minute or 5-minute charts) tend to have more noise. You might need to adjust the settings to filter out false signals. Conversely, for longer timeframes (like daily or weekly charts), you might need to be more responsive to genuine trend changes.
3. Customization: Regularly review and tweak the strategy's settings. Periodic adjustments can ensure the strategy remains optimized for the current market conditions.
10. Frequently Asked Questions (FAQs)
Given the complexities and nuances of the Supertrend Advance Strategy, it's only natural for traders, both new and seasoned, to have questions. This section addresses some of the most commonly asked questions regarding the strategy.
1. What exactly is the Supertrend Advance Strategy?
The Supertrend Advance Strategy is an evolved version of the traditional Supertrend indicator. It's designed to provide clearer buy and sell signals by incorporating additional indicators like EMA, RSI, MACD, CCI, etc. The strategy aims to capitalize on market trends while minimizing false signals.
2. Can I use the Supertrend Advance Strategy for all asset types?
Yes, the strategy can be applied to various asset types like stocks, forex, commodities, and cryptocurrencies. However, it's crucial to adjust the settings accordingly to suit the specific characteristics and volatility of each asset type.
3. Is this strategy suitable for day trading?
Absolutely! The Supertrend Advance Strategy can be adjusted to suit various timeframes, making it versatile for both day trading and long-term trading. Remember to fine-tune the settings to align with the timeframe you're trading on.
4. How do I deal with false signals?
No strategy is immune to false signals. However, by combining the Supertrend with other indicators and adhering to strict risk management protocols, you can minimize the impact of false signals. Always use stop-loss orders and consider filtering trades with additional confirmation signals.
5. Do I need any prior trading experience to use this strategy?
While the Supertrend Advance Strategy is designed to be user-friendly, having a foundational understanding of trading and market analysis can greatly enhance your ability to employ the strategy effectively. If you're a beginner, consider pairing the strategy with further education and practice on demo accounts.
6. How often should I review and adjust the strategy settings?
There's no one-size-fits-all answer. Some traders adjust settings weekly, while others might do it monthly. The key is to remain responsive to changing market conditions. Regular backtesting can give insights into potential required adjustments.
7. Can the Supertrend Advance Strategy be automated?
Yes, many traders use algorithmic trading platforms to automate their strategies, including the Supertrend Advance Strategy. However, always monitor automated systems regularly to ensure they're operating as intended.
8. Are there any markets or conditions where the strategy shouldn't be used?
The strategy might generate more false signals in markets that are consolidative or range-bound. During significant news events or times of unexpected high volatility, it's advisable to tread with caution or stay out of the market.
9. How important is backtesting with this strategy?
Backtesting is crucial as it allows traders to understand how the strategy would have performed in the past, offering insights into potential profitability and areas of improvement. Always backtest any new setting or tweak before applying it to live trades.
10. What if the strategy isn't working for me?
No strategy guarantees consistent profits. If it's not working for you, consider reviewing your settings, seeking expert advice, or complementing the Supertrend Advance Strategy with other analysis methods. Remember, continuous learning and adaptation are the keys to trading success.
Other comments
Value of combining several indicators in this script and how they work together
Diversification of Signals: Just as diversifying an investment portfolio can reduce risk, using multiple indicators can offer varied perspectives on potential price movements. Each indicator can capture a different facet of the market, ensuring that traders are not overly reliant on a single data point.
Confirmation & Reduced False Signals: A common challenge with many indicators is the potential for false signals. By requiring confirmation from multiple indicators before acting, the chances of acting on a false signal can be significantly reduced.
Flexibility Across Market Conditions: Different indicators might perform better under different market conditions. For example, while moving averages might excel in trending markets, oscillators like RSI might be more useful during sideways or range-bound conditions. A mashup strategy can potentially adapt better to varying market scenarios.
Comprehensive Analysis: With multiple indicators, traders can gauge trend strength, momentum, volatility, and potential market reversals all at once, providing a holistic view of the market.
How do the different indicators in the Supertrend Advance Strategy work together?
Supertrend: This is primarily a trend-following indicator. It provides traders with buy and sell signals based on the volatility of the price. When combined with other indicators, it can filter out noise and give more weight to strong, confirmed trends.
EMA (Exponential Moving Average): EMA gives more weight to recent price data. It can be used to identify the direction and strength of a trend. When the price is above the EMA, it's generally considered bullish, and vice versa.
RSI (Relative Strength Index): An oscillator that measures the magnitude of recent price changes to evaluate overbought or oversold conditions. By cross-referencing with other indicators like EMA or MACD, traders can spot potential reversals or confirmations of a trend.
MACD (Moving Average Convergence Divergence): This indicator identifies changes in the strength, direction, momentum, and duration of a trend in a stock's price. When the MACD line crosses above the signal line, it can be a bullish sign, and when it crosses below, it can be bearish. Pairing MACD with Supertrend can provide dual confirmation of a trend.
CCI (Commodity Channel Index): Initially developed for commodities, CCI can indicate overbought or oversold conditions. It can be used in conjunction with other indicators to determine entry and exit points.
In essence, the synergy of these indicators provides a balanced, comprehensive approach to trading. Each indicator offers its unique lens into market conditions, and when they align, it can be a powerful indication of a trading opportunity. This combination not only reduces the potential drawbacks of each individual indicator but leverages their strengths, aiming for more consistent and informed trading decisions.
Backtesting and Default Settings
• This indicator has been optimized to be applied for 1 hour-charts. However, the underlying principles of this strategy are supply and demand in the financial markets and the strategy can be applied to all timeframes. Daytraders can use the 1min- or 5min charts, swing-traders can use the daily charts.
• This strategy has been designed to identify the most promising, highest probability entries and trades for each stock or other financial security.
• The combination of the qualifiers results in a highly selective strategy which only considers the most promising swing-trading entries. As a result, you will normally only find a low number of trades for each stock or other financial security per year in case you apply this strategy for the daily charts. Shorter timeframes will result in a higher number of trades / year.
• Consequently, traders need to apply this strategy for a full watchlist rather than just one financial security.
• Default properties: RSI on (length 14, RSI buy level 50, sell level 50), EMA, RSI, MACD on, type of strategy pullback, SL/TP type: ATR (length 10, factor 3), trade direction both, quantity 5, take profit swing hl 5.1, highest / lowest lookback 2, enable ATR trail (ATR length 10, SL ATR multiplier 1.4, TP multiplier 2.1, lookback = 4, trade direction = both).
Goldmine Wealth Builder - DKK/SKKGoldmine Wealth Builder
Version 1.0
Introduction to Long-Term Investment Strategies: DKK, SKK1 and SKK2
In the dynamic realm of long-term investing, the DKK, SKK1, and SKK2 strategies stand as valuable pillars. These strategies, meticulously designed to assist investors in building robust portfolios, combine the power of Super Trend, RSI (Relative Strength Index), Exponential Moving Averages (EMAs), and their crossovers. By providing clear alerts and buy signals on a daily time frame, they equip users with the tools needed to make well-informed investment decisions and navigate the complexities of the financial markets. These strategies offer a versatile and structured approach to both conservative and aggressive investment, catering to the diverse preferences and objectives of investors.
Each part of this strategy provides a unique perspective and approach to the accumulation of assets, making it a versatile and comprehensive method for investors seeking to optimize their portfolio performance. By diligently applying this multi-faceted approach, investors can make informed decisions and effectively capitalize on potential market opportunities.
DKK Strategy for ETFs and Funds:
The DKK system is a strategy designed for accumulating ETFs and Funds as long-term investments in your portfolio. It simplifies the process of identifying trend reversals and opportune moments to invest in listed ETFs and Funds, particularly during bull markets. Here's a detailed explanation of the DKK system:
Objective: The primary aim of the DKK system is to build a long-term investment portfolio by focusing on ETFs and Funds. It facilitates the identification of stocks that are in the process of reversing their trends, allowing investors to benefit from upward price movements in these financial instruments.
Stock Selection Criteria: The DKK system employs specific criteria for selecting ETFs and Funds:
• 200EMA (Exponential Moving Average): The system monitors whether the prices of ETFs and Funds are consistently below the 200-day Exponential Moving Average. This is considered an indicator of weakness, especially on a daily time frame.
• RSI (Relative Strength Index): The system looks for an RSI value of less than 40. An RSI below 40 is often seen as an indication of a weak or oversold condition in a financial instrument.
Alert Signal: Once the DKK system identifies ETFs and Funds meeting these criteria, it provides an alert signal:
• Red Upside Triangle Sign: This signal is automatically generated on the daily chart of ETFs and Funds. It serves as a clear indicator to investors that it's an opportune time to accumulate these financial instruments for long-term investment.
It's important to note that the DKK system is specifically designed for ETFs and Funds, so it should be applied to these types of investments. Additionally, it's recommended to track index ETFs and specific types of funds, such as REITs (Real Estate Investment Trusts) and INVITs (Infrastructure Investment Trusts), in line with the DKK system's approach. This strategy simplifies the process of identifying investment opportunities within this asset class, particularly during periods of market weakness.
SKK1 Strategy for Conservative Stock Investment:
The SKK 1 system is a stock investment strategy tailored for conservative investors seeking long-term portfolio growth with a focus on stability and prudent decision-making. This strategy is meticulously designed to identify pivotal market trends and stock price movements, allowing investors to make informed choices and capitalize on upward market trends while minimizing risk. Here's a comprehensive overview of the SKK 1 system, emphasizing its suitability for conservative investors:
Objective: The primary objective of the SKK 1 system is to accumulate stocks as long-term investments in your portfolio while prioritizing capital preservation. It offers a disciplined approach to pinpointing potential entry points for stocks, particularly during market corrections and trend reversals, thereby enabling you to actively participate in bullish market phases while adopting a conservative risk management stance.
Stock Selection Criteria: The SKK 1 system employs a stringent set of criteria to select stocks for investment:
• Correction Mode: It identifies stocks that have undergone a correction, signifying a decline in stock prices from their recent highs. This conservative approach emphasizes the importance of seeking stocks with a history of stability.
• 200EMA (Exponential Moving Average): The system diligently analyses daily stock price movements, specifically looking for stocks that have fallen to or below the 200-day Exponential Moving Average. This indicator suggests potential overselling and aligns with a conservative strategy of buying low.
Trend Reversal Confirmation: The SKK 1 system doesn't merely pinpoint stocks in correction mode; it takes an extra step to confirm a trend reversal. It employs the following indicators:
• Short-term Downtrends Reversal: This aspect focuses on identifying the reversal of short-term downtrends in stock prices, observed through the transition of the super trend indicator from the red zone to the green zone. This cautious approach ensures that the trend is genuinely shifting.
• Super Trend Zones: These zones are crucial for assessing whether a stock is in a bullish or bearish trend. The system consistently monitors these zones to confirm a potential trend reversal.
Alert & Buy Signals: When the SKK 1 system identifies stocks that have reached a potential bottom and are on the verge of a trend reversal, it issues vital alert signals, aiding conservative investors in prudent decision-making:
• Orange Upside Triangle Sign: This signal serves as a cautious heads-up, indicating that a stock may be poised for a trend reversal. It advises investors to prepare funds for potential investment without taking undue risks.
• Green Upside Triangle Sign: This is the confirmation of a trend reversal, signifying a robust buy signal. Conservative investors can confidently enter the market at this point, accumulating stocks for a long-term investment, secure in the knowledge that the trend is in their favor.
In summary, the SKK 1 system is a systematic and conservative approach to stock investing. It excels in identifying stocks experiencing corrections and ensures that investors act when there's a strong indication of a trend reversal, all while prioritizing capital preservation and risk management. This strategy empowers conservative investors to navigate the intricacies of the stock market with confidence, providing a calculated and stable path toward long-term portfolio growth.
Note: The SKK1 strategy, known for its conservative approach to stock investment, also provides an option to extend its methodology to ETFs and Funds for those investors who wish to accumulate assets more aggressively. By enabling this feature in the settings, you can harness the SKK1 strategy's careful criteria and signal indicators to accumulate aggressive investments in ETFs and Funds.
This flexible approach acknowledges that even within a conservative strategy, there may be opportunities for more assertive investments in assets like ETFs and Funds. By making use of this option, you can strike a balance between a conservative stance in your stock portfolio while exploring an aggressive approach in other asset classes. It offers the versatility to cater to a variety of investment preferences, ensuring that you can adapt your strategy to suit your financial goals and risk tolerance.
SKK 2 Strategy for Aggressive Stock Investment:
The SKK 2 strategy is designed for those who are determined not to miss significant opportunities within a continuous uptrend and seek a way to enter a trend that doesn't present entry signals through the SKK 1 strategy. While it offers a more aggressive entry approach, it is ideal for individuals willing to take calculated risks to potentially reap substantial long-term rewards. This strategy is particularly suitable for accumulating stocks for aggressive long-term investment. Here's a detailed description of the SKK 2 strategy:
Objective: The primary aim of the SKK 2 strategy is to provide an avenue for investors to identify short-term trend reversals and seize the opportunity to enter stocks during an uptrend, thereby capitalizing on a sustained bull run. It acknowledges that there may not always be clear entry signals through the SKK 1 strategy and offers a more aggressive alternative.
Stock Selection Criteria: The SKK 2 strategy utilizes a specific set of criteria for stock selection:
1. 50EMA (Exponential Moving Average): It targets stocks that are trading below the 50-day Exponential Moving Average. This signals a short-term reversal from the top and indicates that the stock is in a downtrend.
2. RSI (Relative Strength Index): The strategy considers stocks with an RSI of less than 40, which is an indicator of weakness in the stock.
Alert Signals: The SKK 2 strategy provides distinct alert signals that facilitate entry during an aggressive reversal:
• Red Downside Triangle Sign: This signal is triggered when the stock is below the 50EMA and has an RSI of less than 40. It serves as a clear warning of a short-term reversal from the top and a downtrend, displayed on the daily chart.
• Purple Upside Triangle Sign: This sign is generated when a reversal occurs through a bullish candle, and the RSI is greater than 40. It signifies the stock has bottomed out from a short-term downtrend and is now reversing. This purple upside triangle serves as an entry signal on the chart, presenting an attractive opportunity to accumulate stocks during a strong bullish phase, offering a chance to seize a potentially favorable long-term investment.
In essence, the SKK 2 strategy caters to aggressive investors who are willing to take calculated risks to enter stocks during a continuous uptrend. It focuses on identifying short-term reversals and provides well-defined signals for entry. While this strategy is more aggressive in nature, it has the potential to yield substantial rewards for those who are comfortable with a higher level of risk and are looking for opportunities to build a strong long-term portfolio.
Introduction to Strategy Signal Information Chart
This chart provides essential information on strategy signals for DKK, SKK1, and SKK2. By quickly identifying "Buy" and "Alert" signals for each strategy, investors can efficiently gauge market conditions and make informed decisions to optimize their investment portfolios.
In Conclusion
These investment strategies, whether conservative like DKK and SKK1 or more aggressive like SKK2, offer a range of options for investors to navigate the complex world of long-term investments. The combination of Super Trend, RSI, and EMAs with their crossovers provides clear signals on a daily time frame, empowering users to make well-informed decisions and potentially capitalize on market opportunities. Whether you're looking for stability or are ready to embrace more risk, these strategies have something to offer for building and growing your investment portfolio.
Ultimate Seasonality Indicator [SS]Hello everyone,
This is my seasonality indicator. I have been working on it for like 2 months, so hope you like it!
What it does?
The Ultimate Seasonality indicator is designed to provide you, the trader, an in-depth look at seasonality. The indicator gives you the ability to do the following functions:
View the most bearish and bullish months over a user defined amount of years back.
View the average daily change for each respective months over a user defined amount of years back.
See the most closely correlated month to the current month to give potential insights of likely trend.
Plot out areas of High and Low Seasonality.
Create a manual seasonal forecast model by selecting the desired month you would like to model the current month data after.
Have the indicator develop an autoregressive seasonal model based on seasonally lagged variables, using principles of machine learning.
I will go over these functions 1 by 1, its a whopper of an indicator so I will try to be as clear and concise as possible.
Viewing Bullish vs Bearish Months, Average Daily Change & Correlation to Current Month
The indicator will break down the average change, as well as the number of bullish and bearish days by month. See the image below as an example:
In the table to the right, you will see a breakdown of each month over the past 3 years.
In the first column, you will see the average daily change. A negative value, means it was a particularly bearish month, a positive value means it was a particularly bullish month.
The next column over shows the correlation to the current dataset. How this works is the indicator takes the size of the monthly data for each month, and compares it to the last X number of days up until the last trading day. It will then perform a correlation assessment to see how closely similar the past X number of trading days are to the various monthly data.
The last 2 columns break down the number of Bullish and Bearish days, so you can see how many red vs green candles happened in each respective month over your set timeframe. In the example above, it is over the pats 3 years.
Plot areas of High and Low Seasonality
In the chart above, you will see red and green highlighted zones.
Red represents areas of HIGH Seasonality .
Green represents areas of LOW Seasonality .
For this function, seasonality is measured by the autocorrelation function at various lags (12 lags). When there is an average autocorrelation of greater than 0.85 across all seasonal lags, it is considered likely the result of high seasonality/trend.
If the lag is less than or equal to 0.05, it is indicative of very low seasonality, as there is no predominate trend that can be found by the autocorrelation functions over the seasonally lagged variables.
Create Manual Seasonal Forecasts
If you find a month that has a particularly high correlation to the current month, you can have the indicator create a seasonal model from this month, and fit it onto the current dataset (past X days of trading).
If we look at the example below:
We can see that the most similar month to the current data is September. So, we can ask the indicator to create a seasonal forecast model from only September data and fit it to our current month. This is the result:
You will see, using September data, our most likely close price for this month is 450 and our model is y= 1.4305x + -171.67.
We can accept the 450 value but we can use the equation to model the data ourselves manually.
For example, say we have a target price on the month of 455 based on our own analysis. We can calculate the likely close price, should this target be reached, by substituting this target for x. So y = 1.4305x + -171.67 becomes
y = 1.4305(455) +- 171.67
y = 479.20
So the likely close price would be 479.20. No likely, and thus its not likely we are to see 455.
HOWEVER, in this current example, the model is far too statistically insignificant to be used. We can see the correlation is only 0.21 and the R squared is 0.04. Not a model you would want to use!
You want to see a correlation of at least 0.5 or higher and an R2 of 0.5 or higher.
We can improve the accuracy by reducing the number of years we look back. This is what happens when we reduce the lookback years to 1:
You can see reducing to 1 year gives December as the most similar month. However, our R2 value is still far too low to really rely on this data whole-heartedly. But it is a good reference point.
Automatic Autoregressive Model
So this is my first attempt at using some machine learning principles to guide statistical analysis.
In the main chart above, you will see the indicator making an autoregressive model of seasonally lagged variables. It does this in steps. The steps include:
1) Differencing the data over 12, seasonally lagged variables.
2) Determining stationarity using DF test.
3) Determining the highest, autocorrelated lags that fall within a significant stationary result.
4) Creating a quadratic model of the two identified lags that best represents a stationary model with a high autocorrelation.
What are seasonally lagged variables?
Seasonally lagged variables are variables that represent trading months. So a lag of 25 would be 1 month, 50, 2 months, 75, 3 months, etc.
When it displays this model, it will show us what the results of the t-statistic are for the DF test, whether the data is stationary, and the result of the autocorrelation assessment.
It will then display the model detail in the tip table, which includes the equation, the current lags being used, the R2 and the correlation value.
Concluding Remarks
That's the indicator in a nutshell!
Hope you like it!
One final thing, you MUST have your chart set to daily, otherwise you will get a runtime error. This can ONLY be used on the daily timeframe!
Feel free to leave your questions, comments and suggestions below.
Note:
My "ultimate" indicators are made to give the functionality of multiple indicators in one. If you like this one, you may like some of my others:
Ultimate P&L Indicator
Ultimate Customizable EMA/SMA
Thanks for checking out the indicator!
Kawasaki_MFIKawasaki_MFI Indicator
The Kawasaki_MFI indicator is a customized technical analysis tool developed to analyze asset prices in financial markets. This script is implemented in TradingView's Pine Script language (version 5) and is based on the concept of the Accumulation/Distribution Line (ADL) which is a volume-based indicator designed to measure the cumulative flow of money into and out of a security.
Script Details
Version: Pine Script version 5
Overlay: True - The indicator is plotted directly on the price chart.
Input Variables
The script utilizes the following input variables sourced from daily (D) time frames:
High (my_high): The highest price of the security in the daily time frame.
Low (my_low): The lowest price of the security in the daily time frame.
Close (my_close): The closing price of the security in the daily time frame.
Volume (my_volume): The trading volume of the security in the daily time frame.
ADL Calculation
The ADL is calculated using the following formula:
ADL
=
Cumulative sum of ((Close−Low)−(High−Close)High−Low×Volume)
ADL=Cumulative sum of ( High−Low(Close−Low)−(High−Close)×Volume)
Plot
The ADL line is plotted on the chart with the following characteristics:
Title: ADL
Color: Blue
Usage
Traders can use the Kawasaki_MFI indicator to identify trends and potential reversal points in the market. A rising ADL line suggests buying pressure, while a falling ADL line suggests selling pressure. It can be used in conjunction with other technical indicators to develop a comprehensive trading strategy.
Feel free to add more details or modify the description to better suit your needs.
ICT True Day Range [MK]The indicator displays the following:
Vertical line day separator from 00:00 to 00:00 EST
High/Low lines for the days true range from 00:00 to EOD
Opening line from 00:00 EST to EOD
Opening line from 08:30 EST to EOD
Weekly Opening line from Sunday open at 18:00 EST to last bar in the week
Monday range high/low/mid line, which can be extended to EOW
Text displaying Days of the Week
All functions can be fully customized regarding color/style and line width.
Below shows image of indicator with day separator: (it didn't show on the main chart despite being enabled?)
All of the above are to be used to give the user all the tools necessary to analyze the following concepts which can be studied on ICTs you tube channel:
Weekly profile, eg, has the weekly manipulated below the weekly open to then rise the rest of the week?
Daily profile, eg, has the day manipulated below the daily open (00:00 EST) to then rise the rest of the day?
Daily liquidity grab, eg has the current day taken PDH/PDL at the start of the current day?
Daily targets, eg will the current day end up taking liquidity from the PDH/PDL?
Monday range, will Mondays high/low range act as the accumulation phase of the weekly AMD profile?
Tuesday/Wednesday/Thursday/Friday reversal, eg, does a day of the week line up with a HTF target and a high volatility news event which could see price reverse after the manipulation phase of the weekly AMD profile?
In strong trending markets, will the 0830 open line be used in the NY session as manipulation reference in the same manner as the 00:00 line is normally used?
The above examples of how the indicator 'could' be used are not the only ways to use the indicator.
The indicator is by no means a trading strategy on its own. Users should be fully aware of ICT concepts and have performed extensive back-testing before using the indicator with live accounts.
Buy/Sell EMA CandleThis indicator is designed to display various technical indicators, candle patterns, and trend directions on a price chart. Let's break down the code and explain its different sections:
Exponential Moving Averages (EMA):
The code calculates and plots five EMAs of different lengths (13, 21, 55, 90, and 200) on the price chart. These EMAs are used to identify trends and potential crossovers.
Engulfing Candle Patterns:
The code identifies and highlights potential bullish and bearish engulfing candle patterns. It checks if the current candle's body size is larger than the combined body sizes of the previous and subsequent four candles. If this condition is met, it marks the pattern on the chart.
s3.tradingview.com
EMA Crossovers:
The code identifies and highlights points where the shorter EMA (ema1) crosses above or below the longer EMA (ema2). It plots circles to indicate these crossover points.
Candle Direction and RSI Trend:
The code determines the trend direction of the last candle based on whether it closed higher or lower than its open price. It also calculates the RSI (Relative Strength Index) and determines its trend direction (overbought, oversold, or neutral) based on predefined thresholds.
s3.tradingview.com
Table Display:
The code creates a table displaying trend directions for different timeframes (monthly, weekly, daily, 4-hour, and 1-hour) for candle direction and RSI trends. The trends are labeled with "L" for long, "S" for short, and "N/A" for not applicable.
High Volume Bars (HVB):
The code identifies and colors bars with above-average volume as either bullish or bearish based on whether the price closed higher or lower than it opened. The color and conditions for high volume bars can be customized.
s3.tradingview.com
Doji Candle Pattern:
The code identifies and marks doji candle patterns, where the open and close prices are very close to each other within a certain percentage of the candle's high-low range.
RSI-Based Candle Coloring:
The code adjusts the color of the candles based on the RSI value. If the RSI value is above the overbought threshold or below the oversold threshold, the candles are colored yellow.
Usage and Interpretation:
Traders can use this indicator to identify potential trend changes based on EMA crossovers and candle patterns like engulfing and doji.
The RSI trend direction can provide additional insight into potential overbought or oversold conditions.
High volume bars can indicate potential price reversals or continuation patterns.
The table provides an overview of trend directions on different timeframes for both candle direction and RSI trends.
Keep in mind that this is a complex indicator with multiple features. Users should carefully evaluate its performance and consider combining it with other indicators and analysis methods for more accurate trading decisions.
The table is designed to provide a consolidated view of trend directions and other indicators across multiple timeframes. It is displayed on the chart and organized into rows and columns. Each row corresponds to a specific aspect of analysis, and each column corresponds to a different timeframe.
Here's a breakdown of the components of the table:
Row 1: Separation.
Row 2 (Header Row): This row contains the headers for the columns. The headers represent the different timeframes being analyzed, such as Monthly (M), Weekly (W), Daily (D), 4-hour (4h), and 1-hour (1h).
Row 3 (Content Row): This row contains labels indicating the types of information being displayed in the columns. The labels include "T" for Trend, "C" for Current Candle, and "R" for RSI Trend.
Row 4 and Onwards: These rows display the actual data for each aspect of analysis across different timeframes.
For each aspect of analysis (Trend, Current Candle, RSI Trend), the corresponding rows display the following information:
Monthly (M): The trend direction for the given aspect on the monthly timeframe.
Weekly (W): The trend direction for the given aspect on the weekly timeframe.
Daily (D): The trend direction for the given aspect on the daily timeframe.
4-hour (4h): The trend direction for the given aspect on the 4-hour timeframe.
1-hour (1h): The trend direction for the given aspect on the 1-hour timeframe.
The trend directions are represented by labels such as "L" for Long, "S" for Short, or "N/A" for Not Applicable.
The table's purpose is to provide a quick overview of trend directions and related information across multiple timeframes, aiding traders in making informed decisions based on the analysis of trend changes and other indicators.
Range Based Signals and AlertsThis script produces a compiled version of rule based signals that is meant to be used mainly on 5 Min timeframe based on daily(as default) Highs and Lows on average and the main purpose is to give user settings to change and adapt based on their needs and make it as adjustable as possible. This entry strategy idea does not belong to me but for TV's in-house rule reasons i can't disclose whose idea it is but i think people that will use this indicator will know who the original idea belongs to.
Rules used for signal production:
- Daily(As default) High-Low points
- Moving Average for detecting reversing of price
- MTF MACD (Daily as default) for detecting overall trend
Signals produced based on extensions of price out of daily zones and when they drop or rise back into moving average. A conditional checker is used for reducing repeated unnecessary signals and alerts.
Happy trading.
Crunchster's Real PriceThis is a simple transformation of any price series (best suited to daily timeframe) that filters out random price fluctuations and revealing the "real" price action. It allows comparison between different assets easily and is a useful confirmation of support and resistance levels, or can be used with other technical analysis.
In the default settings based on a daily chart, the daily returns are first calculated, then volatility normalised by dividing by the standard deviation of daily returns over the defined lookback period (14 periods by default).
These normalised returns are then added together over the entire price series period, to create a new "Real price" - the volatility adjusted price. This is the default presentation.
In addition, a second signal ("Normalised price series over rolling period") is available which, instead of summing the normalised returns over the entire price series, allows a user configurable, rolling lookback window over which the normalised returns are summed up. The default setting is 365 periods (ie 1 year on the daily timeframe for tickers with 24hr markets such as crypto. This can be set to 252 periods if analysing equities, which only trade 5 days per week, or any other user defined period of interest).
ATRLevels 1.0.0The indicator shows the average daily ATR for the past N days from the beginning of the current session. The range is displayed using levels. If the price has approached the level of 100% or -100% it means that the price has passed its average distance and it is possible to consider points for price reversal. This can be confirmed by daily or weekly horizontal resistance/support levels.
If the price has approached the levels of 25%, 50% or 75% and there are hourly or daily extrema at these levels, then we can consider situations on a false stabbing of these levels and a price pullback in the opposite direction.
*The best confirmation of a bounce/reversal is the density in the scalper's stack.
Settings:
ATR Daily length - number of periods to calculate the daily ATR
100% lines - visual design of 100% and -100% levels
50% lines - visual design of the 50% level
25% and 75% lines - visual design of 25% and 75% levels
SmartVPSGTitle: Identifying Volume Spikes, Price Movements and Gap Ups: A TradingView Script
Introduction:
In the world of trading, identifying volume spikes and price movements can provide valuable insights into market trends and potential trading opportunities. In this article, we'll explore a TradingView script that helps traders visualize volume spikes, price up moves with volume spikes, and gap-up days on their charts.
Detecting Price Up Moves:
The script starts by calculating price up moves. It compares the current day's closing price with the previous day's closing price and checks if it has increased by 3% or more. This helps traders spot significant upward price movements.
Detecting Volume Spurts:
Next, the script focuses on detecting volume spikes, which are often associated with increased market activity and potential trading opportunities. It compares the current day's volume with the highest volume of the previous nine sessions. If the current volume exceeds all the volumes of the previous nine sessions, it is considered a volume spurt.
Example:
Let's consider a hypothetical scenario where we have the following volume data for a stock:
Day 1: 100,000
Day 2: 80,000
Day 3: 120,000
Day 4: 150,000
Day 5: 200,000
Day 6: 90,000
Day 7: 110,000
Day 8: 130,000
Day 9: 140,000
Day 10: 250,000 (current day)
To determine if there is a volume spurt on Day 10, the script compares the current day's volume (250,000) with the highest volume of the previous nine sessions. In this case, the highest volume among the previous nine sessions is 200,000 (on Day 5). Since the current day's volume (250,000) exceeds the highest volume of the previous nine sessions (200,000), it is considered a volume spurt.
Identifying Gap-Up Days:
Gap-up days occur when the market opens significantly higher than the previous day's close. To identify these days, the script compares the current day's low price with the previous day's high price. If the low price is greater than the previous day's high, it is marked as a gap-up day.
Visualizing the Findings:
To provide a clear visual representation of the identified patterns, the script uses different shapes and colors. First, it plots small red dots above the candles whenever a volume spurt is detected. These dots help traders quickly identify periods of increased volume activity.
For price up moves with volume spikes, the script utilizes blue triangular shapes below the candles. This allows traders to pinpoint instances where both price and volume are showing positive signs, indicating potential bullish movements.
Additionally, the script incorporates green candles to represent gap-up days. These candles help traders recognize days when the market opens with a significant upward gap, suggesting a potential shift in market sentiment.
Conclusion:
The TradingView script discussed in this article provides traders with a visual representation of volume spikes , price up moves with volume spikes , and gap-up days . By incorporating these visual cues into their analysis, traders can gain valuable insights into market trends and potential trading opportunities.
Remember, this script should be used for educational and informational purposes only and does not serve as financial advice or recommendations. Traders are encouraged to customize and modify the script according to their specific trading strategies and risk tolerance.
Share this script with other traders on TradingView to enhance their chart analysis and trading decisions.
PS: This TradingView script is designed to work specifically on the daily timeframe (daily candles). It calculates and identifies volume spurts based on the volume data of the daily timeframe. Since it is designed for the daily timeframe, it may not produce accurate results or work as intended on other timeframes.
ICT HTF Liquidity Levels /w Alert [MsF]Japanese below / 日本語説明は英文の後にあります。
-------------------------
*This indicator is based on sbtnc's "HTF Liquidity Levels". It's a very cool indicator. thank you.
It has 3 functions: visualization of HTF liquidity (with alert), candle color change when displacement occurs, and MSB (market structure break) line display.
=== Function description ===
1. HTF liquidity (with alert)
Lines visualize the liquidity pools on the HTF bars. Alerts can be set for each TF's line.
Once the price reaches the line, the line is repaint.
To put it plainly, the old line disappears and a new line appears. The line that disappeared remains as a purged line. (It is also possible to hide the purged line with a parameter)
The alert will be triggered at the moment the line disappears. An alert will be issued when you touch the HTF's liquid pools where the loss is accumulated, so you can notice the stop hunting with the alert.
This alert is an original feature of this indicator.
The timeframe of the HTF can't modify. You can get Monthly, weekly, daily and H1 and H4.
Each timeframe displays the 3 most recent lines. By narrowing it down to 3, it is devised to make it easier to see visually. (This indicator original)
2. Displacement
Change the color display of the candlesticks when a bullish candle stick or bearish candle stick is attached. Furthermore, by enabling the "Require FVG" option, you can easily discover the FVG (Fair Value Gap). It is a very useful function for ICT trading.
3. MSB (market structure break)
Displays High/Low lines for the period specified by the parameter. It is useful for discovering BoS & CHoCH/MSS, which are important in ICT trading.
=== Parameter description ===
- HTF LIQUIDITY
- Daily … Daily line display settings (color, line width)
- Weekly … Weekly line display settings (color, line width)
- Monthly … Monthly line display settings (color, line width)
- INTRADAY LIQUIDITY
- 1H … 1H line display settings (color, line width)
- 4H … 4H line display settings (color, line width)
- PURGED LIQUIDITY … Display setting of the line once the candle reaches
- Show Purge Daily … Daily purged line display/non-display setting
- Show Purge Weekly … Weekly purged line display/non-display setting
- Show Purge Monthly … Monthly purged line display/non-display setting
- Show Purge 1H … 1H purged line display/non-display setting
- Show Purge 4H … 4H purged line display/non-display setting
- MARKET STRUCTURE BREAK - MBS
- Loopback … Period for searching High/Low
- DISPLACEMENT FOR FVG
- Require FVG … Draw only when FVG occurs
- Displacement Type … Displacement from open to close? or from high to low?
- Displacement Length … Period over which to calculate the standard deviation
- Displacement Strength … The larger the number, the stronger the displacement detected
-------------------------
このインジケータはsbtncさんの"HTF Liquidity Levels"をベースに作成しています。
上位足流動性の可視化(アラート付き)、変位発生時のローソク色変更、MSB(market structure break)ライン表示の3つの機能を有します。
<機能説明>
■上位足流動性の可視化
上位足の流動性の吹き溜まり(ストップが溜まっているところ)をラインで可視化します。ラインにはアラートを設定することが可能です。
一度価格がラインに到達するとそのラインは再描画されます。
平たく言うと、今までのラインが消えて新しいラインが出現する。という事です。
消えたラインはpurgeラインとして残ります。(パラメータでpurgeラインを非表示にすることも可能です)
アラートはラインが消える瞬間に発報します。上位足の損切り溜まってるところにタッチするとアラートを発報するので、アラートにてストップ狩りに気づくことができます。
このアラート発報については本インジケータオリジナルの機能となります。
表示可能な上位足のタイムフレームは固定です。月足、週足、日足およびH1とH4を表示することができます。
各タイムフレーム、直近から3つのラインを表示します。3つに絞ることで視覚的に見やすく工夫しています。(本インジケータオリジナル)
■変位発生時のローソク色変更
大きな陽線、陰線を付けた場合に、そのローソク足をカラー表示を変更します。
さらに"Require FVG"オプションを有効にすることで、FVG(Fair Value Gap)を容易に発見することができます。ICTトレードにを行うにあたり大変有用な機能となっています。
■MSB(market structure break)ライン表示
パラメータで指定した期間のHigh/Lowをライン表示します。ICTトレードで重要視しているBoS & CHoCH/MSSの発見に役立ちます。
<パラメータ説明>
- HTF LIQUIDITY
- Daily … 日足ライン表示設定(色、線幅)
- Weekly … 週足ライン表示設定(色、線幅)
- Monthly … 月足ライン表示設定(色、線幅)
- INTRADAY LIQUIDITY
- 1H … 1時間足ライン表示設定(色、線幅)
- 4H … 4時間足ライン表示設定(色、線幅)
- PURGED LIQUIDITY … 一度到達したラインの表示設定
- Show Purge Daily … 日足ライン表示/非表示設定
- Show Purge Weekly … 週足ライン表示/非表示設定
- Show Purge Monthly … 月足ライン表示/非表示設定
- Show Purge 1H … 1時間足ライン表示/非表示設定
- Show Purge 4H … 4時間足ライン表示/非表示設定
- MARKET STRUCTURE BREAK - MBS
- Loopback … High/Lowを探索する期間
- DISPLACEMENT FOR FVG
- Require FVG … FVG発生時のみ描画する
- Displacement Type … openからcloseまでの変位か?highからlowまでの変位か?
- Displacement Length … 標準偏差を計算する期間
- Displacement Strength … 変位の強さ(数字が大きいほど強い変位を検出)
Intraday Intensity ModesIntraday Intensity Index was created by David Bostian and its use was later featured by John Bollinger in his book "Bollinger on Bollinger Bands" . It is categorically a volume indicator and considered to be a useful tool for analyzing supply and demand dynamics in the market. By measuring the level of buying and selling pressure within a given trading session it attempts to provide insights into the strength of market participants' interest and their aggressiveness in executing trades throughout the day. It can be used in conjunction with Bollinger Bands® or other envelope type indicators as a complimentary indicator to aid in trying to identify potential turning points or trends.
Intraday intensity is calculated based upon the relationship between the price change and the volume of shares traded during each daily interval. It aims to capture the level of buying or selling activity relative to the overall volume. A high intraday intensity value suggests a higher level of buying or selling pressure, indicating a more active and potentially volatile market. Conversely, a low intraday intensity value indicates less pronounced trading activity and a potentially quieter market. Overall, intraday intensity provides a concise description of the intensity of trading activity during a particular trading session, giving traders an additional perspective on market dynamics. Note that because the calculation uses volume this indicator will only work on symbols where volume is available.
While there are pre-existing versions within community scripts, none were found to have applied the calculations necessary for the various modes that are presented within this version, which are believed to be operating in the manner originally intended when first described by Bostian and again later by Bollinger. When operating in default modes on daily or lower chart timeframes the logic used within this script tracks the intraday high, low, close and volume for the day with each progressing intraday bar.
The BB indicator was included on the top main chart to help illustrate example usage as described below. The Intraday Intensity Modes indicator is pictured operating in three different modes beneath the main chart:
• The top pane beneath the main chart shows the indicator operating as a normalized 21 day II% oscillator. A potential use while in this mode would be to look for positive values as potential confirmation of strength when price tags the upper or lower Bollinger bands, and to look for negative values as potential confirmation of weakness when price tags the upper or lower Bollinger bands.
• The middle pane shows the indicator operating as an "open ended" cumulative sum of II. A potential use while in this mode would be to look for convergence or divergence of trend when price is making new highs or lows, or while price is walking the upper or lower Bollinger bands.
• The bottom pane shows the indicator operating in standard III mode, which provides independent values per session.
Indicator Settings: Inputs tab:
Osc Length : Set to 1 disables oscillation, values greater than 1 enables oscillation for II% (Intraday Intensity percent) mode.
Tootip : Hover mouse over (i) to show recommended example Settings for various modes.
Cumulative : When enabled values are cumulatively summed for the entire chart and indicator operates in II mode.
Normalized : When enabled a rolling window of Osc Length values are summed and normalized to the rolling window's volume.
Intrabar : When enabled price range and volume are evaluated for intensity per bar instead of per day which is a departure from the original
concept. Whenever this setting is enabled the indicator should be regarded as operating in an experimental mode.
Colors For Up Down : Sets the plot colors used, may be overridden in Settings:Style tab.
Styles / Width : Sets the plot style and width used, may be overridden in Settings:Style tab.
This indicator is designed to work with any chart timeframe, with the understanding that when used on timeframes higher than daily the indicator becomes "IntraPeriod" intensity, for example on weekly bars it would be "IntraWeek" intensity. On Daily or lower timeframes the indicator operates as "IntraDay" intensity and is being updated on each bar as each day progresses. If the experimental setting Intrabar is enabled then the indicator operates as "IntraBar" intensity and is no longer constrained to daily or higher evaluations, for example with Intrabar enabled on a 4H timeframe the indicator would operate as "Intra4H" intensity.
NOTICE: This is an example script and not meant to be used as an actual strategy. By using this script or any portion thereof, you acknowledge that you have read and understood that this is for research purposes only and I am not responsible for any financial losses you may incur by using this script!
Seasonality [TFO]This Seasonality indicator is meant to provide insight into an asset's average performance over specified periods of time (Daily, Monthly, and Quarterly). It is based on a 252 trading day calendar, not a 365 day calendar. Therefore, some estimations are used in order to aggregate the Daily data into higher timeframes, as we assume every Month to be 21 trading days, and every Quarter to be 63 trading days. Instead of collecting data on the 1st day of a given month, we are actually treating it as the "nth" trading day of the year. Some years exceed 252 trading days, some fall short; however 252 is the average that we are working with for US stocks and indices. Results may vary for non-US markets.
Main features:
- Statistics Table
- Performance Analysis
- Seasonal Pivots
The Statistics Table provides a summarized view of the current seasonality: whether the average Day/Month/Quarter tends to be bullish or bearish, what the average percent change is, and what the current (actual) change is relative to the historical value. It is shown in the top right of this chart.
The Performance Analysis shows a histogram of the average percentage performance for the selected timeframe. Here we have options for Daily, Monthly, and Quarterly. The previous chart showed the Monthly timeframe, here we have the Daily and Quarterly.
Lastly, Seasonal Pivots show where highs and lows tend to be created throughout the year, based on an aggregation of the Daily performance data collected over the available years. If we anchor our data to the beginning of the current year, and then manually offset it by ~252 (depending on the year), we can line this data up with the previous years' data and observe how well these Seasonal Pivots lined up with major Daily highs and lows.
Styling options are available for every major component of this indicator. Please consider sharing if you find it useful!
Swing Data - ADR% / RVol / PVol / Float % / Avg $ VolThis table presents consolidated data that swing traders can refer to quickly for their benefit. I am of the firm belief that the information provided in this uncomplicated table is precisely what you require to optimize your trading efficiency, and ultimately, profitability.
The data includes;
1. Market Capitalization - a measure of the total value of a publicly traded company's outstanding shares.
2. Float % - the percentage of a company's outstanding shares that are available for trading on the open market. It is calculated by dividing the number of a company's outstanding shares that are available for trading on the open market by the total number of outstanding shares. A lower float percentage generally means that there are fewer shares available for trading, which can lead to increased volatility in the stock price. On the other hand, a higher float percentage generally means that there are more shares available for trading, which can lead to greater stability in the stock price.
3. ADR% - a technical analysis indicator that measures the average daily price movement as a percentage of its current price. It is calculated by taking the difference between the average high and low prices for a time period, and then dividing it by the current price. The resulting value is then multiplied by 100 to give the ADR% for that day. The ADR% can be useful for traders to assess the potential volatility of a stock. A higher ADR% indicates a greater potential for price movement.
4. ATR - measures the range of price movements of an asset over a specified period of time, taking into account any gaps in price. It is calculated by taking the highest value of the following three values:
The difference between the current high and the current low
The absolute value of the difference between the current high and the previous close
The absolute value of the difference between the current low and the previous close
The resulting value is then averaged over the specified period of time to create the ATR value. This indicator is reflects the average volatility of the asset over the specified period of time.
5. LoD dist. - also refer to Low Of Day distance, a range level gauge of current price based on historical volatility of the price movement, in this case I use ATR. for the historical volatility. Please find below as example for the calculation.
eg. LoD dist. = 104%
Current price (A) = $24.49
Low Price (B) = $22.16
Difference (A) - (B) = $2.33
ATR = $2.25
LoD dist = $2.33 / $2.25 = 103.55% (round up to nearest whole number = 104%)
6. Average Daily $ Volume - used to measure the average amount of money that is traded in a stock or a security over a particular period of time, typically a day. It is calculated by multiplying the average daily trading volume of a security by its average price.
7. Average Daily Volume - used to measure the average no. of share that is traded in a stock or a security over a particular period of time, typically a day.
8. Projected Volume - an estimate of the total volume of trading activity that is expected to occur for the day (from the specific time data), based on an average volume over a specific period of time. Projected volume can be used by traders and investors to help make informed decisions about buying or selling securities, and can also be used as an indicator of market sentiment and volatility. However, it's important to note that projected volume is an estimate and actual trading activity may vary.
9. Relative Volume - a measure of the volume of a stock that is trading at the specific time, relative to its average trading volume over a longer period. It is expressed as a percentage and is often used by traders and investors to identify stocks that are trading with higher or lower than usual volume.
ICT Market Structure and OTE ZoneThis indicator is based on the ICT (Inner Circle Trader) concepts, and it helps identify daily market structure and the optimal trade entry (OTE) zone based on Fibonacci retracement levels.
To read and interpret this indicator, follow these steps:
Daily High and Low: The red line represents the daily high, while the green line represents the daily low. These lines help you understand the market structure and the range within which the price has moved during the previous day.
OTE Zone: The gray area between two gray lines represents the optimal trade entry (OTE) zone. This zone is calculated using Fibonacci retracement levels (in this case, 61.8% and 78.6%) applied to the previous day's high and low. The OTE zone is an area where traders might expect a higher probability of a price reversal, following the ICT concepts.
To use this indicator for trading decisions, you should consider the following:
Identify the market structure and overall trend (uptrend, downtrend, or ranging).
Watch for price action to enter the OTE zone. When the price reaches the OTE zone, it may indicate a higher probability of a price reversal.
Combine the OTE zone with other confluences, such as support and resistance levels, candlestick patterns, or additional ICT concepts like order blocks and market maker profiles, to strengthen your trading decisions.
Always use proper risk management and stop-loss orders to protect your capital in case the market moves against your trade.
Keep in mind that the provided indicator is a simple example based on the ICT concepts and should not be considered financial advice. The ICT methodology is vast, and traders often combine multiple concepts to develop their trading strategies. The provided indicator should be treated as a starting point to explore and implement the ICT concepts in your trading strategy.
Trampoline DotsTrampoline Dots (Price Divergence)
Higher Time Frame Price Divergence:
Trampoline Dots serve as a "quick bounce" tool. These little dots will trigger whenever the higher aggregation MACD is above / below zero and the price is below / above the 50 period simple moving average. When these criteria are met, the price is usually under pressure of strong divergence, more often than not price will sharply reverse into the trend direction usually within the next few bars.
The Use of The Trampoline Dots:
This indicator can serve multiple ways. Obviously the main use case is the price divergence. These "dots" will not give you any precise & exact entry. But rather a zone of possible incoming reversal. There is no timing to it. All these dots will do is warn you about potential sharp reversal in the upcoming bars. It can be used by itself alone for sure, but the best way to utilize the dots is to use them in combination of other trend or momentum studies. The best signals are the ones that are within the larger time frame trend. Another great thing is that the visuals are really straight-forward and simple. It is either green dot or a red dot. Nothing more, nothing less. Also since the indicator is pretty small, it can be easily layered onto other studies as well which can create an additional confirmation for different patterns or setups.
Which Time Frame Are Reliable?
This indicator works on any time frame. But the most "stable" one is the daily & hourly time frame. My personal favorite is the hourly since these divergences can produce amazing entries in the daily trends (which are usually hidden on the daily chart). In the most aggresive trends, I like to see the green dots triggering around the 8 EMA and 13 EMA. Daily chart can show the daily and weekly (big divergences) that can take multiple days & weeks to resolve.
Hope it helps.
Simple RangeThe daily price range is a good proxy to judge an instrument’s volatility. I have combined multiple concepts in this indicator to display information regarding the daily price range & its volatility.
A trading period's range is simply the difference between its high and the low. This script shows the daily high-to-low range of the price as a column chart. It has 3 main components:
1. Narrow-range days (NR7) & Wide-range Days (WR20) - as plot columns
Original concept from Thomas Bulkowski
Modified from "NR4 & NR7 Indicator" script by theapextrader7
Modified from "WR - BC Identifier" script by wrpteam2020
Narrow range days mark price contractions that often precede price expansions. This script uses NR7 (narrow range 7) as a narrow-range day. This value can be changed by the user if, instead of an NR7, he or she wishes to use NR4 or NR21, or any other interval of his or her choice. NR7 is an indecisive trading day in which the range is narrower than any of the previous six days (a total of 7 days). This is a popular concept given by Thomas Bulkowski. A breakout is said to occur when price closes above the top or below the bottom of the NR7. Upside breakout of an NR 7 candle with high volumes indicates bullishness.
Similarly, highs & lows of wide-range bars (on big volumes) are also significant reference levels for price. Wide-range candle are identified by size of the body candle (open - close). The script compares the size of previous 20 candles to identify WR20 candles. This value can also be changed by the user.
The script shows NR7 & WR20 as orange & blue bars, respectively.
The user can also turn on the option to identify a big high-to-low range candle greater than a pre-defined threshold (default is 5%). These show up as green or red bars.
2. TTM Squeeze - as background
Original concept from John Carter's book "Mastering the Trade"
Based on "Squeeze Momentum Indicator" script by LazyBear
John Carter’s TTM Squeeze indicator looks at the relationship between Bollinger Bands and Keltner's Channels to help identify period of volatility contractions. Bollinger Bands being completely enclosed within the Keltner Channels is indicative of a very low volatility. This is a state of volatility contraction known as squeeze. Using different ATR lengths (1.0, 1.5 and 2.0) for Keltner Channels, we can differentiate between levels of squeeze (High, Mid & Low compression, respectively). Greater the compression, higher the potential for explosive moves.
In the script, the High, Mid & Low compression squeezes are depicted via the background color being red, orange, or yellow, respectively.
3. Average Daily Range - as table
Original idea by alpine_trader
Modified from "ADR% - Average Daily Range % by MikeC" script by TheScrutiniser
Average Day Range (ADR) tells how much the price moves between the high and low on a given day. This is the day Range, which is then averaged to create ADR. The script uses an average of the last 20 days to calculate the ADR. Unlike ATR (Average True Range), this excludes Gaps.
The script displays the ADR as a % value in a table.
If you want to find stocks that move a lot on an average on most days, then look for stocks that have ADR% of 5% or more.
If you prefer lower volatility stocks, focus on stocks with lower ADR% values, such as 2% or less.
How it comes together
For a bullish "momentum burst", or a velocity trade:
Select stocks with Average Day Range % (ADR) greater than 5
Identify significant reference price levels via highs & lows of WR20 bars (on big volumes)
Wait for a decent mid-to-high compression squeeze
Look for clusters of NR7 candles in the consolidation
Any breakout from this consolidation should be accompanied by more than average (preferably pocket pivot) volumes
ATR PivotsThe "ATR Pivots" script is a technical analysis tool designed to help traders identify key levels of support and resistance on a chart. The indicator uses various metrics such as the Average True Range (ATR), Daily True Range ( DTR ), Daily True Range Percentage (DTR%), Average Daily Range (ADR), Previous Day High ( PDH ), and Previous Day Low ( PDL ) to provide a comprehensive picture of the volatility and movement of a security. The script also includes an EMA cloud and 200 EMA for trend identification and a 1-minute ATR scalping strategy for traders to make informed trading decisions.
ATR Detail:-
The ATR is a measure of the volatility of a security over a given period of time. It is calculated by taking the average of the true range (the difference between the high and low of a security) over a set number of periods. The user can input the number of periods (ATR length) to be used for the ATR calculation. The script also allows the user to choose whether to use the current close or not for the calculation. The script calculates various levels of support and resistance based on the relationship between the security's range ( high-low ) and the ATR. The levels are calculated by multiplying the ATR by different Fibonacci ratios (0.236, 0.382, 0.5, 0.618, 0.786, 1.000) and then adding or subtracting the result from the previous close. The script plots these levels on the chart, with the -100 level being the most significant level. The user also has an option to choose whether to plot all Fibonacci levels or not.
DTR and DTR% Detail:-
The Daily True Range Percentage (DTR%) is a metric that measures the daily volatility of a security as a percentage of its previous close. It is calculated by dividing the Daily True Range ( DTR ) by the previous close. DTR is the range between the current period's high and low and gives a measure of the volatility of the security on a daily basis. DTR% can be used as an indicator of the percentage of movement of the security on a daily basis. In this script, DTR% is used in combination with other metrics such as the Average True Range (ATR) and Fibonacci ratios to calculate key levels of support and resistance for the security. The idea behind using DTR% is that it can help traders to better understand the daily volatility of the security and make more informed trading decisions.
For example, if a security has a DTR% of 2%, it suggests that the security has a relatively low level of volatility and is less likely to experience significant price movements on a daily basis. On the other hand, if a security has a DTR% of 10%, it suggests that the security has a relatively high level of volatility and is more likely to experience significant price movements on a daily basis.
ADR:-
The script then calculates the ADR (Average Daily Range) which is the average of the daily range of the security, using the formula (Period High - Period Low) / ATR Length. This gives a measure of the average volatility of the security on a daily basis, which can be useful for determining potential levels of support and resistance .
PDH /PDL:-
The script also calculates PDH (Previous Day High) and PDL (Previous Day Low) which are the High and low of the previous day of the security. This gives a measure of the previous day's volatility and movement, which can be useful for determining potential levels of support and resistance .
EMA Cloud and 200 EMA Detail:-
The EMA cloud is a technical analysis tool that helps traders identify the trend of the market by comparing two different exponential moving averages (EMAs) of different lengths. The cloud is created by plotting the fast EMA and the slow EMA on the chart and filling the space between them. The user can input the length of the fast and slow EMA , and the script will calculate and plot these EMAs on the chart. The space between the two EMAs is then filled with a color that represents the trend, with green indicating a bullish trend and red indicating a bearish trend . Additionally, the script also plots a 200 EMA , which is a commonly used long-term trend indicator. When the fast EMA is above the slow EMA and the 200 EMA , it is considered a bullish signal, indicating an uptrend. When the fast EMA is below the slow EMA and the 200 EMA , it is considered a bearish signal, indicating a downtrend. The EMA cloud and 200 EMA can be used together to help traders identify the overall trend of the market and make more informed trading decisions.
1 Minute ATR Scalping Strategy:-
The script also includes a 1-minute ATR scalping strategy that can be used by traders looking for quick profits in the market. The strategy involves using the ATR levels calculated by the script as well as the EMA cloud and 200 EMA to identify potential buy and sell opportunities. For example, if the 1-minute ATR is above 11 in NIFTY and the EMA cloud is bullish , the strategy suggests buying the security. Similarly, if the 1-minute ATR is above 30 in BANKNIFTY and the EMA cloud is bullish , the strategy suggests buying the security.
Inside Candle:-
The Inside Candle is a price action pattern that occurs when the current candle's high and low are entirely within the range of the previous candle's high and low. This pattern indicates indecision or consolidation in the market and can be a potential sign of a trend reversal. When used in the 15-minute chart, traders can look for Inside Candle patterns that occur at key levels of support or resistance. If the Inside Candle pattern occurs at a key level and the price subsequently breaks out of the range of the Inside Candle, it can be a signal to enter a trade in the direction of the breakout. Traders can also use the Inside Candle pattern to trade in a tight range, or to reduce their exposure to a current trend.
Risk Management:-
As with any trading strategy, it is important to practice proper risk management when using the ATR Pivots script and the 1-minute ATR scalping strategy. This may include setting stop-loss orders, using appropriate position sizing, and diversifying your portfolio. It is also important to note that past performance is not indicative of future results and that the script and strategy provided are for educational purposes only.
In conclusion, the "ATR Pivots" script is a powerful tool that can help traders identify key levels of support and resistance , as well as trend direction. The additional metrics such as DTR , DTR%, ADR, PDH , and PDL provide a more comprehensive picture of the volatility and movement of the security, making it easier for traders to make better trading decisions. The inclusion of the EMA cloud and 200 EMA for trend identification, and the 1-minute ATR scalping strategy for quick profits can further enhance a trader's decision-making process. However, it is important to practice proper risk management and understand that past performance is not indicative of future results.
Special thanks to satymahajan for the idea of clubbing Average True Range with Fibonacci levels.
VIX Rule of 16There’s an interesting aspect of VIX that has to do with the number 16. (approximately the square root of the number of trading days in a year).
In any statistical model, 68.2% of price movement falls within one standard deviation (1 SD ). The rest falls into the “tails” outside of 1 SD .
When you divide any implied volatility (IV) reading (such as VIX ) by 16, the annualized number becomes a daily number
The essence of the “rule of 16.” Once you get it, you can do all sorts of tricks with it.
If the VIX is trading at 16, then one-third of the time, the market expects the S&P 500 Index (SPX) to trade up or down by more than 1% (because 16/16=1). A VIX at 32 suggests a move up or down of more than 2% a third of the time, and so on.
• VIX of 16 – 1/3 of the time the SPX will have a daily change of at least 1%
• VIX of 32 – 1/3 of the time the SPX will have a daily change of at least 2%
• VIX of 48 – 1/3 of the time the SPX will have a daily change of at least 3%
Improved Chaikin Money FlowChaikin Money Flow is a well-known Indicator for gauging buying/selling pressure. Marc Chaikin intended this to be used on the daily timeframe to capture the behavior of price action at or near the daily close when larger-scale actors influence the market. The calculation is straight forward as described within the built-in TradingView "CMF" indicator:
1. Period Money Flow Multiplier = ((Close - Low) - (High - Close)) /(High - Low)
2. Period Money Flow Volume = Period Money Flow Multiplier x Volume for the Period
3. Chaikin Money Flow = 21 Period Sum of Money Flow Volume / 21 Period Sum of Volume
There is, however, a problem with this algorithm: it does not account for daily gaps in price action. This leads to the indicator sometimes moving out-of-sync with price action and/or an under-emphasis of the magnitude change of the indicator relative to the change in price action. This is a significant problem for someone trying to read divergences against an underlying.
Note: I have never seen a published attempt to improve this indicator which is why I decided that there had to be a way to do it.
In order to mitigate this issue, I have taken the basic script provided by TradingView and made a key modification. If the open of a candle is outside the range of the previous candle, then the close of the previous candle is used as the "high" for the current candle (in the case of a gap down) or the "low" for the current candle (in the case of a gap up). However, if the close of the current candle exceeds the previous close, highs and lows for the current candle are calculated as normal. I believe this accounts for gaps in price action without significantly altering the original intent of the indicator.
I have made four other minor tweaks:
1. Default style is color coded area above and below the Zero Line
2. Range scaled to +/-100 instead of +/-1 (displays better on graph)
3. Set timeframe to Daily (as that is the timeframe for which this indicator was intended by Chaikin)
4. Length defaults to 21 (which is what Chaikin uses)