Volume Weighted Pivot Point Moving Averages VPPMAAs traders and investors, we are constantly on the lookout for tools that can assist us in making informed decisions. While there are countless technical analysis tools available, sometimes even small, simple scripts can provide valuable insights. In this post, we will explore the Volume-Weighted Pivot Point Moving Average (PPMA) Indicator – a modest yet helpful script that could potentially enhance your trading experience.
Background
// © peacefulLizard50262
//@version=5
indicator("PPMA", overlay = true)
vppma(left, right)=>
signal = ta.change(ta.pivothigh(high, left, right)) or ta.change(ta.pivotlow(low, left, right))
var int count = na
var float sum = na
var float volume_sum = na
if not signal
count := nz(count ) + 1
sum := nz(sum ) + close * volume
volume_sum := nz(volume_sum ) + volume
else
count := na
sum := na
volume_sum := na
sum/volume_sum
left = input.int(50, "Pivot Left", 0)
plot(vppma(left, 0))
The Concept Behind PPMA Indicator
The Volume-Weighted Pivot Point Moving Average (PPMA) Indicator is a straightforward technical analysis tool that aims to help traders identify potential market turning points and trends. It does this by calculating a moving average based on price and volume data while considering pivot highs and pivot lows. The PPMA Indicator is designed to be more responsive than traditional moving averages by incorporating volume into its calculations.
Understanding the Script
The script is compatible with version 5 of the TradingView Pine Script language, and it features an overlay setting, allowing the indicator to be plotted directly onto the price chart. The customizable pivot left input enables traders to adjust the sensitivity of the pivot points.
The script first identifies pivot points, which are areas where the price changes direction. It then calculates the volume-weighted average price (VWAP) of each trading period between the pivot points. Finally, it plots the PPMA line on the chart, providing a visual representation of the volume-weighted average prices.
Using the PPMA Indicator
To use the PPMA Indicator, simply add the script to your TradingView chart. The indicator will plot the PPMA line directly onto the price chart. You can adjust the pivot left input to modify the sensitivity of the pivot points, depending on your preferred trading style.
When the PPMA line is trending upward, it may indicate a potential bullish trend. Conversely, a downward-trending PPMA line could suggest a bearish trend. The PPMA Indicator can be used in conjunction with other technical analysis tools to confirm potential trend changes and to establish entry or exit points for trades.
Conclusion
While the Volume-Weighted Pivot Point Moving Average (PPMA) Indicator may not be a game-changer, it is a modest yet helpful tool for traders looking to enhance their technical analysis. By incorporating volume into its calculations, the PPMA Indicator aims to provide more responsive signals compared to traditional moving averages. As with any trading tool, it is crucial to conduct your own analysis and combine multiple indicators before making any trading decisions.
Cari dalam skrip untuk "THE SCRIPT"
Trading Zones based on RS / Volume / PullbackThis is an Indicator which identifies different Trading Zones on the chart.
This should be Primarily used for Long Trades.
Trading Zones: and the Reasoning behind them
Long Zone -> One can do a Potential Entry (Buy) when this Zone is identified, but one could also wait for 'Entry Zone' (explained next) for a better Risk/Reward Trade.
Long Zones are identified with the help of Relative Strength and by an Intermediate Top in price.
Entry Zone -> This can be a better Risk/Reward zone to enter positions within the Long Zone.
Entry Zone is identified by a Pullback in Price & Volume contraction after the Long Zone is activated
Warning Zone -> One needs to be careful in this zone, no need to panic, Script will now try to find an Exit when Price Retraces towards Highs.
Warning Zone identifies weakness in the Price using Relative Strength of the current Stock (w.r.t. the Reference Symbol configured) and the severity of Pullback in Price.
Exit Zone -> are found only after transitioning to Warning Zone, this is a Zone which helps in minimising losses after a trade has gone into losses. Exit Zone is identified by making sure a local peak forms in Warning Zone. However, there are instances when Exit Zone detection can get prolonged when a local price peak is not formed soon enough. So one needs to be careful and use other strategies for exit.
------------------------------------------------------------------------------------
What is different in this Script:
The Script uses Relative Strength in combination with Pullback in Price from Highs in a Novel way.
Over-trading is avoided by ignoring Sideways price movements, using Relative Strength.
Only Trending Upward movement is detected and traded.
How to use this Indicator:
Use these 'Trading Zones' only as a reference so it can minimise your time in screening stocks.
Preferred Settings for using the Indicator:
Stick to 1-Day candles
Keep Relative Symbol as "Nifty" for Indian Stocks.
For US stocks, we can use "SPX" as the Relative Symbol.
//----------------
FEW EXAMPLES:
//----------------
ASIANPAINT
TATAMOTORS
TITAN
ITC
DIVISLAB
MARUTI
---------------------------------------------
Feedback is welcome.
Volume-based Support & Resistance Zones-V1 By Trade Mastership™ The all-new Support & Resistance Zones indicator, which has been upgraded to offer traders more powerful features and functionality. This innovative indicator identifies high-volume fractal lows or highs to create zones based on the size of the wick for that timeframe's candle. This makes it easy for traders to visualize which price levels are the most significant for either a trend continuation or a reversal when zones are broken and retested.
The original script for this indicator was created by Trade Mastership, with additional modifications by L N Behera. Credit goes to both of them for the majority of the logic behind this script. Since then, the script has been improved with several changes, including:
Changing the default S/R lines from plots to lines, and giving users the option to change between solid, dashed, or dotted lines for both S/R lines
Adding additional timeframes and more options for TF1, beyond the current TF. Now, users have four timeframes to plot S/R zones from
Giving users the option to easily change the line thickness for all S/R lines
Making it easier to change the colors of S/R lines and zones by consolidating the options under settings (rather than under style)
Adding extensions to active SR Zones to extend all the way right
Adding the option to extend or not extend the previous S/R zones up to the next S/R zone
Adding optional timeframe labels to active S/R zones, with left and right options, as well as the option to adjust how far to the right the label is set
Fixing an issue where the higher timeframe S/R zone was not properly starting from the high/low of fractal. Now, any higher timeframe S/R will begin exactly at the High/Low points. Note that this may not work perfectly on stocks, and if a fractal high/low is too many bars in the past, it will revert to a default max bars back to avoid script errors.
Adding a function to prevent S/R zones from lower timeframes displaying while on a higher timeframe. This helps clean up the chart quite a bit.
Creating arrays for each timeframe's boxes and lines so that the number of S/R zones can be controlled for each timeframe and limit memory consumption.
Adding new alert options and customized alert messages
Here's how this indicator works: it looks for fractal highs or fractal lows with volume that pierces above the volume's Moving Average. This moving average value can be modified in the settings for each timeframe. The fractal highs will be confirmed with three successive higher highs followed by two successive lower highs and vice versa for the fractal lows. The zone is created from the fractal high/low and the close of the candle for whatever timeframe you selected. The bigger the zone, the more significant that zone is.
Traders can disable any zone, change the zones to show lines only, and modify all the colors, transparencies, and thickness of lines for all the zones. To create alerts, traders can enable the types of alerts they want for each timeframe in the indicator's settings. After applying changes, right-click on one of the zones on the chart, and click "Add Alert on Vol S/R Zones." You do not need to add a title, as the correct alert messages are already built-in.
The latest update has migrated the script to Pine Script Version 5 and added a higher number of total boxes/lines to show on the chart. It has also increased the max bars count to the maximum Pine Script allows, enabling traders to utilize as many bars as possible when drawing the left side of SR zones that are very far back on the chart. Additionally, the update fixed issues where the indicator would not load on 1 minute and 3-minute charts unless higher timeframe SR zones
Three-Day Rolling PivotThe three-day rolling pivot is another pivot concept,
which may be used by intermediate positions, for several days or even weeks.
It can be utilized in many ways, such as to determine an entry point or trailing stop.
As the name suggests, this pivot is based on the last three days.
I learned this concept of the book "The logical Trader" by Mark Fisher.
Kudos go to him!
My version of the Three-Day Rolling Pivot uses actual data!
And all similar scripts I have found so far calculate future data and don't take into account the original data.
I hope this script will help some people to do some better decisions.
And I am pleased to get some advice to make this script even better!
Future data vs original data
Pine Script v5 Reference Manual:
Merge strategy for the requested data position... This merge strategy can lead to undesirable effect of getting data from "future" on calculation on history. This is unacceptable in backtesting strategies, but can be useful in indicators.
e2e4 on Stack Overflow said:
Pine v1-v2's security() function is using the lookahead parameter by default, which could be modified in v3-v5...
stackoverflow.com
I haven't found a script which put this into account jet.
I leave this option available for people that wanna more speculated data. But it's disabled by default.
Long/Short Example
You can enter Long when the market cross over the upper line (default color is green) and you should put your trailing stop 1-5 ticks below the lower line (default color is red).
The opposite when Shorting, then the market has to cross down the lower line and your trailing stop should be 1-5 ticks above the upper line.
How does this script work:
First it fetches the highest high of ...
yesterday,
the day before yesterday,
and the day before that.
After that the script looks for the highest high of all three.
Next it does the same for previous lowest low.
Last but not least, it fetches the closing price of the last day.
After that it adds all three prices together and divide them by three.
This result in a three day pivot price.
Then it adds the highest high and lowest low of the three last days and divide it by two.
This gives us the second number we need to calculate the differential.
The differential is the gap between the three day pivot price and the second number.
Sometimes the second number is bigger than the three day pivot price so I took that into account too. Other wise the colors plotted would be on the wrong site.
Finally, the script is rounding the numbers to the nearest minimum tick of that security.
Vertical Lines 2A vertical line plotting function is missing in Pinescript. This is another method to plot vertical line on a chart, and an improvement on my previous script "vertical lines" .
The script hacks the plotcandle function to display just the wicks without the body. This hack simulates a vertical line. The body of the candle is non-existing since the open and close are the same and its color is set to null. The wicks are abutting resulting in a continuous vertical line.
Drawbacks include inability to set width and transparency of the lines. The plotcandle function does not allow setting the width and transparency of the wicks. This feature would be desirable.
The crossing of the RSI of overbought and undersold zones is used as an example in this published script. Any indicator can be used and this script can be executed on any other indicator by using "add indicator" on the desired indicator, and selecting the indicator as the source. I added crossover lines on the plotted RSI as an example.
//////////////////////////////////////////////////////Breakdown of the script////////////////////////////////////////////////////////
The src input determines which price data is used for the highest value calculation. By default, it is set to the close price.
The length input determines the length of the RSI calculation. By default, it is set to 14.
The mult input determines the multiplier of the highest value that is used to determine the height of the vertical lines. By default, it is set to 100%, meaning the lines will reach the highest value in the dataset.
The top and bot inputs determine the overbought and oversold levels for the RSI. By default, they are set to 70 and 30, respectively.
The current_rsi and previous_rsi variables calculate the RSI values for the current bar and the previous bar, respectively.
The hi_value variable finds the highest value in the dataset, and the hi variable calculates the height of the vertical lines based on the highest value and the user-defined multiplier. The lo variable calculates the distance between the highest value and the current price data.
The uph, dnh, upl, and dnl variables determine the height and low of the vertical lines for when the RSI crosses overbought or oversold levels.
The if statements check if the RSI has crossed overbought or oversold levels and set the uph, dnh, upl, and dnl variables accordingly.
Finally, the plotcandle() function is used to plot the vertical lines on the chart. The open and close values are set to the src input, and the high and low values are set to the uph, dnh, upl, and dnl variables. The bordercolor argument is set to na to hide the borders of the lines, and the wickcolor argument is set to green or red, depending on whether the line is an overbought or oversold crossover.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Range Analysis - By LeviathanThe Interactive Range Analysis script is an essential tool for analyzing price ranges. It automatically draws important range levels, generates a Volume Profile or Open Interest profile and horizontal/vertical heatmaps, plots the anchored VWAP, draws Fibonacci levels, and much more.
How to use the indicator:
1. The script will prompt you to select the "Start Time" and "End Time" using Tradingview's interactive interface. These two points will determine the length of the range.
2. Once you have selected the range, the script will automatically anchor the range highs and lows to the highest and lowest close/wick/hlc3/ohlc4 (whichever you prefer).
3. You can then begin exploring different tools and options such as Quarters, Eighths, Fibonacci, Outer Levels, VWAP, Horizontal Volume/OI Heatmap, Vertical Volume/OI Heatmap, Fixed Range Volume Profile, Open Interest Profile, Value Area, VAH, VAL, and POC.
4. You can adjust the range by dragging the Start Time and End Time anchors or by removing/reapplying the script.
Tool overview
Range Levels
After selecting your preferred time range, the script will identify and draw a range high level and a range low level, which serve as a base for other important levels. “Half” is the level halfway between the range high and range low. “Quarters” will, as the name suggests, split the range into four equal zones (quarters) and “Eighths” will split the range into eight equal zones (eighths).
”Fibonacci” option allows you to display Fibonacci retracement levels (0.786, 0.618, 0.382, 0.236). “VWAP” will plot a Volume Weighted Average Price, anchored to the start of the range. “Direction” input lets you choose whether your range is UP or DOWN trending in order to make sure that the Fibonacci levels and labels are generated and assigned correctly. With “Outer” turned ON, the script will also generate active levels (quarters/eighths/Fibonacci) above and below the selected price range. “Extend Right” will extend all levels to the right indefinitely, while “Extend (+Bars)” lets you choose how far right the levels get extended. “Diagonal Line” is drawn from the bottom left of the range to the top right of the range or from the top left of the range to the bottom right of the range, depending on the “Direction” input.
Volume Profile / Open Interest Profile
After selecting the “Data Type”, Volume Profile or OI Profile can be generated by turning ON the “Volume/OI Profile” option.
“Resolution” input defines the amount of nodes/rows in the range that are used in profile/heatmap generation for distributing the data. While you can increase the “Resolution” to get better, more granular profiles, you should keep in mind that you might need to lower the resolution when generating profiles for larger ranges.
”Node Type” offers you two options when it comes to the representation of data: Up/Down - divides a node in two sections for up volume/OI and down volume/OI, Total - one node for total volume/OI and Delta - net difference in up volume/OI and down volume/OI.
”Profile Position” lets you choose whether the profile is positioned on the left side of the range or on the right side of the range.
“Profile Direction” determines whether the profile nodes are facing right or left.
“Profile Type” enables you to visualize the nodes in a classic way (Type 1) or in a way where down volume/negative OI are positioned on the left side of the y axis and up volume/positive OI on the right side of the y axis.
“Node Size (%)” defines how much space in the range can be taken by the profile’s nodes. Eg. 50% will allow the largest node to extend to the middle of the range (and others scaled accordingly), 100% will allow the largest node to extend the max right point of the range (and others scaled accordingly).
”Value Area (%)” defines the VA zone, which represents the area where the most volume occured (usually 70% or 68%).
”Horizontal Heatmap” will display a heatmap-like overlay, that will help you identify the price levels where most volume/open interest action occurred.
”Vertical Heatmap” will display a heatmap-like overlay, that will help you identify the points in time where most volume/open interest action occurred.
A more detailed description of this indicator is coming in the next few days.
Important:
* If volume or OI profile does not get generated, try lowering the resolution.
* Once in a while, the script will disappear from your chart. Just remove and reapply.
* Open Interest data is only avaiable on Binance Perpetual Futures pairs
To learn more, read the tooltips in the indicator’s settings and stay tuned for upcoming additions (Range Market Structure, Liquidation Levels, Range Statistics,…)
The Strat [LuxAlgo]The Strat indicator is a full toolkit regarding most of the concepts within "The Strat" methodology with features such as candle numbering, pivot machine gun (PMG) highlighting, custom combo highlighting, and various statistics included.
Alerts are also included for the detection of specific candle numbers, custom combos, and PMGs.
🔶 SETTINGS
Show Numbers on Chart: Shows candle numbering on the chart.
Style Candles: Style candles based on the detected number. Only effective on non-line charts and if the script is brought to the front.
🔹 Custom Combo Search
Combo: User defined combo to be searched by the script. Combos can be composed of any series of numbers including (1, 2, -2, 3), e.g : 2-21. No spaces or other characters should be used.
🔹 Pivot Machine Gun
Show Labels: Highlight detected PMGs with a label.
Min Sequence Length: Minimum sequence length of consecutive higher lows/lower highs required to detect a PMG.
Min Breaks: Minimum amount of broken previous highs/lows required to detect a PMG.
Show Levels: Show levels of the broken highs/lows.
🔹 Pivot Combos
Pivot Lookback: Lookback period used for detecting pivot points.
Right Bars Scan: Number of bars scanned to the right side of a detected pivot.
Left Bars Scan: Number of bars scanned to the left side of a detected pivot.
🔹 Dashboard
Show Dashboard: Displays statistics dashboard on chart.
Numbers Counter: Displays the numbers counter section on the dashboard.
Pivot Combos: Displays pivots combo section on the dashboard.
%: Display the percentage of detected pivot combos on the dashboard instead of absolute numbers.
Pivot Combos Rows: Number of rows displayed by the "Pivots Combo" dashboard section.
Show MTF: Showa MTF candle numbering on the dashboard.
Location: Location of the dashboard on the chart.
Size: Size of the displayed dashboard.
🔶 USAGE
This script allows users with an understanding of The Strat to quickly highlight elements such as candle numbers, pivot machine guns, and custom combos. The usage for these concepts is given in the sub-sections below.
🔹 Candle Numbers
The Strat assigns a number to individual candles, this number is determined by the current candle position relative to the precedent candle, these include:
Number 1 - Inside bar, occurs when the previous candle range engulfs the current one.
Number 2 Up - Upside Directional Bar, occurs when the current price high breaks the previous high while the current low is lower than the previous high.
Number 2 Down - Downside Directional Bar, occurs when the current price low breaks the previous low while the current high is higher than the previous low.
Number 3 - Outside bar, occurs when the current candle range engulfs the previous one.
The script can highlight the number of a candle by using labels but can also style candles by depending on the candle number. Inside bars (1) only have their candle wick highlighted, directional bars (2) (-2) only have their candle body highlighted. Outside bars have their candle range highlighted.
Note that downside directional bars are highlighted with the number -2.
Users can see the total amount of times a specific candle number is detected on the historical data on the dashboard available within the settings, as well as the number of times a candle number is detected relative to the total amount of detected candle numbers expressed as a percentage.
It is also possible to see the current candle numbers returned by multiple timeframes on the dashboard.
🔹 Searching For Custom Combos
Combos are made of a sequence of two or more candle numbers. These combos can highlight multiple reversals/continuation scenarios. Various common combos are documented by The Strat community.
This script allows users to search for custom combos by entering them on the Combo user setting field.
When a user combo is found, it is highlighted on the chart as a box highlighting the combo range.
🔹 Pivot Combos
It can be of interest to a user to display the combo associated with a pivot high/low. This script will highlight the location of pivot points on the chart and display its associated combo by default. These are based on the Pivot Combo lookback and not displayed in real-time.
Users can see on the dashboard the combos associated with a pivot high/low, these are ranked by frequency.
🔹 Pivot Machine Gun (PMG)
Pivot Machine Guns (PMG)s describe the scenario where a single price variation breaks the value of multiple past successive higher lows/lower highs. This can highlight a self-exciting behavior, where even more past successive higher lows/lower highs get broken.
Users can select the minimum sequence length of successive higher lows/lower highs required for a PMG to be detected, as well the amount of these successive higher lows/lower highs that must be broken.
Flare🔶 METHODS
• Pine Script™ introduces methods ( 1 , 2 )! Much kuddos for the developers, Tradingview, and all who has worked on it!
• This educational script will show the simplified way of writing built-in methods, not to create a new method.
🔹 Simplified way of writing built-in methods:
· Instead of:
newArray = array.new()
array.unshift(newArray, 1)
lin = line.new(na, na, na, na)
line.set_xy1(lin, bar_index , close)
line.set_xy2(lin, bar_index + 10, close)
label newLabel = label.new(bar_index, high)
if barstate.islast
label.delete(newLabel)
· We now can write it like this:
newArray = array.new()
newArray.unshift(1)
lin = line.new(na, na, na, na)
lin.set_xy1(bar_index , close)
lin.set_xy2(bar_index + 10, close)
label newLabel = label.new(bar_index, high)
if barstate.islast
newLabel.delete()
——————————————————————————————————————————————————————————
· When using sometimes brackets are necessary:
label lab = label.new(bar_index, high)
if barstate.islast
label.set_color(lab, color.red)
label.delete(lab )
· ->
label lab = label.new(bar_index, high)
if barstate.islast
lab.set_color(color.red)
(lab ).delete() // lab .delete() doesn't compile at the moment
——————————————————————————————————————————————————————————
🔶 OVERVIEW OF SCRIPT
• The basic principles are:
· Find 1 point ( close ) x bars back from current bar ( settings: 'x close back').
· Create a 'Flare' shaped object from that point to current bar or further (dependable of "Width of Flare").
· Calculate where current close is located versus the Flare lines.
· On that bases, change colour and draw plotshapes.
· Below bar if current close is located in the upper part of the Flare
· Above bar if current close is located in the lower part of the Flare
· Above & Below if located in the middle part of the Flare
-> Above & Below colours has 3 different colours (adjustable), dependable on the position
🔶 EXAMPLES
· Neutral zone:
· Light Bullish zone:
· Bullish zone:
· Very Bullish / Overbought zone:
· Light Bearish zone:
· Bearish zone:
· Very Bearish / Oversold zone:
🔶 TECHNIQUES
🔹 I. Make a User Defined Type (UDT) Flare, with:
· 5x linefill - array of linefill
· int iDir, which captures the direction (current location of close in Flare)
· color cCol, this is a colour variable in relation to the direction.
🔹 II. Different functions will add a new Flare object, and update the values on each bar.
· Explanation of each function can be found in the script.
🔶 EXTRA's
· The input.color() is located in the function set_flare_B(flare obj)
· Best to put the inputs at the beginning of the script, I included this alternative just to show it is possible (but mostly not ideal)
· Background colour (settings: Bgcolor) can be enabled for better visibility of colours
ICT MacrosThis script allows traders to visualize the range of time when a macro (an automated series of instructions/trades from large fund traders, executed by an algorithm) will likely occur in the market. It does this by drawing vertical lines and labels on the chart at these specific times:
(Macro Open) - 9:50 AM EST
(Macro Close) - 10:10 AM EST
(Macro Open) - 10:50 AM EST
(Macro Close) - 11:10 AM EST
(Macro Open) - 1:10 PM EST
(Macro Close) - 1:40 PM EST
(Macro Open) - 3:15 PM EST
(Macro Close) - 3:45 PM EST
The theory behind the use of these macros - is that the market will either seek buy side or sell side liquidity, or seek to rebalance price at a point of interest in between the open and close of the macro. Traders who follow this theory can use that information to anticipate how price might behave.
When a macro occurs, the script draws a vertical line on the chart using a dotted line style with a user-defined color. Additionally, a label is placed above the line to indicate whether it is a Macro Open or Macro Close event.
To preserve space, the labels are abbreviated on chart - "Macro Open" (M.O.) and "Macro Close" (M.C.) for both the morning and afternoon trading sessions. The labels may be turned on/off by the user.
The script also includes alerts that can notify traders when a macro occurs. These alerts can be set to go off once per bar close, and the alert message indicates the specific macro type and time.
This script is entirely open-source, meaning that traders can read the code and modify it as needed. Credit to the foundation of this script goes to TradingView user @rickyzcarroll for his open source Strat Assistant Hour Flip script. Important changes include the specific time changes and alert function.
Wave Generator (WG)Pine Script Wave Generator Utility
Introduction:
The Pine Script Wave Generator Utility is a versatile tool that creates different wave patterns. The script provides the user with four different wave styles to choose from (Sine, Triangle, Saw, Square) with customizable parameters for the wave height, duration, number of harmonics, and phase shift.
Technical Details:
The script utilizes the mathematical functions sin, pi, and array.avg to generate wave patterns. The wave height and duration are the main inputs, and the number of harmonics and phase shift are additional inputs that add fine-tuning to the wave pattern.
The wave styles are created using different combinations of sine waves and are normalized so that the resulting wave always lies within a range of -1 to 1.
Usage:
The user can adjust the wave parameters using the input options in the script. The user can choose the wave style from the “Wave Select” option and set the wave height, wave duration, number of harmonics and phase shift by adjusting the corresponding input options.
Conclusion:
The Pine Script Wave Generator Utility is an efficient and effective tool for generating wave patterns. It can be used for a variety of purposes such as creating wave patterns for technical analysis, simulation, and testing purposes. The user can easily adjust the wave parameters to create custom wave patterns, making it a flexible and valuable tool.
RSI Overbought/Oversold + Divergence IndicatorDESCRIPTION:
This script combines the Relative Strength Index ( RSI ), Moving Average and Divergence indicator to make a better decision when to enter or exit a trade.
- The Moving Average line (MA) has been made hidden by default but enhanced with an RSIMA cloud.
- When the RSI is above the selected MA it turns into green and when the RSI is below the select MA it turns into red.
- When the RSI is moving into the Overbought or Oversold area, some highlighted areas will appear.
- When some divergences or hidden divergences are detected an extra indication will be highlighted.
- When the divergence appear in the Overbought or Oversold area the more weight it give to make a decision.
- The same color pallet has been used as the default candlestick colors so it looks familiar.
HOW TO USE:
The prerequisite is that we have some knowledge about the Elliot Wave Theory, the Fibonacci Retracement and the Fibonacci Extension tools.
Wave 1
(1) When we receive some buy signals we wait until we receive some extra indications.
(2) On the RSI Overbought/Oversold + Divergence Indicator we can see a Bullish Divergence and our RSI is changing from red to green ( RSI is higher then the MA).
(3) If we are getting here into the trade then we need to use a stop loss. We put our stop loss 1 a 2 pips just below the lowest wick. We also invest maximum 50% of the total amount we want to invest.
Wave 2
(4) Now we wait until we see a clear reversal and here we starting to use the Fibonacci Retracement tool. We draw a line from the lowest point of wave(1) till the highest point of wave (1). When we are retraced till the 0.618 fib also called the golden ratio we check again the RSI Overbought/Oversold + Divergence Indicator. When we see a reversal we do our second buy. We set again a stop loss just below the lowest wick (this is the yellow line on the chart). We also move the stop loss we have set in step (3) to this level.
Wave 3
(5) To identify how far the uptrend can go we need to use the Fibonacci Extension tool. We draw a line from the lowest point of wave(1) till the highest point of wave (1) and draw it back to the lowest point of wave (2). Wave (3) is most of the time the longest wave and can go till it has reached the 1.618 or 2.618 fib. On the 1.618 we can take some profit. If we don't want to sell we move our stop loss to the 1 fib line (yellow line on the chart).
(6) We wait until we see a clear reversal on the Overbought/Oversold + Divergence Indicator and sell 33% to 50% of our investment.
Wave 4
(7) Now we wait again until we see a clear reversal and here we starting to use the Fibonacci Retracement tool. We draw a line from the lowest point of wave(2) till the highest point of wave (3). When we are retraced till the 0.618 fib also called the golden ratio we check again the RSI Overbought/Oversold + Divergence Indicator. When we see a reversal we buy again. We set again a stop loss just below the lowest wick (this is the yellow line on the chart).
(8) If we bought at the first reversal ours stop los was triggered (9) and we got out of the trade.
(9) If we did not bought at step (7) because our candle did not hit the 0.618 fib or we got stopped out of the trade we buy again at the reversal.
Wave 5
(10) To identify how far the uptrend can go we need to use the Fibonacci Extension tool. We draw a line from the lowest point of wave(2) till the highest point of wave (3) and draw it back to the lowest point of wave (4). Most of the time wave 5 goes up till it has reached the 1 fib. And that is the point where we got out of the trade with all of our investment. In this trade we got out of the trade a bit earlier. We received the sell signals and got a reversal on the Overbought/Oversold + Divergence Indicator.
We are hoping you learned something so you can make better decisions when to get into or out of a trade.
If you have any question just drop it into the comments below.
FEATURES:
• You can show/hide the RSI .
• You can show/hide the MA.
• You can show/hide the lRSIMA cloud.
• You can show/hide the Stoch RSI cloud.
• You can show/hide and adjust the Overbought and Oversold zones.
• You can show/hide and adjust the Overbought Extended and Oversold Extended zones.
• You can show/hide the Overbought and Oversold highlighted zones.
• Etc...
HOW TO GET ACCESS TO THE SCRIPT:
• Favorite the script and add it to your chart.
REMARKS:
• This advice is NOT financial advice.
• We do not provide personal investment advice and we are not a qualified licensed investment advisor.
• All information found here, including any ideas, opinions, views, predictions, forecasts, commentaries, suggestions, or stock picks, expressed or implied herein, are for informational, entertainment or educational purposes only and should not be construed as personal investment advice.
• We will not and cannot be held liable for any actions you take as a result of anything you read here.
• We only provide this information to help you make a better decision.
• While the information provided is believed to be accurate, it may include errors or inaccuracies.
Good Luck and have fun,
The CryptoSignalScanner Team
BTC Pair Change %This script makes it easier to quickly check how the BTC pair of the current symbol is performing on any pair.
It adds a " change percentage widge t" (of the BTC pair ) to the top right of the chart.
(Refer to the image for an example.)
The change percentage calculation is performed as described here:
www.tradingview.com
To match the "Chg%" that appears on TradingView watchlists, a 24H (1440min) timeframe is used, as described here:
money.stackexchange.com
In short, this script:
Searches for the BTC pair of the current symbol
Calculates the change % using the above described logic (links)
Adds a " change percentage widget " (of the BTC pair) to the top right of the chart
Allows for using 24H timeframe or the current timeframe (enable " Use current timeframe " under the script options)
Simple SuperTrend Strategy for BTCUSD 4HHello guys!, If you are a swing trader and you are looking for a simple trend strategy, you should check this one. Based in the supertrend indicator, this strategy will help you to catch big movements in BTCUSD 4H and avoid losses as much as possible in consolidated situations of the market
This strategy was designed for BTCUSD in 4H timeframe
Backtesting context: 2020-01-02 to 2023-01-05 (The strategy has also worked in previous years)
Trade conditions:
Rules are actually simple, the most important thing is the risk and position management of this strategy
For long:
Once Supertrend changes from a downtrend to a uptrend, you enter into a long position. The stop loss will be defined by the atr stop loss
The first profit will be of 0.75 risk/reward ratio where half position will be closed. When this happens, you move the stop loss to break even.
Now, just will be there two situations:
Once Supertrend changes from a uptrend to a downtrend, you close the other half of the initial long position.
If price goes againts the position, the position will be closed due to breakeven.
For short:
Once Supertrend changes from a uptrend to a downtrend, you enter into a short position. The stop loss will be defined by the atr stop loss
The first profit will be of 0.75 risk/reward ratio where half position will be closed. When this happens, you move the stop loss to break even.
Like in the long position, just will be there two situations:
Once Supertrend changes from a downtrend to a uptrend, you close the other half of the initial short position.
If price goes againts the position, the position will be closed due to breakeven.
Risk management
For calculate the amount of the position you will use just a small percent of your initial capital for the strategy and you will use the atr stop loss for this.
Example: You have 1000 usd and you just want to risk 2,5% of your account, there is a long signal at price of 20,000 usd. The stop loss price from atr stop loss is 19,000. You calculate the distance in percent between 20,000 and 19,000. In this case, that distance would be of 5,0%. Then, you calculate your position by this way: (initial or current capital * risk per trade of your account) / (stop loss distance).
Using these values on the formula: (1000*2,5%)/(5,0%) = 500usd. It means, you have to use 500 usd for risking 2.5% of your account.
We will use this risk management for apply compound interest.
Script functions
Inside of settings, you will find some utilities for display atr stop loss, supertrend or positions.
You will find the settings for risk management at the end of the script if you want to change something. But rebember, do not change values from indicators, the idea is to not over optimize the strategy.
If you want to change the initial capital for backtest the strategy, go to properties, and also enter the commisions of your exchange and slippage for more realistic results.
Signals meanings:
L for long position. CL for close long position.
S for short position. CS for close short position.
Tp for take profit (it also appears when the position is closed due to stop loss, this due to the script uses two kind of positions)
Exit due to break even or due to stop loss
Some things to consider
USE UNDER YOUR OWN RISK. PAST RESULTS DO NOT REPRESENT THE FUTURE.
DEPENDING OF % ACCOUNT RISK PER TRADE, YOU COULD REQUIRE LEVERAGE FOR OPEN SOME POSITIONS, SO PLEASE, BE CAREFULL AND USE CORRECTLY THE RISK MANAGEMENT
The amount of trades closed in the backtest are not exactly the real ones. If you want to know the real ones, go to settings and change % of trade for first take profit to 100 for getting the real ones. In the backtest, the real amount of opened trades was of 194.
Indicators used:
Supertrend
Atr stop loss by garethyeo
This is the fist strategy that I publish in tradingview, I will be glad with you for any suggestion, support or advice for future scripts. Do not doubt in make any question you have and if you liked this content, leave a boost. I plan to bring more strategies and useful content for you!
Trendly
╭━━━━╮╱╱╱╱╱╱╱╱╭┳╮
┃╭╮╭╮┃╱╱╱╱╱╱╱╱┃┃┃
╰╯┃┃┣┻┳━━┳━╮╭━╯┃┃╭╮╱╭╮
╱╱┃┃┃╭┫┃━┫╭╮┫╭╮┃┃┃┃╱┃┃
╱╱┃┃┃┃┃┃━┫┃┃┃╰╯┃╰┫╰━╯┃
╱╱╰╯╰╯╰━━┻╯╰┻━━┻━┻━╮╭╯
╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━╯┃
╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰━━╯
About the script:
This script is an easy-to-use trend indicator, which is based on another popular indicator called "Supertrend" . The basic idea is very simple, i.e. to compute Average True Range(ATR) and use that as the basis for trend detection. The key difference lies in a custom trend detection method, that computes trends across different timeframes and projects them in a table view. The script also tries to improve the behaviour of the existing indicator by highlighting flat regions on the chart, indicating sideways market or potential trend reversals.
How to use it:
You can use it just like any other indicator, add it to your chart and start analysing market trends. Results can be interpreted as follows.
Indicator output is currently made up of two main components:
>> Trend Table:
Appears at the bottom right of your screen
Contains trend indicator for 9 different timeframes
Timeframes can be adjusted using indicator settings panel
Green Up Arrow --> Up Trend
Red Down Arrow --> Down Trend
>> Enhanced Supertrend:
Shows up as a line plot on the chart
Green line indicates up trend
Red line indicates down trend
White regions indicates slow moving markets or a potential trend reversal
Indicator can be used on any timeframe, it provides a view of current and historical market trend
Can be used as an indicator for entering/exiting trades
Can be used to build custom trading strategies
Day Trading Booster by DGTTiming when day trading can be everything
In Stock markets typically more volatility (or price activity) occurs at market opening and closings
When it comes to Forex (foreign exchange market), the world’s most traded market, unlike other financial markets, there is no centralized marketplace, currencies trade over the counter in whatever market is open at that time, where time becomes of more importance and key to get better trading opportunities. There are four major forex trading sessions, which are Sydney , Tokyo , London and New York sessions
Forex market is traded 24 hours a day, 5 days a week across by banks, institutions and individual traders worldwide, but that doesn’t mean it’s always active the entire day. It may be very difficult time trying to make money when the market doesn’t move at all. The busiest times with highest trading volume occurs during the overlap of the London and New York trading sessions, because U.S. dollar (USD) and the Euro (EUR) are the two most popular currencies traded. Typically most of the trading activity for a specific currency pair will occur when the trading sessions of the individual currencies overlap. For example, Australian Dollar (AUD) and Japanese Yen (JPY) will experience a higher trading volume when both Sydney and Tokyo sessions are open
There is one influence that impacts Forex matkets and should not be forgotten : the release of the significant news and reports. When a major announcement is made regarding economic data, currency can lose or gain value within a matter of seconds
Cryptocurrency markets on the other hand remain open 24/7, even during public holidays
Until 2021, the Asian impact was so significant in Cryptocurrency markets but recent reasearch reports shows that those patterns have changed and the correlation with the U.S. trading hours is becoming a clear evolving trend.
Unlike any other market Crypto doesn’t rest on weekends, there’s a drop-off in participation and yet algorithmic trading bots and market makers (or liquidity providers) can create a high volume of activity. Never trust the weekend’ is a good thing to remind yourself
One more factor that needs to be taken into accout is Blockchain transaction fees, which are responsive to network congestion and can change dramatically from one hour to the next
In general, Cryptocurrency markets are highly volatile, which means that the price of a coin can change dramatically over a short time period in either direction
The Bottom Line
The more traders trading, the higher the trading volume, and the more active the market. The more active the market, the higher the liquidity (availability of counterparties at any given time to exit or enter a trade), hence the tighter the spreads (the difference between ask and bid price) and the less slippage (the difference between the expected fill price and the actual fill price) - in a nutshell, yield to many good trading opportunities and better order execution (a process of filling the requested buy or sell order)
The best time to trade is when the market is the most active and therefore has the largest trading volume, trading all day long will not only deplete a trader's reserves quickly, but it can burn out even the most persistent trader. Knowing when the markets are more active will give traders peace of mind, that opportunities are not slipping away when they take their eyes off the markets or need to get a few hours of sleep
What does the Day Trading Booster do?
Day Trading Booster is designed ;
- to assist in determining market peak times, the times where better trading opportunities may arise
- to assist in determining the probable trading opportunities
- to help traders create their own strategies. An example strategy of when to trade or not is presented below
For Forex markets specifically includes
- Opening channel of Asian session, Europien session or both
- Opening price, opening range (5m or 15m) and day (session) range of the major trading center sessions, including Frankfurt
- A tabular view of the major forex markets oppening/closing hours, with a countdown timer
- A graphical presentation of typically traded volume and various forext markets oppening/clossing events (not only the major markets but many other around the world)
For All type of markets Day Trading Booster plots
- Day (Session) Open, 5m, 15m or 1h Opening Range
- Day (Session) Referance Levels, based on Average True Range (ATR) or Previous Day (Session) Range (PH - PL)
- Week and Month Open
Day Trading Booster also includes some of the day trader's preffered indicaotrs, such as ;
- VWAP - A custom interpretaion of VWAP is presented here with Auto, Interactive and Manual anchoring options.
- Pivot High/Low detection - Another custom interpretation of Pivot Points High Low indicator.
- A Moving Average with option to choose among SMA, EMA, WMA and HMA
An example strategy - Channel Bearkout Strategy
When day trading a trader usually monitors/analyzes lower timeframe charts and from time to time may loose insight of what really happens on the market from higher time porspective. Do not to forget to look at the larger time frame (than the one chosen to trade with) which gives the bigger picture of market price movements and thus helps to clearly define the trend
Disclaimer : Trading success is all about following your trading strategy and the indicators should fit within your trading strategy, and not to be traded upon solely
The script is for informational and educational purposes only. Use of the script does not constitutes professional and/or financial advice. You alone the sole responsibility of evaluating the script output and risks associated with the use of the script. In exchange for using the script, you agree not to hold dgtrd TradingView user liable for any possible claim for damages arising from any decision you make based on use of the script
TPO Letters [Kioseff Trading]Hello!
"TPO Letters" functions similarly to the script "Realtime TPO Profile"; however, TPO characters are appended to a developing bar. Simply, TPO characters display on the bar that formed them.
All colors are configurable.
The image above emphasizes functionality; TPO letters are colored on a gradient . Additionally, the value area range is shaded; characters that form within the range are gradient colored. Gray-colored characters extend beyond the value area.
The columned data displayed right of the TPO letters shows tick levels. Tick levels are shaded various colors, each color indicative of some occurrence.
Tick Levels
Red: Single Print
Yellow: POC
Lime Green: VAH or VAL
Lighter Green: Value Area Inclusive Level
Left of the TPO horizontal-axis, the aqua-colored line (blue-line inclusive) reflects the high-low range of the session; the blue-colored line reflects the initial-balance range (IBR).
You can select to color TPO letters within the IBR blue (any color).
Additionally, you can select to shade the IBR.
The image above shows auxiliary features.
Unfortunately, I'm unable to orient TPO letters at their intended tick levels using one label per bar, a contrasting feature of the "Realtime TPO Profile" script.
This means only 1000 TPO letters can be displayed simultaneously. If the number of TPO letters exceeds 1000, early-session and middle-session characters will begin to disappear. This isn't an issue for the "Realtime TPO Profile" script, as each tick level comprised one label, to which additional TPO characters were appended to the label as necessary and extended horizontally. Using this same method proved fallible for this indicator - vertical scaling is an issue. While I could append all letters formed for a bar to one label, the letters wouldn't superimpose atop their corresponding tick level (using "\n" didn't suffice).
Consequently, you'll have to, at times, rely on the label & box count oriented in the bottom-right table to see whether the number of labels & boxes transcends the upper threshold. You can hide this table at anytime (:
The image above exemplifies the "Fixed Range" portion of the indicator. A useful inclusion for the "Realtime TPO Profile" script however, while still useful for "TPO Letters", can only display 1000 TPO letters concurrently.
You can also reset the TPO profile at user-defined time intervals.
The indicator hosts an auto-calculate tick levels option; however, there will be times you'll need to manually adjust the tick levels to achieve digestible results (:
That's all! If the script would benefit from an excluded feature, or you notice an error, please let me know! Thank you (:
Shoutout to @kaigouthro for creating an exceptional library for gradient colors!! It was used in this script (:
[ChasinAlts] RSI (Time-Spent) Count[MO]// Hello fellow traduers, hope all is well in your neck of the woods. Anywho, I'll attempt to be short and sweet.
// I've been doing a LOT of work recently with RSI to figure out what its all about and to learn the ins and outs.
// Some great ideas (I think at least) have come to fruition from the deep-dive into RSI, thus, I've got 2 of these ideas
// to share. One notable feature for the RSI is when there is a BULLISH trend, it is VERY likely to stay within the upper
// 2/3rds of the RSI extremes (0-100) and vise-versa for BEARISH trends and the lower 2/3rds of the RSI extremes.
// That is where this script's idea was derived. Now PLEASE, do tell, if you disagree with me (preferably via a cool,
// calm, and collected comment...but hey, that's up to you). Ok, now the script.
//
// What this does is gives you a Bullish and Bearish count for the bars. Bullish Cnt counts up by +1 per every PRINTED bar
// that is above OverSold and vise-versa for the Bearish Cnt and being below OverBought. That does VERY MUCH make it
// possible for both counts to have a high value if RSI is staying between OverBought and OverSold for extended periods
// of time. Though, the ONLY count that will be shown is the one with the highest value.
//
// There are tooltips describing each of the settings but I will quickly talk about 3 more things. First of all, I prefer
// to have as few settings in the settings menu as possible thus the "Boundaries to OB/OS" setting can be viewed as the
// OverSold input and the OverBought setting is configured from this by subtracting "Boundaries to OB/OS" from 100
// (ie. 100-Oversold = OverBought). There Lastly, there is the option to show ONLY the coin with the MAX Count from each
// 'set' of coins. When that count resets to 0 then the next highest count coin will take its place. To use this instead
// of how the script is currently constructed you only need to comment out (add '//' at the beginning of each line of) the current
// plot functions and uncomment the lines at the very bottom under the 'MAX' section. Doing so also reveals the possibility of
// setting an alert for when the coin with the max count changes between different coins. This is very helpful because since it
// only gives the top count of ALL the coins in the selected set, this count is most likely going to continue forward with its
// count for a while thus when the alert goes off I prefer to look at the potential trades in the opposite direction of which
// the max coin was just in (ie. if its count plot/label is red and it stops then look for a potential long trade on the coin
// who's count just reset. Only ONE more piece of the script I have yet to talk about. There is a filter in the code and you
// can select to use or not use within the settings. What this filter does is it counts all the printed bars within the last
// ___bars(user selectable). This is due to the fact that if there is no trade that occurs on a bar then TradingView does not
// print the bar. The coins that have fewer updates also tend to stay within a tighter range for it's RSI thus many times
// giving the illusion that the coin is a good trade bc its trending count is very high (tending to be higher than the others)
// thus hogging the precious chart space if using the script in its current form, or hogging up the MAX slot so that no other
// (and most likely BETTER-TO-TRADE) coins will be shown. It is a great volatility indicator (that of which I have published
// a script using the idea in the recent past). If selected in the settings menu and if the % of printed bars count goes below
// the user set minimum % then both Bullish and Bearish counts will be reset. This is indicated within the counts plots by looking
// at the plots whose counts reset and rather than the plots just stopping printing in mid-air, they will continue to plot while the
// counts reset and fall down to 0. These types of coins will keep you in a trade longer that you'd probably want gaining less than
// you'd probably expect.
//
// Peace Folks & Happy Trading,
//
// ChasinAlts
Bar Count for BacktestingHello!
Not much special about this script; you can use date & time, or bar count, to ascertain the number of bars in a time period for backtesting.
This script can be used in conjunction with large scripts incorporating complex intricacies that won't load on 20,000+ bar data sets.
If your script's load time transcends the TV allotted load time - use this script to quickly determine the number of bars in the data set.
Through trial & error you should be able to determine the approximate number of bars your script can execute on without exceeding the imposed time limit!
The image above shows a user-defined time window and, consequently, the script returns the number of bars that constitute the time period.
You can drag the white vertical lines to efficiently configure the calculated time period.
The image above shows functionality for the "Bars Back" feature.
Enjoy!
RELATIVE VALUE TRADE MANAGEMENT WEBHOOKThis script it's created to send open-close signals via webhook. It allows you to open a relative value position based in the relative graph. You can set the TP and SL levels and the script will send the signal to your exchange.
Due a pine limitations it is necessary apply the script in the 2 different actives and set the alerts. You can just do the relative analysis and then go to the first asset and set the script. Create your alert and then just go to the other asset and create the alert. It doesn't necessary to change anything in the script because the levels are the same.
It is also possible to do the analysis using the script, deploying the relative graph, but could be annoying sometimes due scales.
Positions will be placed at close always.
THIS IS IMPORTANT: I use Zignaly as a exhange so if you are using Binance or other YOU MUST CHANGE the code. If you know the JSON format that It requires would be easy.
Here is tips in all the important imputs. But let me explain the most important.
The MANDATORY fields are:
Ticker IDs: Here you must write the EXACT ID code for the active. Caps included.
Example : BINANCE:SUSHIUSDTPERP
It is also important select the correct market side. If you want to be long of ANY active you must write that ID in the LONG ID. For short positions is the same.
Time frame: Here you can select the time frame of the graph (not the current active graph, I mean the relative one.) The orders will be send using that time frame. I recommend to do the analysis in other window and then use the script to trigger the order in the time frame that you want.
Money management: In these fields you can select the qty that you will lose if the SL level is reach. Based in a determinated amount of currency or in a % of your capital.
Dates: It is important to select the start date. If the order is already open, we must look for the moment where the activation price was reached. If the order is unopened it is better to select the current date, so the order will be triggered when the entry level is reached.
Ids: If you have current open position you can set here that ID to send the correct order to the exchange.
To set the alert just call the function {{{strategy.order.alert_message}}}
.b pin-up symbolWhen trading cryptocoins, it is necessary to check the price trend of NASDAQ, BTC.D, BTC.OI, BTC spot or other coins of similar groups.
However it is very cumbersome to put a comparison symbol in the Tradingview chart and combine individual indicators one by one.
Moreover even with such a combination, the chart is messy and visibility is not good.
This script was developed as a composite-solution to that situation, and will make you happy.
- NQ1!, USTECH100CFD | symbol fixed
- BTC.Dominance, BTC.OpenInterest, BTC symbol, others pin-up-symbol | selectable
- Pin-up-symbol | selectable
- Pin-up-symbol's candle chart
- Trending
* EMA 9,21,50,200 ribbon classic EMA
* .b price line ; .b price = unique trending price with price-action + relative-volume-action + ATR
* Dynamic S/R Cloud ; BB + donchian band + high/low + atr mixed custom-logic
* VWWMA + .b price Shadow ; Volume-weighted WMA on .b price = unique MA faster than classic VWMA
Trending shadow direction is not bad even on low-timeframe (1, 2, 3, 5m, 15m...)
- Pattern
* Harmonic Pattern ; A simplified version of the harmonic pattern indicator, simply show-up pattern complete position
for reference only - adopted from HeWhoMustNotBeNamed's script.
- Information Panel
* BTC Dominance, BTC Open Interest, Pin-Up-Symbol price
* Trend meter ; 5,15,30,1h,2h,4h Meter Calc with 1 minute-timeframe candles
5 = Green if the current price is higher than the price 5 minutes ago.
1h = Green if the current price is higher than the price 2 hours ago.
4h = Red if the current price is lower than the price 4 hours ago.
* caution ; To use real-time chart of "CME_MINI:NQ1!" you have to additional subscribe CME data,
default setting is 'NQ1!' , you can change to 'USTECH100CFD'
* When you choose symbol which is closed trading hours, the script's update stopped.
Even if the selected pin-up-symbol is on trading hours, the currently selected symbol's chart doesn't update.
* recommended | chart setting > Appearance : Top margin 0%, Bottom margin 0% for optimized screen usage :)
if you have any questions freely contact to me by message on tradingview, or telegram @sr_bt
but please understand that responses may be quite late.
------------------------------------------------------------------------------------------------------------------------------------------------------------
copyright 2022 (sr_b)
Special thanks to all of contributors of community.
The script (originaly .b) may be freely distributed under the MIT license.
The other classic script code also may be freely distributed under the MIT license.
Simplified Harmonic script part | core adopted from 'Multi ZigZag Harmonic Patterns (HeWhoMustNotBeNamed)' MPL2.0 license
MonthlyReturnsVsMarketLibrary "MonthlyReturnsVsMarket" is a repackaging of the script here
Credits to @QuantNomad for orginal script
Now you can avoid to pollute your own strategy's code with the monthly returns table code and just import the library and call displayMonthlyPnL(int precision) function
To be used in strategy scripts.
Library CommonLibrary "LibraryCommon"
A collection of custom tools & utility functions commonly used with my scripts
@description TODO: add library description here
getDecimals() Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
truncate(float, float) Truncates (cuts) excess decimal places
Parameters:
float : number The number to truncate
float : decimalPlaces (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(float) Converts pips into whole numbers
Parameters:
float : number The pip number to convert into a whole number
Returns: The converted number
toPips(float) Converts whole numbers back into pips
Parameters:
float : number The whole number to convert into pips
Returns: The converted number
getPctChange(float, float, int) Gets the percentage change between 2 float values over a given lookback period
Parameters:
float : value1 The first value to reference
float : value2 The second value to reference
int : lookback The lookback period to analyze
av_getPositionSize(float, float, float, float) Calculates OANDA forex position size for AutoView based on the given parameters
Parameters:
float : balance The account balance to use
float : risk The risk percentage amount (as a whole number - eg. 1 = 1% risk)
float : stopPoints The stop loss distance in POINTS (not pips)
float : conversionRate The conversion rate of our account balance currency
Returns: The calculated position size (in units - only compatible with OANDA)
bullFib(priceLow, priceHigh, fibRatio) Calculates a bullish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio) Calculates a bearish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(int, string) Gets a Moving Average based on type (MUST BE CALLED ON EVERY CALCULATION)
Parameters:
int : length The MA period
string : maType The type of MA
Returns: A moving average with the given parameters
getEAP(float) Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
getEAP2(float) Performs secondary EAP stop loss size calculation (eg. ATR < 40, add 5 pips, ATR between 40-50, add 10 pips etc)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
barsAboveMA(int, float) Counts how many candles are above the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(int, float) Counts how many candles are below the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(int, float) Counts how many times the EMA was crossed recently
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA
getPullbackBarCount(int, int) Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
int : lookback The lookback period to look back over
int : direction The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize() Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize() Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize() Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent() Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(float, bool) Checks if the current bar is a hammer candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(float, bool) Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(float, bool) Checks if the current bar is a doji candle based on the given parameters
Parameters:
float : wickSize (default=2) The maximum top wick size compared to the bottom (and vice versa)
bool : bodySize (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(float, float, bool) Checks if the current bar is a bullish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(float, float, bool) Checks if the current bar is a bearish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar() Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar() Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(string, bool) Determines if the current price bar falls inside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(string, bool) Determines if the current price bar falls outside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(int, int) Determines if this bar's time falls within date filter range
Parameters:
int : startTime The UNIX date timestamp to begin searching from
int : endTime the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(bool, bool, bool, bool, bool, bool, bool) Checks if the current bar's day is in the list of given days to analyze
Parameters:
bool : monday Should the script analyze this day? (true/false)
bool : tuesday Should the script analyze this day? (true/false)
bool : wednesday Should the script analyze this day? (true/false)
bool : thursday Should the script analyze this day? (true/false)
bool : friday Should the script analyze this day? (true/false)
bool : saturday Should the script analyze this day? (true/false)
bool : sunday Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter()
fillCell()
Earnings Price Move Cheat Sheet [KT]Hello!
This script looks to distinguish replicable sequences and correlations between earnings releases and price. The indicator calculates the average 1-session to 20-session performance of an asset prior to an earnings release, and the 1-session to 20-session performance of an asset subsequent an earnings release.
You can select the number of sessions the script calculates for asset performance.
In the image above the script calculates the average 1-session performance following an earnings surprise, earnings miss, and in general. 20 sessions is the maximum value!
Also measured is the average performance of an asset before and after earnings, in addition to the average performance following an earnings surprise "green earnings" and the average performance following an earnings miss "red earnings".
I included VaR and CVaR calculations - using the historical method - in the script. For those of you unfamiliar with the metrics, both look to quantify the risk of financial loss for a portfolio, or even a particular position.
The script also calculates the 1st - 5th percentile for earnings losses. A more comprehensive explanation of the metrics is stored in tooltips in the user input tab.
The script also calculates the highest high and lowest low following an earnings release, up to 20 sessions, and calculates the difference between the two.
Keep in mind that a company might not have a significant number of earnings misses, or may have only traded publicly for a short while. If true, the resulting earnings/price calculations *will* be misleading - there is an insufficient sample size; no correlations are ascertainable.
I will be working on this script more, so let me know if there is anything you would like included!