See inside Candles: Directionality %; Constituent Bars & GapsSee inside candles based on user-input LTF setting: get data on 'Directionality' of your candle; Gaps (total and Sum; UP and DOWN); Number of Bull or Bear constituent candles
//Features:
-DIRECTIONALITY: compare length of the 'zig-zag' random walk of lower time frame constituent candles, to the full height of the current candle. Resulting % I refer to as 'directionality'.
-GAPs: what i refer to as 'gaps' are also known as Volume imbalances: the gap between previous candles close and current candle's open (if there is one).
--Gaps total (up vs down gaps). Number of Up gaps printed above bar in green, down gaps printed below bar in red.
--Gaps Sum (total summed UP gap, total summed down gaps. Sum of Up gaps printed above bar in green, Sum of down gaps printed below bar in red.
-Candles Total: Numer of LTF up vs down candles within current timeframe candle. Number of up candles printed above bar in green, Number of down candles printed below bar in red.
//USAGE:
-Primary purpose in this was the Directionality aspect. Wanted to get a measure of how choppy vs how directional the internals of a candle were. Idea being that a candle with high % directionality (approaching 100) would imply trending conditions; while a candle which was large range and full bodies but had a low % directionality would imply the internals were back-and-forth and => rebalanced, potentially indicating price may not need to retrace back into it and rebalance further. All rather experimental, please treat it as such: have a play around with it.
-Number of gaps, Sums of up and down gaps, ratio of up and down constituent candles also intended to serve a similar purpose as the above.
-Set the input lower timeframe; this must obviously be lower then your current timeframe. You will significant differences in results depending on the ratio your timeframes (chart timeframe vs user-input timeframe).
//User Inputs:
-Lower timeframe input (setting child candle size within current chart parent candle).
-Choose function from the four listed above.
-typical formating options: Bull color/bear color txt for gaps functions.
-display % unit or not.
-display vertical or horizontal text.
-Set min / max directionality thresholds; and color code results.
-Toggle on/off 'hide results outside of threshold' to declutter the chart.
-choose label style.
//NOTES:
-Directionality thresholds can be set manually; Max and Min thresholds can be set to filter out 'non-extreme' readings.
-Note that directionality % can sometimes exceed 100%, in cases where price trends very strongly and gaps up continuously such that sum of constituent candles is less than total range of parent candle.
-Personally i like the idea of seeking bold, large-range, full bodied candles, with a lower than typical directionality %; indicating that a price move is both significant and it's already done it's rebalancing; I would see this as potentially favourable for continuation (obviously depending on context).
---- Showcase of the other functions beyond Directionality percentage ----
Candles Total (bull vs Bear). ES1! Hourly; ltf = 5min: Candles total: LTF up candles and LTF down candles making up the current HTF candle (constituent number of UP candles printed above in green, Down candles printed below in red):
Gaps SUM. SPX hourly, ltf = 5min. Sum of 'UP' gaps within candle printed above in green, sum of 'DOWN' gaps printed below in red:
Gaps TOTAL: SPX hourly, ltf = 1min. Simply the total of 'up' gaps vs 'down' gaps withing our candle; based on the user input constituent candles within:
Multitimeframe
Bar composition in 1minute | True candlestick colorThe indicator shows the true color of a bar based on the internal composition on 1 minute timeframe and the final outcome. It uses following parameters of 1minute and current timeframe inputs
relative bar close, average volume vs current volume and finally the volume of internal candles.
It follows following steps:
First, it defines the arrays of high, low, close, volume in one minute timeframe
Second, it identifies the negative and positive volume based on the bar closing at one minute timeframe
Third , it adds all the volume and find whether the overall volume is positive or negative for overall bar in higher timeframe (current timeframe)
Fourth, it compare the volume in current timeframe to average of volume in in current timeframe
Fifth, if relative closing, relative volume (current timeframe) and the combined volume (in 1 minute timeframe) gives same outcome then color of the bar is decided whether the bar is bullish, bearish or inconclusive/contnuation.
Through this you get to check price action in 1minute timeframe and the ultimate outcome in current timeframe. this helps in understanding whether the bar is truly bullish or bearish or continuation of the trend
Feel free to connect for any query.
The Trend SetterThe "Trend Setter" script is a technical indicator that combines several other indicators to identify trends and potential entry points in the market. It is designed to work with various financial markets, including stocks, forex, and futures, and can be used on any timeframe.
The script uses the TTM Squeeze indicator, Bollinger Bands, Keltner Channels, CCI, and Parabolic SAR to identify trends and potential entry points. The TTM Squeeze is a custom indicator that identifies periods of low volatility, while the Bollinger Bands and Keltner Channels are used to identify potential breakouts. The CCI is used to identify potential overbought and oversold conditions, and the Parabolic SAR is used to identify potential trend reversals.
The TTM Squeeze indicator is a combination of Bollinger Bands and Keltner Channels. The indicator creates a "squeeze" when the Bollinger Bands move inside the Keltner Channels. This indicates a period of low volatility and is often followed by a period of increased volatility or a breakout. The script uses this information to identify potential trading opportunities.
The Bollinger Bands are a popular indicator used to identify potential breakouts. They consist of a moving average (the basis) and two standard deviation lines (the upper and lower bands). When the price moves outside the bands, it is considered a potential breakout.
Keltner Channels are similar to Bollinger Bands but are based on the Average True Range (ATR) instead of standard deviation. They consist of an exponential moving average (the basis) and two lines that are offset from the basis by a multiple of the ATR. When the price moves outside the channels, it is considered a potential breakout.
The CCI (Commodity Channel Index) is used to identify potential overbought and oversold conditions. It measures the difference between the typical price (the average of the high, low, and close) and a moving average of the typical price. The result is then divided by a multiple of the mean deviation. When the CCI moves above a certain threshold, it is considered overbought, and when it moves below a certain threshold, it is considered oversold.
The Parabolic SAR (Stop and Reverse) is used to identify potential trend reversals. It consists of a series of dots that appear above or below the price, depending on the direction of the trend. When the price crosses the dots, it is considered a potential reversal.
The script plots arrow shapes on the chart to indicate long and short entry points, and can also generate alerts to notify the user of potential trading opportunities. The script uses the various indicators to determine the potential entry points based on the current market conditions.
Overall, the script is designed to help traders identify potential trading opportunities and make more informed trading decisions. However, as with any trading strategy or indicator, it is important to thoroughly test and validate the approach before using it in a live trading environment. Traders should also consider their risk tolerance and other factors before making any trades based on the indicator.
In assembling the different indicators in this script, there is a specific rationale for each one's inclusion, and how they work together to create a comprehensive trading strategy.
The TTM Squeeze indicator is used as a primary filter to identify periods of low volatility, as these are often followed by high volatility and potential breakouts. Bollinger Bands and Keltner Channels are then used to identify potential breakouts, with the former representing the upper and lower boundaries of price action and the latter representing the average price range. The inclusion of both indicators helps to confirm potential breakouts and provide a more comprehensive view of price action.
The CCI indicator is used as a momentum indicator to confirm potential trend reversals, by identifying overbought and oversold conditions. This is important because while breakouts can be identified using the TTM Squeeze and Bollinger Bands/Keltner Channels, they do not necessarily indicate the direction of the breakout. The CCI helps to confirm whether the price is overbought or oversold, and can indicate potential reversals or continuations of the trend.
Finally, the Parabolic SAR is used as a trend-following indicator to identify potential trend reversals, by placing dots above or below the price depending on the direction of the trend. This helps to identify potential reversal points in the trend and can be used in conjunction with other indicators to confirm potential entry and exit points.
In summary, the combination of these indicators is designed to provide a comprehensive view of the market, identifying periods of low volatility, potential breakouts, momentum changes, and trend reversals. By providing clear entry and exit points, the script aims to help traders make more informed trading decisions and improve their overall trading performance.
Weekly and daily separatorsThis script plots vertical line between each trading week (thick, solid) and smaller lines (dotted) between each trading day. This helps kepping a better overview on the aspect of time on the higher timeframes below 1D. The distance of the lines to the top and bottom of the chart is controlled by your chart settings menu under Appearance -> Margins.
T3 OscillatorTL;DR - An Oscillator based on T3 moving average
The T3 moving average is a well known moving average created by Tim TIllson. Oscillator values are created by using the simple formula "source (close by default) - T3 moving average". Tim Tillson used a "volume factor" of 0.7 in his original T3 calculation. I changed this value to 0.618 and added the option to change it if needed/wanted. I also added alarms for zero line crossing upwards and downward, a smoothing option and custom time frames.
Compared to other oscillators like TSI, MACD etc. I observed better signals, especially in trending market situations, from the T3 oscillator (I tested Forex and Crypto).
Usage is simple: If the oscillator is above 0 it indicates a bearish trend. If below 0 it indicates a bullish trend. -> Really simple to use. However it can also be used to determine micro trends and reversals when combined with price action analysis. To keeps things simple I have not added a moving average like many other oscillators because I think it is confusing and does not help (in this particular case).
P.S. I haven't found a T3 oscillator on Trading View. Code is free - do whatever you want with it ;)
ICT Session Opening FVG / Silver Bullet [MK]Students of ICT concepts will know that the first FVG found within particular session periods can identify an important price level for intraday traders.
"Find the first FVG at the start of the session and drag a box from it to the right"....ICT
The script finds the first FVG (either bull or bear) within the following periods:
London Killzone (0200 - 0500) EST
02:00 - 0259
03:00 - 0359
0400 - 0459
Dead Zone (05-00 - 0600) EST
05-00 - 0559
0600 - 0659
NY AM Killzone (0700 - 1100) EST
0700 - 0759
0830 - 0929
0929 - 0959
1000 - 1100 (Silver Bullet)
A chart higher timeframe can be chosen to detect the FVGs and they will be displayed on lower timeframe. Default is 5min for detection. I like to then following price reacting to 5mi FVGs on a 1 min chart.
FVG boxes can be extended to the end of the session, or to any time within the current days trading hours. Colors/Labels/ Session Periods can all be edited. A maximum timeframe for display is available and
timezone can be adjusted.
FVGs are only shown for the current days trading hours.
Jesse Livermore Strategy [Buy & Sell]Jesse Livermore was a famous trader who made a fortune in the early 20th century through his unique approach to trading.
While he did not leave behind a single, specific trading strategy that is attributed to him, I have tried to reproduce one.
His trading strategy was based on understanding market trends and sentiment, and he used several technical indicators to identify potential entry and exit points.
Some of the indicators he used include:
Price Action:
Jesse Livermore relied heavily on price action to make trading decisions.
He believed that the price itself was the best indicator of market sentiment, and that by analyzing the price movement, he could identify trends and market behavior.
Volume:
Livermore also used volume to confirm price movements.
He believed that a rise in volume along with a price increase indicated a strong bullish trend, while a decrease in volume with a price increase indicated a weak trend.
Pivot Points:
Another key component of Jesse Livermore's trading strategy was pivot points.
He used pivot points to identify potential support and resistance levels in the market, which he then used to identify potential entry and exit points.
Jesse Livermore outlined a simple trading system: wait for pivotal points before entering a trade.
When the points come into play, trade them using a buffer, trading in the direction of the overall market.
Let the price dictate your actions and stay with profitable trades until there is good reason to exit the trade.
The one I have tried to reproduce it's based on Pivot High and Low looking back 5 Days, and the average price oscillator.
When the price is bellow the support defined line it's time to Buy ( Long Position ), when the Price line is over the Resistance Line it's time to Sell ( Short Position )
This indicator has to be checked, and tried into a Real-Time context, so using the Replay functionality of TradingView is the best way to see and understand how Signals comes
(NB: look back into the chart without Replay should give you wrong Buy/Sell information)
The Indicator can be used on every TimeFrames, but the better ones are 5min - 15min.
I will add the possibility to choose the TimeFrames value for Pivot High and Low.
I will create a version with Alerts for Buy and Sell and the possibility to integrate it with "3commas Bot" where the best deal can be to set a TP to 1% for each Long or Short Entry.
Let's try it and comment for doubts or questions.
Crypto Price Diffrence
# Compare the price difference between cryptocurrency exchanges of the current cryptocurrency symbol.
# Supports Binance, Bybit, Bitget, Huobi, Mexc, and Gateio.
# The number displayed in the table is a percentage of the price difference, and a "+" indicates that the current exchange is more expensive.
# 현재 보고있는 가상화폐 심볼의 가상화폐 거래소간 가격차이를 비교해줍니다.
# Binance, Bybit, Bitget, Huobi, Mexc, Gateio 를 지원합니다.
# 테이블에 표시되는 수치는 가격차이의 퍼센트이며 +면 현재거래소가 더비싼 상태입니다.
Daily Gaps & Trapped PositionsThis script builds substantially upon the default Gaps script provided by Tradingview. Functionality was added to allow users to decide what price from the previous session is used to determine a daily gap, added support for showing gaps across all timeframes up to the daily time frame, and also allow gaps to be shown even with ETH enabled on the chart. This script provides support across normal securities, futures, and also crypto.
Users can decide between the following selections to determine if a daily gap has formed:
- Previous Session Close
- Previous Session High/Low
- Last RTH Candle High/Low
The other larger piece that was added is something called trapped positions or what some folks familiar with Market Profile would call "single prints". They could also be considered FVGs but they are a specific subset of FVGs as these must from above or below the current session's high/low.
Single prints form above or below a current session's high/low and can be considered an area where price has moved too fast in that area and price will most likely return to these areas at a later point in time. In some teachings, these are also looked at as "trapped shorts" (lighter blue box color) or "trapped supply" (yellow orange box color) which creates an area where there will be potential support (trapped shorts) or resistance (trapped supply) when this area is revisited in the future. Adding these to your chart will simply provide additional areas of interest where you may see buying or selling.
Both gaps and trapped positions have the following options:
- Show only active gaps/trapped positions. Selecting this will only show areas where price has not completely traded through the box.
- Close gaps/trapped positions partially. If this is selected, it will reduce the box size as price is traded through the area. If it is not selected, the box will only disappear once price has traded through the entire box completely.
There are some additional settings that allow you to tailor how many boxes show up on the chart. These settings are as follows:
- Max number of boxes. This setting will only plot up to this number of gaps/trapped positions.
- Minimum Deviation. This will prevent gaps/trapped positions from showing if they are too small relative to average across that last 14 periods.
- Limit Max Box Trail Length (bars). If checkbox is selected, the box will stop being extended after X number of bars given in this input.
DCA Detective | v1.0BINANCE:FETBUSD
The DCA Detective | v1.0 strategy revolutionizes the realm of DCA (Dollar Cost Averaging) trading, integrating advanced trade initiation predicated on savvy Technical Analysis (TA) signals. This strategy's distinctive feature rests in its capacity to leverage TA signals or preset percentage levels to trigger safety orders, providing adaptability based on your preference. Bid farewell to rudimentary safety order placements.
The strategy incorporates a comprehensive array of parameters:
RSI Oversold Level - a predetermined level signaling a potential oversold condition where a price rebound may be imminent.
Divergence Lookback Period - this parameter specifies the duration over which the system scrutinizes for any disparity between price and RSI.
Minimum Bars Between Trades - this guarantees a specific interval between trades, thwarting excessive trading and promoting diversification over time.
Rate of Change (ROC) - a momentum-oriented technical indicator that gauges the percentage alteration in price between the current price and the price a certain number of periods back.
Stochastic Length and Oversold - parameters that delineate the Stochastic Oscillator, another momentum indicator that compares a particular closing price of a security to a spectrum of its prices over a specified period.
Higher Timeframe RSI Length and Oversold Level - for heightened precision, these parameters operate on lower timeframes, offering a wider outlook and aiding in the filtering of market noise.
The DCA Detective | v1.0 strategy deploys bullish divergence identified by the RSI and a crossover of the RSI over the oversold level as primary entry signals. Safety order conditions can be set to either Percentage or Smart, based on your preference. The "Smart" condition utilizes the same rules as the initial entry order to place safety orders.
The strategy also entails additional configuration settings such as the maximum safety orders, safety order price deviation, safety order volume scale, safety order step scale, and take profit percentage.
Main goal is to catch possible market bottom/dip.
In summary, the DCA Detective | v1.0 strategy proposes a sophisticated and nuanced approach to DCA trading. It taps into the potential of TA signals to initiate trades, while using safety orders as a risk management tool, with the intent to minimize possible losses and decrease overall time in trade. This strategy stands as a testament to refined trading tactics, crafted for those who endorse strategic investment and measured risk-taking.
Through webhook integration, the DCA Detective | v1.0 strategy can send signals to 3commas to initiate trades, adjust safety orders, and take profit at the designated percentages. This provides traders with a hands-off approach to trading, allowing them to focus on other areas of their portfolio or strategy while the DCA Detective | v1.0 strategy runs in the background.
So far, I haven't come across a good DCA strategy based on TA orders, so I created my own. I was troubled by my prolonged exposure to red bags, but with proper configuration, this strategy should get you out of the trade as soon as possible. I have managed to enter most of the good coins at an unbeatable average trade time and also eliminate the maximum trade time to less than 10 days !
MTF Trendlines on chart_Pro[vn]Hello Traders .
👉This is an indicator of the trendlines in the analysis series with my trendlines.
- It statistics the upper and lower trend lines of the current Time Frame.
- Pine Script strategy draws pivot points and trendlines on the chart.
- This strategy allows the user to specify the interval to calculate the pivot points and the number of pivot points used to generate the trend lines.
- In the process of trading with the trendline, I see different timeframes showing each trendline differently, many times the trendline in the 15m frame has been broken but I don't know where the price is going, and it takes a lot of time to find support points, resistance to entry or take profit, So I came up with the idea of drawing different timeframes on the same chart in a specified timeframe, and I found it shortened the time to find support and resistance points in trading without having to switch back and forth between timeframes.
- For example, when the H1 trendline breaks downwards, we can determine a high probability that the price will be supported by the trendlines below it. for us to find entry points or exit orders effectively. Or when the price breaks the H1 trendline to go up, the chart shows us the trend lines above that broken H1 line so that we have a more effective entry or take profit point because it is a resistance zone....
- It can shows 7 pairs of trendlines during different times in the chart.
- each timeframe will display two trendlines, one up, and one down.When the price crosses a trendline, only one valid trendline is displayed, while the line crossed is not displayed.
- The upper trendline (down trend) is a red horizontal line, with the timeframe name and the value of its trendline, for example 4H(1.234) means timeframe = H4, the current value of the trendline is 1.234.
- The trendline below (up trend) is the blue horizontal line that also represents the same value as the line above.
- In the Settings section, up to 6 different timeframes can be selected to display those trendlines on the chart.
- Small timeframes such as m1, m3, m5 or D1 I leave the default (cannot be changed) in the 'Length' setting = 50, timeframe is H6, H8, H12 'Length' = 30, the rest of the time can be changed, the default is 20 ...
- Some cases I have applied with this indicator to look for entry points and take profit ...
Xin chào Trader Việt nam.
- Đây là chỉ báo về các đường xu hướng trendline trong chuỗi phân tích với đường xu hướng của tôi. Chỉ báo này là muti trendlines trên biểu đồ , nó hiển thị được tối da 7 cặp đường xu hướng trong các thời gian khác nhau trên 1 biểu đồ.Dựa vào đó các trader có cái nhìn trực quan nhất không phải thay đổi qua lại các thời gian để tìm các đường trendlines, và có thể tìm được những cú hồi hoặc phá ngưỡng để vào lệnh hoặc chốt lời .
- Thực ra trong quá trình giao dịch với đường xu hướng, tôi thấy các khung thời gian khác nhau thì hiển thị mỗi đường xu hướng khác nhau, nhiều khi đường xu hướng trong khung 15m đã bị phá nhưng không biết giá đi đến đâu, và mất rất nhiều thời gian để tìm các điểm hỗ trợ, kháng cự để vào lệnh hoặc chốt lời, nên tôi nảy ra ý tưởng vẽ ra các khung thời gian khác nhau trên cùng 1 biểu đồ trong một khung thời gian được chỉ định, và tôi thấy rút ngắn được thời gian để tìm các điểm hõ trợ , kháng cự trong giao dịch mà không cần phải chuyển qua lại giữa các khung thời gian .
- Chẳng hạn ,khi đường xu hướng H1 bị phá vỡ xuống dưới thì ta có thể xác định được khả năng cao giá sẽ được hỗ trợ bởi những đường xu hướng bên dưới nó. để ta tìm điểm vào lệnh hoặc thoát lệnh cho hiệu quả.Hoặc khi giá phá vỡ đường xu hướng H1 để đi lên , thì trên biểu đồ đã hiện cho ta các đường trendline bên trên đường H1 bị phá vỡ đó để ta có điểm vào hoặc chốt lời hiệu quả hơn vì đó là vùng kháng cự....
- Đường xu hướng bên trên(down trend) là đường kẻ ngang màu đỏ ,có kèm tên timeframe và giá trị của đường xu hướng của nó,ví dụ 4H(1.234) nghĩa là timeframe=4H, giá trị hiện tại đường trendline là 1.234.
- Đường xu hướng bên dưới (up trend) là đường ngang màu xanh cũng thể hiện giá trị như đường bên trên.
- Các timeframe nhỏ như 1m, 3m, 5m hoặc 1D tôi để mặc định (không thay đổi được) trong setting mục 'Length' = 50, timeframe là 6H,8H,12H 'Length' = 30, các thời gian còn lại có thể thay đổi được ,mặc định là 20
- Để điều chỉnh có thể vào setting để thiết lập các thời gian theo nhu cầu.
Buy / Sell Fractal Algorithm with SL Line GenerationThis algorithm is designed for usage across indices.
How it works?
The algorithm uses a variation of fractals, momentum, RSI and LRSI to determine a trends direction.
The Relative Strength Index (RSI) is a momentum-based oscillator used to measure the speed (velocity) and change (magnitude) of directional price movements. It provides a visual means to monitor both the current and historical strength and weakness of a particular market. The strength or weakness is based on closing prices over the duration of a specified trading period, creating a reliable metric of price and momentum changes
Momentum in trading refers to the direction and magnitude of price. Momentum plays a key role in assessing trend strength, and it is important to know when a trend is slowing down. Less momentum does not always lead to a reversal, but it does signal that something is changing, and the trend may consolidate or reverse
Fractals are patterns within price changes which are repeated across thousands of bars. Examples of fractals include the golden ratio, PHI and the spirals of the milk way. They are quite literally a universal concept.
Basics of usage:
When a bullish trend is detected; the algorithm will generate a green "SL Line" at a calculated point, which can be interpreted as an invalidation line.
If the price goes below this line, the bullish trend is invalidated. So long as it holds, the bullish trend is true until the next detection change.
When a bearish trend is detected; the algorithm will generate a red "SL Line", at a calculated point, which can be interpreted as an invalidation line.
If the prices goes above this line, the bearish trend is invalidated. So long as it holds, the bearish trend is true until the next detection change.
When a given trend is invalidated, the SL Line turns yellow and you enter a "pause zone", where neither a bearish nor bullish trend is calculated.
This resets itself on the next trend detection.
Additional information:
I have coded my own backtest to this algorithm, along with plotting the profit / loss of each generated trade.
The profit is calculated by the difference between the open bar of the trade after a long ( or short ) and the following trade.
If we are calculating a short, the resulting value is then multiplied by -1 to get a positive integer.
For calculating a loss we take the value of the open bar of the trade that generates a long, and take the difference between this and the SL line, and similarly for short positions. The code assumes the user is placing their SL at the indicated line.
Within the input settings there are a few customisation options:
Alpha & Fractal Energy Length & Source - Should not be changed.
Highly bands crossover? - Has no visible effect whether on or off. It refers to the fractal chart which in this iteration is not visible and rather a backend mechanic.
Apply fractal energy? - Should generally be left turned on. This is a noise reduction. Disabling will result in over-trading.
Apply normalization? - Has no impact, is solely used to make the fractal values more human-readable rather than decimal format.
Offset - refers to the offset value of the SL Line generations. This should be set to a value that gives you enough breathing room, and remember to include any spreads! Default is 0.2, written in %
Trading hours - This simply gives a session input for the trading hours you want to trade within, and then colours the background green for that session. Trading 24/7 is never a wise strategy, stick to whatever is most optimal for you.
Leverage - Whatever leverage you are using. Default is x20. This will affect the profit / loss calculations accordingly.
Start equity - refers to the equity value you want to backtest with. Some assets will generate NA for this in the backtest label explained later.
Label customisation options.
Note that the backtest label is by default hidden, and appears when you hover over the black label at the current bar. When enabled to visible, it will show a large text label that may cover your chart screen more than you wish.
Alerts -
There are dozens of alert functionalities here; first are the timeframe assignments for each alert, set by default to 2hrs.
These timeframes then affect the asset you select in the corresponding setting.
In total there are 8 additional assets you can set alerts for.
Once you have assigned the timeframe and asset for an alert, you can then check the tick box for that individual alert.
Once done, you set the alert as normal through the tradingview alerts window. Remember to set "alert function calls only"
-
Timers:
I have added some functionality for timers to be set, values are in minutes. These work on the exact time of placement. Do not change the extra symbol formula option.
-
Note that this backtest is not intended as a replacement for tradingview backtest, nor is there a guarantee that historical results are to be replicated in the future. Trading is inherently risky.
iGapFinderHi everybody!
I decided to release this script to help traders keeping track of market gaps on the CME.
The script works in general for any market and at any timeframe.
The script allows the user to:
- Identify price gaps of a customized amplitude (Gap Width)
- Compute the probabilities of filling them (specific for bullish and bearish gaps or cumulative)
- Visualize gaps on the chart through red and green price areas.
- Visualize the last N unfilled bullish and bearish gaps together with their time of creation.
Higher TimeFrame Smooth Moving AveragesScript is designed for those who dislike how plotting a moving average from a higher timeframe on a lower timeframe chart results in a choppy zigzag line when using the standard request.security(syminfo.ticker,"x",ta.sma(src,len)) method.
My more elegant solution was to translate the chart's current timeframe, and the selected higher timeframe into seconds, then check if selected timeframe is Larger than chart timeframe, but not so large that too many bars would be necessary. Then the quotient is calculated by dividing the chosen timeframe (value in seconds) by the chart's timeframe (value in seconds).
Then take that quotient and multiply it by the chosen length. This gives us how many bars of the chart's timeframe would be used in calculating the higher timeframe Moving Average
Use the value to calculate a moving average of choice (SMA,EMA,WMA,LRC,DEMA,TEMA,TRIMA,FRAMA) thanks to @TradingView 's ta library () and @alexgrover 's () for their functions supporting series as length, making this possible.
Basically, get how many of the current chart's bars are in the higher timeframe moving average and use that as the length for calculation using chart's timeframe.
If the higher timeframe relative is too large relative to chart's timeframe, due to bar referencing limits some combinations may not be possible under current limitations, but most will work by either moving chart's timeframe higher or higher timeframe lower assuming you aren't trying to do something too extreme like plotting a weekly moving average onto a 30 second chart etc.
[TTI] ToS MarketForecast Indicator––––HISTORY & CREDITS 🏦
The ThinkorSwim Market Forecast indicator is an adaptation of the Market Forecast indicator originally created for the ThinkorSwim trading platform. This version has been adapted for use in TradingView, replicating the functionality of the original indicator to assist traders in their market analysis.
––––WHAT IT DOES 💡
The ThinkorSwim Market Forecast is a technical indicator designed to identify potential buying and selling opportunities based on market analysis techniques applied to multiple timeframes. It consists of three plots: Momentum (red line), NearTerm (blue line), and Intermediate (green line). These plots tend to cycle on daily, weekly, and monthly basis, respectively. The indicator also includes static lines representing the top, bottom, and reversal zones.
Calculations:
The ThinkorSwim Market Forecast indicator is a technical analysis tool that calculates three separate lines – Momentum, NearTerm, and Intermediate – to help traders identify potential buying and selling opportunities. The calculations are based on market data from multiple timeframes and involve measuring price movements in relation to their recent high and low values. The indicator highlights areas of potential reversals in the upper and lower zones, allowing traders to make more informed decisions on when to enter or exit a position.
––––HOW TO USE IT 🔧
To use the ThinkorSwim Market Forecast indicator, look for simultaneous reversals of the three lines in the upper or lower zones. A Buy signal is generated when all three lines go through a reversal at the same (or almost the same) time in the bottom zone (green cloud). Conversely, a simultaneous reversal in the upper zone (red cloud) suggests a Sell signal.
To add this indicator to your TradingView chart, copy the provided script and paste it into the Pine editor. Save and add the script to your chart, and the indicator will be displayed, allowing you to analyze the market based on the Momentum, NearTerm, and Intermediate lines, as well as the upper and lower reversal zones.
Cauchy Distribution Oscillator by c00l75ITALIANO: Questo script è un indicatore che non viene sovrapposto al grafico dei prezzi. Utilizza una finestra di lookback di 14 periodi (che può essere modificata dall’utente) per calcolare la distribuzione di Cauchy per ogni periodo.
La distribuzione di Cauchy è una distribuzione di probabilità continua che viene utilizzata in statistica. Ha una forma simile a quella della distribuzione normale, ma con code più pesanti. Questo significa che ha una maggiore probabilità di generare valori estremi rispetto alla distribuzione normale. E' una distribuzione di probabilità che descrive nel piano euclideo l'intersezione tra l'asse delle ascisse ed una retta passante per un punto fissato ed inclinata ad un angolo che segue la distribuzione continua uniforme.
Nello script, viene utilizzata una funzione che calcola il valore della distribuzione di Cauchy per un dato valore x, utilizzando altre 2 variabili per le quali ho impostato un valore fisso. Il risultato viene quindi memorizzato in un array e la media viene calcolata per tutti i valori nell’array.
E' un oscillatore un po' "estremo", che misura il momentum del prezzo in maniera decisa e per tanto, secondo la mia opinione, va utilizzato di concerto con altri indicatori per poter prendere decisioni consapevoli.
Ad ogni modo se vi piace mettete un "boost" e lasciate un commento se volete altre funzioni o modifiche su questo script.
ENGLISH: This script is an indicator that is not overlaid on the price chart. It uses a 14-period lookback window (which can be modified by the user) to calculate the Cauchy distribution for each period.
The Cauchy distribution is a continuous probability distribution that is used in statistics. It has a similar shape to the normal distribution, but with heavier tails. This means that it has a higher probability of generating extreme values than the normal distribution. It is a probability distribution that describes in the Euclidean plane the intersection of the x-axis and a line passing through a fixed point and inclined at an angle that follows the uniform continuous distribution.
In the script, a function is used that calculates the value of the Cauchy distribution for a given x value, using 2 other variables for which I set a fixed value. The result is then stored in an array and the mean is calculated for all the values in the array.
It is a somewhat "extreme" oscillator, measuring price momentum in a decisive way and therefore, in my opinion, should be used in concert with other indicators in order to make informed decisions.
Anyway if you like it put a "boost" and leave a comment if you want other functions or modifications on this script.
Dual timeframe calculated candlesA script example to show how you can calculate the value of certain indicators from a higher timeframe at the moment that a bar closes on a shorter timeframe.
In this example the base chart is set to 5 mins and the multiplier is set to 6, so the HTF arrays hold data equivalent to that from the 30 minute chart which will hopefully appear below it on this display.
Each time a 5 minute bar completes, the arrays are updated by checking whether a new high or low has been set. The values for the HTF ATR and EMA are also updated by removing the most recent value from that array and replacing it with the value that would have been calculated based on the close at that time. As such for back testing purposes you'd know exactly what the 30 min chart would have been showing you at any one of the 5 minute intervals. Useful for backtesting strategies if you would rather act on the "up to the minute" HTF data, rather than the HTF data from the last HTF close, which could be significantly delayed if you're using a high enough multiplier.
TimeFiesta by Billy Rock
Introducing TimeFiesta, a unique and fun digital clock timer for TradingView charts, created by Billy Rock. TimeFiesta is designed to help traders, especially scalpers, stay on top of multiple time frame closes with ease.
Features of TimeFiesta:
Customizable display of timer for Current Time Frame, 15 Minutes, 1 Hour, and 4 Hours.
Options to turn ON/OFF each time frame display as per the user's preference.
Adjustable digital clock text size: Small, Medium, and Large.
Multiple location options for the digital clock timer: Top Center, Top Right, and Bottom Right.
TimeFiesta is the perfect companion for those who need to keep an eye on multiple time frames while trading. Its sleek design and user-friendly interface make it a must- have tool for traders of all levels. With TimeFiesta, you'll never miss a crucial time frame close again!
Give credit where it's due: TimeFiesta is created by the talented Billy Rock. Be sure to try this fantastic tool and enhance your trading experience!
Extended Session High/Low - Intraday and daily chartsThis script plots the extended session highest high and lowest low levels. It works on any time frame from 1 minute to daily.
Please note that during the extended session, TradingView stops updating the daily chart. This means that once the script is loaded on a daily chart, it will not be updated until the market opens, unless you manually reload the layout (Ctrl+R). For this reason, it is recommended to use a multi-timeframe layout, so when the pre/post market line is near the extended session high/low on the daily chart, you can compare these values with those on an intraday chart of the same ticker.
The extended session high/low are important for day traders because they represent the maximum and minimum limits within which the trades have taken place during the extended trading hours. This can make them levels of support/resistance that can be useful for planning trend following, reversal and range-bound strategies.
By displaying the extended session high/low on the daily chart, traders can also see if there are any significant levels nearby that are related to the daily time frame, such as trendlines, support/resistance levels, or moving averages. This can help the trader evaluate whether there is enough room for a price movement in the direction of his trading strategy.
Short Sale Restriction (SSR) Level - Intraday and daily chartsThis script plots the Short Sale Restriction (SSR) Level relative to the previous day's closing price. It works on any time frame from 1 minute to daily, showing the correct level even during the extended session.
The Short Sale Restriction (SSR) is a rule of the Securities and Exchange Commission (SEC) that restricts traders from short-selling stocks that are rapidly decreasing in value in an attempt to profit from the price drop. The rule was introduced in 2010, after the 2008 financial crisis, to prevent market manipulation and excessive volatility.
The SSR works as follows: when the price of a particular stock drops 10% compared to the previous day's closing price, the SSR is triggered and a temporary limitation is imposed on traders' ability to short-sell that stock for the rest of the trading day and the following day. During the SSR activation period, traders can still short-sell, but only if the sale is "covered" by another long position on the same stock.
Knowledge of the SSR level is especially important for day traders because it helps them to plan their trading strategies in advance, avoiding situations where short-selling becomes more difficult. Additionally, if a stock has exceeded the SSR threshold, traders can expect an increase in price volatility.
FX Sessions & Killzones ETJust another sessions indicator. Among all the many existing ones, I didn't find anything simple that would cover my needs and that would actually be correct.
New York time is forced here for plotting the stripes so you don't need to worry about the time zone currently set on your chart. The indicator will be accurate during Daylight Saving Time (which, in 2023 for example, started on Sunday, 12 March , 02:00:00 and will be in effect until Sunday, 5 November, 02:00:00).
Adaptive Candlestick Pattern Recognition System█ INTRODUCTION
Nearly three years in the making, intermittently worked on in the few spare hours of weekends and time off, this is a passion project I undertook to flesh out my skills as a computer programmer. This script currently recognizes 85 different candlestick patterns ranging from one to five candles in length. It also performs statistical analysis on those patterns to determine prior performance and changes the coloration of those patterns based on that performance. In searching TradingView's script library for scripts similar to this one, I had found a handful. However, when I reviewed the ones which were open source, I did not see many that truly captured the power of PineScrypt or leveraged the way it works to create efficient and reliable code; one of the main driving factors for releasing this 5,000+ line behemoth open sourced.
Please take the time to review this description and source code to utilize this script to its fullest potential.
█ CONCEPTS
This script covers the following topics: Candlestick Theory, Trend Direction, Higher Timeframes, Price Analysis, Statistic Analysis, and Code Design.
Candlestick Theory - This script focuses solely on the concept of Candlestick Theory: arrangements of candlesticks may form certain patterns that can potentially influence the future price action of assets which experience those patterns. A full list of patterns (grouped by pattern length) will be in its own section of this description. This script contains two modes of operation for identifying candlestick patterns, 'CLASSIC' and 'BREAKOUT'.
CLASSIC: In this mode, candlestick patterns will be identified whenever they appear. The user has a wide variety of inputs to manipulate that can change how certain patterns are identified and even enable alerts to notify themselves when these patterns appear. Each pattern selected to appear will have their Profit or Loss (P/L) calculated starting from the first candle open succeeding the pattern to a candle close specified some number of candles ahead. These P/L calculations are then collected for each pattern, and split among partitions of prior price action of the asset the script is currently applied to (more on that in Higher Timeframes ).
BREAKOUT: In this mode, P/L calculations are held off until a breakout direction has been confirmed. The user may specify the number of candles ahead of a pattern's appearance (from one to five) that a pattern has to confirm a breakout in either an upward or downward direction. A breakout is constituted when there is a candle following the appearance of the pattern that closes above/at the highest high of the pattern, or below/at its lowest low. Only then will percent return calculations be performed for the pattern that's been identified, and these percent returns are broken up not only by the partition they had appeared in but also by the breakout direction itself. Patterns which do not breakout in either direction will be ignored, along with having their labels deleted.
In both of these modes, patterns may be overridden. Overrides occur when a smaller pattern has been detected and ends up becoming one (or more) of the candles of a larger pattern. A key example of this would be the Bearish Engulfing and the Three Outside Down patterns. A Three Outside Down necessitates a Bearish Engulfing as the first two candles in it, while the third candle closes lower. When a pattern is overridden, the return for that pattern will no longer be tracked. Overrides will not occur if the tail end of a larger pattern occurs at the beginning of a smaller pattern (Ex: a Bullish Engulfing occurs on the third candle of a Three Outside Down and the candle immediately following that pattern, the Three Outside Down pattern will not be overridden).
Important Functionality Note: These patterns are only searched for at the most recently closed candle, not on the currently closing candle, which creates an offset of one for this script's execution. (SEE LIMITATIONS)
Trend Direction - Many of the patterns require a trend direction prior to their appearance. Noting TradingView's own publication of candlestick patterns, I utilize a similar method for determining trend direction. Moving Averages are used to determine which trend is currently taking place for candlestick patterns to be sought out. The user has access to two Moving Averages which they may individually modify the following for each: Moving Average type (list of 9), their length, width, source values, and all variables associated with two special Moving Averages (Least Squares and Arnaud Legoux).
There are 3 settings for these Moving Averages, the first two switch between the two Moving Averages, and the third uses both. When using individual Moving Averages, the user may select a 'price point' to compare against the Moving Average (default is close). This price point is compared to the Moving Average at the candles prior to the appearance of candle patterns. Meaning: The close compared to the Moving Average two candles behind determines the trend direction used for Candlestick Analysis of one candle patterns; three candles behind for two candle patterns and so on. If the selected price point is above the Moving Average, then the current trend is an 'uptrend', 'downtrend' otherwise.
The third setting using both Moving Averages will compare the lengths of each, and trend direction is determined by the shorter Moving Average compared to the longer one. If the shorter Moving Average is above the longer, then the current trend is an 'uptrend', 'downtrend' otherwise. If the lengths of the Moving Averages are the same, or both Moving Averages are Symmetrical, then MA1 will be used by default. (SEE LIMITATIONS)
Higher Timeframes - This script employs the use of Higher Timeframes with a few request.security calls. The purpose of these calls is strictly for the partitioning of an asset's chart, splitting the returns of patterns into three separate groups. The four inputs in control of this partitioning split the chart based on: A given resolution to grab values from, the length of time in that resolution, and 'Upper' and 'Lower Limits' which split the trading range provided by that length of time in that resolution that forms three separate groups. The default values for these four inputs will partition the current chart by the yearly high-low range where: the 'Upper' partition is the top 20% of that trading range, the 'Middle' partition is 80% to 33% of the trading range, and the 'Lower' partition covers the trading range within 33% of the yearly low.
Patterns which are identified by this script will have their returns grouped together based on which partition they had appeared in. For example, a Bullish Engulfing which occurs within a third of the yearly low will have its return placed separately from a Bullish Engulfing that occurred within 20% of the yearly high. The idea is that certain patterns may perform better or worse depending on when they had occurred during an asset's trading range.
Price Analysis - Price Analysis is a major part of this script's functionality as it can fundamentally change how patterns are shown to the user. The settings related to Price Analysis include setting the number of candles ahead of a pattern's appearance to determine the return of that pattern. In 'BREAKOUT' mode, an additional setting allows the user to specify where the P/L calculation will begin for a pattern that had appeared and confirmed. (SEE LIMITATIONS)
The calculation for percent returns of patterns is illustrated with the following pseudo-code (CLASSIC mode, this is a simplified version of the actual code):
type patternObj
int ID
int partition
type returnsArray
float returns
// No pattern found = na returned
patternObj TEST_VAL = f_FindPattern()
priorTestVal = TEST_VAL
if not na( priorTestVal )
pnlMatrixRow = priorTestVal.ID
pnlMatrixCol = priorTestVal.partition
matrixReturn = matrix.get(PERCENT_RETURNS, pnlMatrixRow, pnlMatrixCol)
percentReturn = ( (close - open ) / open ) * 100%
array.push(matrixReturn.returns, percentReturn)
Statistic Analysis - This script uses Pine's built-in array functions to conduct the Statistic Analysis for patterns. When a pattern is found and its P/L calculation is complete, its return is added to a 'Return Array' User-Defined-Type that contains numerous fields which retain information on a pattern's prior performance. The actual UDT is as follows:
type returnArray
float returns = na
int size = 0
float avg = 0
float median = 0
float stdDev = 0
int polarities = na
All values within this UDT will be updated when a return is added to it (some based on user input). The array.avg , array.median and array.stdev will be ran and saved into their respective fields after a return is placed in the 'returns' array. The 'polarities' integer array is what will be changed based on user input. The user specifies two different percentages that declare 'Positive' and 'Negative' returns for patterns. When a pattern returns above, below, or in between these two values, different indices of this array will be incremented to reflect the kind of return that pattern had just experienced.
These values (plus the full name, partition the pattern occurred in, and a 95% confidence interval of expected returns) will be displayed to the user on the tooltip of the labels that identify patterns. Simply scroll over the pattern label to view each of these values.
Code Design - Overall this script is as much of an art piece as it is functional. Its design features numerous depictions of ASCII Art that illustrate what is being attempted by the functions that identify patterns, and an incalculable amount of time was spent rewriting portions of code to improve its efficiency. Admittedly, this final version is nearly 1,000 lines shorter than a previous version (one which took nearly 30 seconds after compilation to run, and didn't do nearly half of what this version does). The use of UDTs, especially the 'patternObj' one crafted and redesigned from the Hikkake Hunter 2.0 I published last month, played a significant role in making this script run efficiently. There is a slight rigidity in some of this code mainly around pattern IDs which are responsible for displaying the abbreviation for patterns (as well as the full names under the tooltips, and the matrix row position for holding returns), as each is hard-coded to correspond to that pattern.
However, one thing I would like to mention is the extensive use of global variables for pattern detection. Many scripts I had looked over for ideas on how to identify candlestick patterns had the same idea; break the pattern into a set of logical 'true/false' statements derived from historically referencing candle OHLC values. Some scripts which identified upwards of 20 to 30 patterns would reference Pine's built-in OHLC values for each pattern individually, potentially requesting information from TradingView's servers numerous times that could easily be saved into a variable for re-use and only requested once per candle (what this script does).
█ FEATURES
This script features a massive amount of switches, options, floating point values, detection settings, and methods for identifying/tailoring pattern appearances. All modifiable inputs for patterns are grouped together based on the number of candles they contain. Other inputs (like those for statistics settings and coloration) are grouped separately and presented in a way I believe makes the most sense.
Not mentioned above is the coloration settings. One of the aims of this script was to make patterns visually signify their behavior to the user when they are identified. Each pattern has its own collection of returns which are analyzed and compared to the inputs of the user. The user may choose the colors for bullish, neutral, and bearish patterns. They may also choose the minimum number of patterns needed to occur before assigning a color to that pattern based on its behavior; a color for patterns that have not met this minimum number of occurrences yet, and a color for patterns that are still processing in BREAKOUT mode.
There are also an additional three settings which alter the color scheme for patterns: Statistic Point-of-Reference, Adaptive coloring, and Hard Limiting. The Statistic Point-of-Reference decides which value (average or median) will be compared against the 'Negative' and 'Positive Return Tolerance'(s) to guide the coloration of the patterns (or for Adaptive Coloring, the generation of a color gradient).
Adaptive Coloring will have this script produce a gradient that patterns will be colored along. The more bullish or bearish a pattern is, the further along the gradient those patterns will be colored starting from the 'Neutral' color (hard lined at the value of 0%: values above this will be colored bullish, bearish otherwise). When Adaptive Coloring is enabled, this script will request the highest and lowest values (these being the Statistic Point-of-Reference) from the matrix containing all returns and rewrite global variables tied to the negative and positive return tolerances. This means that all patterns identified will be compared with each other to determine bullish/bearishness in Adaptive Coloring.
Hard Limiting will prevent these global variables from being rewritten, so patterns whose Statistic Point-of-Reference exceed the return tolerances will be fully colored the bullish or bearish colors instead of a generated gradient color. (SEE LIMITATIONS)
Apart from the Candle Detection Modes (CLASSIC and BREAKOUT), there's an additional two inputs which modify how this script behaves grouped under a "MASTER DETECTION SETTINGS" tab. These two "Pattern Detection Settings" are 'SWITCHBOARD' and 'TARGET MODE'.
SWITCHBOARD: Every single pattern has a switch that is associated with its detection. When a switch is enabled, the code which searches for that pattern will be run. With the Pattern Detection Setting set to this, all patterns that have their switches enabled will be sought out and shown.
TARGET MODE: There is an additional setting which operates on top of 'SWITCHBOARD' that singles out an individual pattern the user specifies through a drop down list. The names of every pattern recognized by this script will be present along with an identifier that shows the number of candles in that pattern (Ex: " (# candles)"). All patterns enabled in the switchboard will still have their returns measured, but only the pattern selected from the "Target Pattern" list will be shown. (SEE LIMITATIONS)
The vast majority of other features are held in the one, two, and three candle pattern sections.
For one-candle patterns, there are:
3 — Settings related to defining 'Tall' candles:
The number of candles to sample for previous candle-size averages.
The type of comparison done for 'Tall' Candles: Settings are 'RANGE' and 'BODY'.
The 'Tolerance' for tall candles, specifying what percent of the 'average' size candles must exceed to be considered 'Tall'.
When 'Tall Candle Setting' is set to RANGE, the high-low ranges are what the current candle range will be compared against to determine if a candle is 'Tall'. Otherwise the candle bodies (absolute value of the close - open) will be compared instead. (SEE LIMITATIONS)
Hammer Tolerance - How large a 'discarded wick' may be before it disqualifies a candle from being a 'Hammer'.
Discarded wicks are compared to the size of the Hammer's candle body and are dependent upon the body's center position. Hammer bodies closer to the high of the candle will have the upper wick used as its 'discarded wick', otherwise the lower wick is used.
9 — Doji Settings, some pulled from an old Doji Hunter I made a while back:
Doji Tolerance - How large the body of a candle may be compared to the range to be considered a 'Doji'.
Ignore N/S Dojis - Turns off Trend Direction for non-special Dojis.
GS/DF Doji Settings - 2 Inputs that enable and specify how large wicks that typically disqualify Dojis from being 'Gravestone' or 'Dragonfly' Dojis may be.
4 Settings related to 'Long Wick Doji' candles detailed below.
A Tolerance for 'Rickshaw Man' Dojis specifying how close the center of the body must be to the range to be valid.
The 4 settings the user may modify for 'Long Legged' Dojis are: A Sample Base for determining the previous average of wicks, a Sample Length specifying how far back to look for these averages, a Behavior Setting to define how 'Long Legged' Dojis are recognized, and a tolerance to specify how large in comparison to the prior wicks a Doji's wicks must be to be considered 'Long Legged'.
The 'Sample Base' list has two settings:
RANGE: The wicks of prior candles are compared to their candle ranges and the 'wick averages' will be what the average percent of ranges were in the sample.
WICKS: The size of the wicks themselves are averaged and returned for comparing against the current wicks of a Doji.
The 'Behavior' list has three settings:
ONE: Only one wick length needs to exceed the average by the tolerance for a Doji to be considered 'Long Legged'.
BOTH: Both wick lengths need to exceed the average of the tolerance of their respective wicks (upper wicks are compared to upper wicks, lower wicks compared to lower) to be considered 'Long Legged'.
AVG: Both wicks and the averages of the previous wicks are added together, divided by two, and compared. If the 'average' of the current wicks exceeds this combined average of prior wicks by the tolerance, then this would constitute a valid 'Long Legged' Doji. (For Dojis in general - SEE LIMITATIONS)
The final input is one related to candle patterns which require a Marubozu candle in them. The two settings for this input are 'INCLUSIVE' and 'EXCLUSIVE'. If INCLUSIVE is selected, any opening/closing variant of Marubozu candles will be allowed in the patterns that require them.
For two-candle patterns, there are:
2 — Settings which define 'Engulfing' parameters:
Engulfing Setting - Two options, RANGE or BODY which sets up how one candle may 'engulf' the previous.
Inclusive Engulfing - Boolean which enables if 'engulfing' candles can be equal to the values needed to 'engulf' the prior candle.
For the 'Engulfing Setting':
RANGE: If the second candle's high-low range completely covers the high-low range of the prior candle, this is recognized as 'engulfing'.
BODY: If the second candle's open-close completely covers the open-close of the previous candle, this is recognized as 'engulfing'. (SEE LIMITATIONS)
4 — Booleans specifying different settings for a few patterns:
One which allows for 'opens within body' patterns to let the second candle's open/close values match the prior candles' open/close.
One which forces 'Kicking' patterns to have a gap if the Marubozu setting is set to 'INCLUSIVE'.
And Two which dictate if the individual candles in 'Stomach' patterns need to be 'Tall'.
8 — Floating point values which affect 11 different patterns:
One which determines the distance the close of the first candle in a 'Hammer Inverted' pattern must be to the low to be considered valid.
One which affects how close the opens/closes need to be for all 'Lines' patterns (Bull/Bear Meeting/Separating Lines).
One that allows some leeway with the 'Matching Low' pattern (gives a small range the second candle close may be within instead of needing to match the previous close).
Three tolerances for On Neck/In Neck patterns (2 and 1 respectively).
A tolerance for the Thrusting pattern which give a range the close the second candle may be between the midpoint and close of the first to be considered 'valid'.
A tolerance for the two Tweezers patterns that specifies how close the highs and lows of the patterns need to be to each other to be 'valid'.
The first On Neck tolerance specifies how large the lower wick of the first candle may be (as a % of that candle's range) before the pattern is invalidated. The second tolerance specifies how far up the lower wick to the close the second candle's close may be for this pattern. The third tolerance for the In Neck pattern determines how far into the body of the first candle the second may close to be 'valid'.
For the remaining patterns (3, 4, and 5 candles), there are:
3 — Settings for the Deliberation pattern:
A boolean which forces the open of the third candle to gap above the close of the second.
A tolerance which changes the proximity of the third candle's open to the second candle's close in this pattern.
A tolerance that sets the maximum size the third candle may be compared to the average of the first two candles.
One boolean value for the Two Crows patterns (standard and Upside Gapping) that forces the first two candles in the patterns to completely gap if disabled (candle 1's close < candle 2's low).
10 — Floating point values for the remaining patterns:
One tolerance for defining how much the size of each candle in the Identical Black Crows pattern may deviate from the average of themselves to be considered valid.
One tolerance for setting how close the opens/closes of certain three candle patterns may be to each other's opens/closes.*
Three floating point values that affect the Three Stars in the South pattern.
One tolerance for the Side-by-Side patterns - looks at the second and third candle closes.
One tolerance for the Stick Sandwich pattern - looks at the first and third candle closes.
A floating value that sizes the Concealing Baby Swallow pattern's 3rd candle wick.
Two values for the Ladder Bottom pattern which define a range that the third candle's wick size may be.
* This affects the Three Black Crows (non-identical) and Three White Soldiers patterns, each require the opens and closes of every candle to be near each other.
The first tolerance of the Three Stars in the South pattern affects the first candle body's center position, and defines where it must be above to be considered valid. The second tolerance specifies how close the second candle must be to this same position, as well as the deviation the ratio the candle body to its range may be in comparison to the first candle. The third restricts how large the second candle range may be in comparison to the first (prevents this pattern from being recognized if the second candle is similar to the first but larger).
The last two floating point values define upper and lower limits to the wick size of a Ladder Bottom's fourth candle to be considered valid.
█ HOW TO USE
While there are many moving parts to this script, I attempted to set the default values with what I believed may help identify the most patterns within reasonable definitions. When this script is applied to a chart, the Candle Detection Mode (along with the BREAKOUT settings) and all candle switches must be confirmed before patterns are displayed. All switches are on by default, so this gives the user an opportunity to pick which patterns to identify first before playing around in the settings.
All of the settings/inputs described above are meant for experimentation. I encourage the user to tweak these values at will to find which set ups work best for whichever charts they decide to apply these patterns to.
Refer to the patterns themselves during experimentation. The statistic information provided on the tooltips of the patterns are meant to help guide input decisions. The breadth of candlestick theory is deep, and this was an attempt at capturing what I could in its sea of information.
█ LIMITATIONS
DISCLAIMER: While it may seem a bit paradoxical that this script aims to use past performance to potentially measure future results, past performance is not indicative of future results . Markets are highly adaptive and often unpredictable. This script is meant as an informational tool to show how patterns may behave. There is no guarantee that confidence intervals (or any other metric measured with this script) are accurate to the performance of patterns; caution must be exercised with all patterns identified regardless of how much information regarding prior performance is available.
Candlestick Theory - In the name, Candlestick Theory is a theory , and all theories come with their own limits. Some patterns identified by this script may be completely useless/unprofitable/unpredictable regardless of whatever combination of settings are used to identify them. However, if I truly believed this theory had no merit, this script would not exist. It is important to understand that this is a tool meant to be utilized with an array of others to procure positive (or negative, looking at you, short sellers ) results when navigating the complex world of finance.
To address the functionality note however, this script has an offset of 1 by default. Patterns will not be identified on the currently closing candle, only on the candle which has most recently closed. Attempting to have this script do both (offset by one or identify on close) lead to more trouble than it was worth. I personally just want users to be aware that patterns will not be identified immediately when they appear.
Trend Direction - Moving Averages - There is a small quirk with how MA settings will be adjusted if the user inputs two moving averages of the same length when the "MA Setting" is set to 'BOTH'. If Moving Averages have the same length, this script will default to only using MA 1 regardless of if the types of Moving Averages are different . I will experiment in the future to alleviate/reduce this restriction.
Price Analysis - BREAKOUT mode - With how identifying patterns with a look-ahead confirmation works, the percent returns for patterns that break out in either direction will be calculated on the same candle regardless of if P/L Offset is set to 'FROM CONFIRMATION' or 'FROM APPEARANCE'. This same issue is present in the Hikkake Hunter script mentioned earlier. This does not mean the P/L calculations are incorrect , the offset for the calculation is set by the number of candles required to confirm the pattern if 'FROM APPEARANCE' is selected. It just means that these two different P/L calculations will complete at the same time independent of the setting that's been selected.
Adaptive Coloring/Hard Limiting - Hard Limiting is only used with Adaptive Coloring and has no effect outside of it. If Hard Limiting is used, it is recommended to increase the 'Positive' and 'Negative' return tolerance values as a pattern's bullish/bearishness may be disproportionately represented with the gradient generated under a hard limit.
TARGET MODE - This mode will break rules regarding patterns that are overridden on purpose. If a pattern selected in TARGET mode would have otherwise been absorbed by a larger pattern, it will have that pattern's percent return calculated; potentially leading to duplicate returns being included in the matrix of all returns recognized by this script.
'Tall' Candle Setting - This is a wide-reaching setting, as approximately 30 different patterns or so rely on defining 'Tall' candles. Changing how 'Tall' candles are defined whether by the tolerance value those candles need to exceed or by the values of the candle used for the baseline comparison (RANGE/BODY) can wildly affect how this script functions under certain conditions. Refer to the tooltip of these settings for more information on which specific patterns are affected by this.
Doji Settings - There are roughly 10 or so two to three candle patterns which have Dojis as a part of them. If all Dojis are disabled, it will prevent some of these larger patterns from being recognized. This is a dependency issue that I may address in the future.
'Engulfing' Setting - Functionally, the two 'Engulfing' settings are quite different. Because of this, the 'RANGE' setting may cause certain patterns that would otherwise be valid under textbook and online references/definitions to not be recognized as such (like the Upside Gap Two Crows or Three Outside down).
█ PATTERN LIST
This script recognizes 85 patterns upon initial release. I am open to adding additional patterns to it in the future and any comments/suggestions are appreciated. It recognizes:
15 — 1 Candle Patterns
4 Hammer type patterns: Regular Hammer, Takuri Line, Shooting Star, and Hanging Man
9 Doji Candles: Regular Dojis, Northern/Southern Dojis, Gravestone/Dragonfly Dojis, Gapping Up/Down Dojis, and Long-Legged/Rickshaw Man Dojis
White/Black Long Days
32 — 2 Candle Patterns
4 Engulfing type patterns: Bullish/Bearish Engulfing and Last Engulfing Top/Bottom
Dark Cloud Cover
Bullish/Bearish Doji Star patterns
Hammer Inverted
Bullish/Bearish Haramis + Cross variants
Homing Pigeon
Bullish/Bearish Kicking
4 Lines type patterns: Bullish/Bearish Meeting/Separating Lines
Matching Low
On/In Neck patterns
Piercing pattern
Shooting Star (2 Lines)
Above/Below Stomach patterns
Thrusting
Tweezers Top/Bottom patterns
Two Black Gapping
Rising/Falling Window patterns
29 — 3 Candle Patterns
Bullish/Bearish Abandoned Baby patterns
Advance Block
Collapsing Doji Star
Deliberation
Upside/Downside Gap Three Methods patterns
Three Inside/Outside Up/Down patterns (4 total)
Bullish/Bearish Side-by-Side patterns
Morning/Evening Star patterns + Doji variants
Stick Sandwich
Downside/Upside Tasuki Gap patterns
Three Black Crows + Identical variation
Three White Soldiers
Three Stars in the South
Bullish/Bearish Tri-Star patterns
Two Crows + Upside Gap variant
Unique Three River Bottom
3 — 4 Candle Patterns
Concealing Baby Swallow
Bullish/Bearish Three Line Strike patterns
6 — 5 Candle Patterns
Bullish/Bearish Breakaway patterns
Ladder Bottom
Mat Hold
Rising/Falling Three Methods patterns
█ WORKS CITED
Because of the amount of time needed to complete this script, I am unable to provide exact dates for when some of these references were used. I will also not provide every single reference, as citing a reference for each individual pattern and the place it was reviewed would lead to a bibliography larger than this script and its description combined. There were five major resources I used when building this script, one book, two websites (for various different reasons including patterns, moving averages, and various other articles of information), various scripts from TradingView's public library (including TradingView's own source code for *all* candle patterns ), and PineScrypt's reference manual.
Bulkowski, Thomas N. Encyclopedia of Candlestick Patterns . Hoboken, New Jersey: John Wiley & Sons Inc., 2008. E-book (google books).
Various. Numerous webpages. CandleScanner . 2023. online. Accessed 2020 - 2023.
Various. Numerous webpages. Investopedia . 2023. online. Accessed 2020 - 2023.
█ AKNOWLEDGEMENTS
I want to take the time here to thank all of my friends and family, both online and in real life, for the support they've given me over the last few years in this endeavor. My pets who tried their hardest to keep me from completing it. And work for the grit to continue pushing through until this script's completion.
This belongs to me just as much as it does anyone else. Whether you are an institutional trader, gold bug hedging against the dollar, retail ape who got in on a squeeze, or just parents trying to grow their retirement/save for the kids. This belongs to everyone.
Private Beta for new features to be tested can be found here .
Vires In Numeris
Inversion GapsAn inverted fair value gap (FVG) occurs when candles start closing below a bullish FVG or above a bearish FVG and in this case, support FVGs become resistances and vice versa. This is a smart money concept introduced by ICT. While we a number of have indicators for FVGs, we don't have any for inversion FVGs. This indicator is just for that - it shows FVGs only after they're inverted.
The meat of it comes from being able to plot HTF inverted FVGs in LTF. In the above BTC chart, you can see M15 inverted FVGs plotted on M1 chart and you can see price respecting them. Mitigations can also be shown as lines (as you can see in the chart).
You can also setup alerts for formation and mitigation of such inversion FVGs.