Adaptivity: Measures of Dominant Cycles and Price Trend [Loxx]Adaptivity: Measures of Dominant Cycles and Price Trend is an indicator that outputs adaptive lengths using various methods for dominant cycle and price trend timeframe adaptivity. While the information output from this indicator might be useful for the average trader in one off circumstances, this indicator is really meant for those need a quick comparison of dynamic length outputs who wish to fine turn algorithms and/or create adaptive indicators.
This indicator compares adaptive output lengths of all publicly known adaptive measures. Additional adaptive measures will be added as they are discovered and made public.
The first released of this indicator includes 6 measures. An additional three measures will be added with updates. Please check back regularly for new measures.
Ehers:
Autocorrelation Periodogram
Band-pass
Instantaneous Cycle
Hilbert Transformer
Dual Differentiator
Phase Accumulation (future release)
Homodyne (future release)
Jurik:
Composite Fractal Behavior (CFB)
Adam White:
Veritical Horizontal Filter (VHF) (future release)
What is an adaptive cycle, and what is Ehlers Autocorrelation Periodogram Algorithm?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 135:
"Adaptive filters can have several different meanings. For example, Perry Kaufman's adaptive moving average (KAMA) and Tushar Chande's variable index dynamic average (VIDYA) adapt to changes in volatility . By definition, these filters are reactive to price changes, and therefore they close the barn door after the horse is gone.The adaptive filters discussed in this chapter are the familiar Stochastic , relative strength index (RSI), commodity channel index (CCI), and band-pass filter.The key parameter in each case is the look-back period used to calculate the indicator. This look-back period is commonly a fixed value. However, since the measured cycle period is changing, it makes sense to adapt these indicators to the measured cycle period. When tradable market cycles are observed, they tend to persist for a short while.Therefore, by tuning the indicators to the measure cycle period they are optimized for current conditions and can even have predictive characteristics.
The dominant cycle period is measured using the Autocorrelation Periodogram Algorithm. That dominant cycle dynamically sets the look-back period for the indicators. I employ my own streamlined computation for the indicators that provide smoother and easier to interpret outputs than traditional methods. Further, the indicator codes have been modified to remove the effects of spectral dilation.This basically creates a whole new set of indicators for your trading arsenal."
What is this Hilbert Transformer?
An analytic signal allows for time-variable parameters and is a generalization of the phasor concept, which is restricted to time-invariant amplitude, phase, and frequency. The analytic representation of a real-valued function or signal facilitates many mathematical manipulations of the signal. For example, computing the phase of a signal or the power in the wave is much simpler using analytic signals.
The Hilbert transformer is the technique to create an analytic signal from a real one. The conventional Hilbert transformer is theoretically an infinite-length FIR filter. Even when the filter length is truncated to a useful but finite length, the induced lag is far too large to make the transformer useful for trading.
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, pages 186-187:
"I want to emphasize that the only reason for including this section is for completeness. Unless you are interested in research, I suggest you skip this section entirely. To further emphasize my point, do not use the code for trading. A vastly superior approach to compute the dominant cycle in the price data is the autocorrelation periodogram. The code is included because the reader may be able to capitalize on the algorithms in a way that I do not see. All the algorithms encapsulated in the code operate reasonably well on theoretical waveforms that have no noise component. My conjecture at this time is that the sample-to-sample noise simply swamps the computation of the rate change of phase, and therefore the resulting calculations to find the dominant cycle are basically worthless.The imaginary component of the Hilbert transformer cannot be smoothed as was done in the Hilbert transformer indicator because the smoothing destroys the orthogonality of the imaginary component."
What is the Dual Differentiator, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 187:
"The first algorithm to compute the dominant cycle is called the dual differentiator. In this case, the phase angle is computed from the analytic signal as the arctangent of the ratio of the imaginary component to the real component. Further, the angular frequency is defined as the rate change of phase. We can use these facts to derive the cycle period."
What is the Phase Accumulation, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 189:
"The next algorithm to compute the dominant cycle is the phase accumulation method. The phase accumulation method of computing the dominant cycle is perhaps the easiest to comprehend. In this technique, we measure the phase at each sample by taking the arctangent of the ratio of the quadrature component to the in-phase component. A delta phase is generated by taking the difference of the phase between successive samples. At each sample we can then look backwards, adding up the delta phases.When the sum of the delta phases reaches 360 degrees, we must have passed through one full cycle, on average.The process is repeated for each new sample.
The phase accumulation method of cycle measurement always uses one full cycle's worth of historical data.This is both an advantage and a disadvantage.The advantage is the lag in obtaining the answer scales directly with the cycle period.That is, the measurement of a short cycle period has less lag than the measurement of a longer cycle period. However, the number of samples used in making the measurement means the averaging period is variable with cycle period. longer averaging reduces the noise level compared to the signal.Therefore, shorter cycle periods necessarily have a higher out- put signal-to-noise ratio."
What is the Homodyne, a subset of Hilbert Transformer?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 192:
"The third algorithm for computing the dominant cycle is the homodyne approach. Homodyne means the signal is multiplied by itself. More precisely, we want to multiply the signal of the current bar with the complex value of the signal one bar ago. The complex conjugate is, by definition, a complex number whose sign of the imaginary component has been reversed."
What is the Instantaneous Cycle?
The Instantaneous Cycle Period Measurement was authored by John Ehlers; it is built upon his Hilbert Transform Indicator.
From his Ehlers' book Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading by John F. Ehlers, 2004, page 107:
"It is obvious that cycles exist in the market. They can be found on any chart by the most casual observer. What is not so clear is how to identify those cycles in real time and how to take advantage of their existence. When Welles Wilder first introduced the relative strength index (rsi), I was curious as to why he selected 14 bars as the basis of his calculations. I reasoned that if i knew the correct market conditions, then i could make indicators such as the rsi adaptive to those conditions. Cycles were the answer. I knew cycles could be measured. Once i had the cyclic measurement, a host of automatically adaptive indicators could follow.
Measurement of market cycles is not easy. The signal-to-noise ratio is often very low, making measurement difficult even using a good measurement technique. Additionally, the measurements theoretically involve simultaneously solving a triple infinity of parameter values. The parameters required for the general solutions were frequency, amplitude, and phase. Some standard engineering tools, like fast fourier transforms (ffs), are simply not appropriate for measuring market cycles because ffts cannot simultaneously meet the stationarity constraints and produce results with reasonable resolution. Therefore i introduced maximum entropy spectral analysis (mesa) for the measurement of market cycles. This approach, originally developed to interpret seismographic information for oil exploration, produces high-resolution outputs with an exceptionally short amount of information. A short data length improves the probability of having nearly stationary data. Stationary data means that frequency and amplitude are constant over the length of the data. I noticed over the years that the cycles were ephemeral. Their periods would be continuously increasing and decreasing. Their amplitudes also were changing, giving variable signal-to-noise ratio conditions. Although all this is going on with the cyclic components, the enduring characteristic is that generally only one tradable cycle at a time is present for the data set being used. I prefer the term dominant cycle to denote that one component. The assumption that there is only one cycle in the data collapses the difficulty of the measurement process dramatically."
What is the Band-pass Cycle?
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 47:
"Perhaps the least appreciated and most underutilized filter in technical analysis is the band-pass filter. The band-pass filter simultaneously diminishes the amplitude at low frequencies, qualifying it as a detrender, and diminishes the amplitude at high frequencies, qualifying it as a data smoother. It passes only those frequency components from input to output in which the trader is interested. The filtering produced by a band-pass filter is superior because the rejection in the stop bands is related to its bandwidth. The degree of rejection of undesired frequency components is called selectivity. The band-stop filter is the dual of the band-pass filter. It rejects a band of frequency components as a notch at the output and passes all other frequency components virtually unattenuated. Since the bandwidth of the deep rejection in the notch is relatively narrow and since the spectrum of market cycles is relatively broad due to systemic noise, the band-stop filter has little application in trading."
From his Ehlers' book Cycle Analytics for Traders Advanced Technical Trading Concepts by John F. Ehlers , 2013, page 59:
"The band-pass filter can be used as a relatively simple measurement of the dominant cycle. A cycle is complete when the waveform crosses zero two times from the last zero crossing. Therefore, each successive zero crossing of the indicator marks a half cycle period. We can establish the dominant cycle period as twice the spacing between successive zero crossings."
What is Composite Fractal Behavior (CFB)?
All around you mechanisms adjust themselves to their environment. From simple thermostats that react to air temperature to computer chips in modern cars that respond to changes in engine temperature, r.p.m.'s, torque, and throttle position. It was only a matter of time before fast desktop computers applied the mathematics of self-adjustment to systems that trade the financial markets.
Unlike basic systems with fixed formulas, an adaptive system adjusts its own equations. For example, start with a basic channel breakout system that uses the highest closing price of the last N bars as a threshold for detecting breakouts on the up side. An adaptive and improved version of this system would adjust N according to market conditions, such as momentum, price volatility or acceleration.
Since many systems are based directly or indirectly on cycles, another useful measure of market condition is the periodic length of a price chart's dominant cycle, (DC), that cycle with the greatest influence on price action.
The utility of this new DC measure was noted by author Murray Ruggiero in the January '96 issue of Futures Magazine. In it. Mr. Ruggiero used it to adaptive adjust the value of N in a channel breakout system. He then simulated trading 15 years of D-Mark futures in order to compare its performance to a similar system that had a fixed optimal value of N. The adaptive version produced 20% more profit!
This DC index utilized the popular MESA algorithm (a formulation by John Ehlers adapted from Burg's maximum entropy algorithm, MEM). Unfortunately, the DC approach is problematic when the market has no real dominant cycle momentum, because the mathematics will produce a value whether or not one actually exists! Therefore, we developed a proprietary indicator that does not presuppose the presence of market cycles. It's called CFB (Composite Fractal Behavior) and it works well whether or not the market is cyclic.
CFB examines price action for a particular fractal pattern, categorizes them by size, and then outputs a composite fractal size index. This index is smooth, timely and accurate
Essentially, CFB reveals the length of the market's trending action time frame. Long trending activity produces a large CFB index and short choppy action produces a small index value. Investors have found many applications for CFB which involve scaling other existing technical indicators adaptively, on a bar-to-bar basis.
What is VHF Adaptive Cycle?
Vertical Horizontal Filter (VHF) was created by Adam White to identify trending and ranging markets. VHF measures the level of trend activity, similar to ADX DI. Vertical Horizontal Filter does not, itself, generate trading signals, but determines whether signals are taken from trend or momentum indicators. Using this trend information, one is then able to derive an average cycle length.
Cari dalam skrip untuk "TAKE"
RSX of Double MACD [Loxx]RSX of Double MACD is a specialized version of the classic MACD. Normally the MACD calculation ends with the difference between fast/slow EMAs, this version of MACD takes the calculation one step further by passing the MACD signal into an RSX RSI function to derive a smoother MACD bound from 0 to 100.
What is MACD?
Moving average convergence divergence ( MACD ) is a trend-following momentum indicator that shows the relationship between two moving averages of a security’s price. The MACD is calculated by subtracting the 26-period exponential moving average ( EMA ) from the 12-period EMA.
What is RSX?
RSI is a very popular technical indicator, because it takes into consideration market speed, direction and trend uniformity. However, the its widely criticized drawback is its noisy (jittery) appearance. The Jurk RSX retains all the useful features of RSI , but with one important exception: the noise is gone with no added lag.
Included
-Customizable inputs and boundaries
TUE ADX/MACD Confluence V1.0The ADX and MACD confluence can be a powerful predictor in stock movements. This script will help you find those confluences in an easy to understand visual manner.
It includes Buy and Sell signals for detected confluences, and will show colored candles to help you determine when to exit a trade. When the candles turn to white that means the detected confluence is no longer in play and you may want to consider a trailing stop loss.
The Buy and Sell signals will display on the first occurrence of each confluence.
It's important to understand that both of these are lagging indicators, but with a careful attention to your stoploss you can easily generate a positive profit factor.
This code is provided open source and you're free to use it for any purpose other than resale.
Resistance/Support Indicator - FontiramisuIndicator showing resistances and support, based on pivots location
When a new pivot location is near from a resistance/support the latter gains weight.
You can modify multiple parameters :
Nb Max res/sup : Define the number max res/sup to keep in our res/sup history array. The greater it is the older bar index will be taken.
Nb show res/sup : Define the number of res/sup to be drawn.
Min weight shown : Define min res/sup weight to be shown. Weight is used to measure strengh of res/sup.
% range stack : Define price percentage change required to stack a pivot into an existing res/sup. Default is 0.015 = 1.5%.
Pivots are calculated with deviation parameter to validate with more precision.
Fontilab Library is used to code this indicator.
Noski - Rob Hoffman_Inventory Retracement BarStrategy taken directly from Rob Hoffman's award winning strategy. Full credit goes to him
Uses the average angle of the ema over the last 20 bars, in combination with Inventory retracement bars (candles that have retraced at least 45%)
(Please note: the angle calculation default value is calibrated for BTCUSD. There is no way currently to code it to be used across multiple pairs. The price to bar ratio has to be adjusted for other trading pairs. Please research price to bar ratio if unfamiliar)
ATR has been included to set take profit and stop loss.
Separate ATR settings for filtering the size of IRB (can filter out candles which are too large or small)
Red background colour is for when ema is at or below the set -ve angle slope. Green is for positive angle. Default is set at -45 and 45 degrees.
Big thankyou to ZenAndTheArtOfTrading and the following two scripts.
Cosmic Angle - by cosmic_indicators
Rob Hoffman's Inventory Retracement Bar - by ucsgears
Code was borrowed and used directly from these scripts
Three EMAs Trend-following Strategy (by Coinrule)Trend-following strategies are great because they give you the peace of mind that you're trading in line with the market.
However, by definition, you're always following. That means you're always a bit later than your want to be. The main challenges such strategies face are:
Confirming that there is a trend
Following the trend, hopefully, early enough to catch the majority of the move
Hopping off the trade when it seems to have run its course
This EMA Trend-following strategy attempts to address such challenges while allowing for a dynamic stop loss.
ENTRY
The trading system requires three crossovers on the same candle to confirm that a new trend is beginning:
Price crossing over EMA 7
Price crossing over EMA 14
Price crossing over EMA 21
The first benefit of using all three crossovers is to reduce false signals. The second benefit is that you know that a strong trend is likely to develop relatively soon, with the help of the fast setup of the three EMAs.
EXIT
The strategy comes with a fixed take profit and a volatility stop, which acts as a trailing stop to adapt to the trend's strength. That helps you get out of the way as soon as market conditions change. Depending on your long-term confidence in the asset, you can edit the fixed take profit to be more conservative or aggressive.
The position is closed when:
The price increases by 4%
The price crosses below the volatility stop.
The best time frame for this strategy based on our backtest is the 4-hr. Shorter timeframes can also work well, although they exhibit larger volatility in their returns. In general, this approach suits medium timeframes. A trading fee of 0.1% is taken into account. The fee is aligned to the base fee applied on Binance, which is the largest cryptocurrency exchange.
Greedy MA & Greedy Bollinger Bands This moving average takes all of the moving averages between 1 and 700 and takes the average of them all. It also takes the min/max average (donchian) of every one of those averages. Also included is Bollinger Bands calculated in the same way. One nice feature I have added is the option to use geometric calculations for. I also added regular bb calculations because this can be a major hog. Use this default setting on 1d or 1w. Enjoy!
ps, I call it greedy because the default settings wont work on lower time frames
Waddah Attar Explosion V3 [NHK] -Bollinger - MACDWaddah Attar Explosion Version3 indicator to work in Forex and Crypto, This indicator oscillates above and below zero and the Bollinger band is plotted over the MACD Histogram to take quick decisions, Colors are changed for enhanced look. dead zone is plotted in a background area and option is provided to hide dead zone. One can easily detect sideways market movement using Bollinger band and volume. when volume is in between Bollinger band no trades are to be taken as volume is low and market moving in sideways
credits to: @shayankm and @LazyBear
Read the main description below...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is a port of a famous MT4 indicator. This indicator uses MACD /BB to track trend direction and strength. Author suggests using this indicator on 30mins.
Explanation from the indicator developer:
"Various components of the indicator are:
Dead Zone Line: Works as a filter for weak signals. Do not trade when the up or down histogram is in between Dead Zone.
Histograms:
- Pink histogram shows the current down trend.
- Blue histogram shows the current up trend.
- Sienna line / Bollinger Band shows the explosion in price up or down.
Signal for ENTER_BUY: All the following conditions must be met.
- Blue histogram is raising.
- Blue histogram above Explosion line.
- Explosion line raising.
- Both Blue histogram and Explosion line above DeadZone line.
Signal for EXIT_BUY: Exit when Blue histogram crosses below Explosion line / Bollinger Band.
Signal for ENTER_SELL: All the following conditions must be met.
- Pink histogram is raising.
- Pink histogram above Explosion line.
- Explosion line raising.
- Both Pink histogram and Explosion line above DeadZone line.
Signal for EXIT_SELL: Exit when Pink histogram crosses below Explosion line.
All of the parameters are configurable via options page. You may have to tune it for your instrument.
CRYPTO MARKET SESSION ANALYZER INDICATORCrypto Market Session Analyzer is an easy-to-use yet powerful analysis tool that helps the trader visualize and analyze price movements over three different trading sessions:
1) European Session
2) US session
3) Asian session
Automatically tracks the corresponding levels for each market session.
This indicator can be used on all timeframes equal to or less than 15 minutes.
Although this is a simple indicator to use, some care must be taken when using it. The trader must be careful to set the correct times for each session according to his UTC timezone. By default the indicator uses UTC. If your console is set to UTC + 2 for example, you will need to take this into account and align the times correctly. You can adjust the time for each session from the user interface. Following the example, if the opening of the UE session is set to 9 and UTC of your console is set to UTC + 2, the script will proceed to create the level at opening time 11.
HOW IT WORK
The indicator automatically draws a horizontal line at the open and a horizontal line at the close of each session. The indicator clears past support and resistance every 24 hours to provide a clean and easy-to-read chart, updating new levels session after session.
Blue indicates the EU session.
Orange indicates the US session.
Purple indicates the Asian session.
SMOOTHED RSI SWITCHThis more complex take on the traditional RSI provides clearer entry and exit points and looks beyond just overbought/oversold levels, altogether creating a more robust trading strategy.
The RSI is smoothed by the Hull MA with adjustable periods.
Although a variety of strategies can be developed using this indicator. I intended its most profitable use be as follows:
Entries are to be taken when the oscillator flips from red to clear and/or directly from red to green. Sell/short positions are to be take when the oscillator flips from green to clear and/or directly from green to red.
Triple Supertrend with EMA and ADX strategyPublishing a strategy that includes adx and ema filter as well
Entry: all three Supertrend turns positive. If a filter of ADX and EMA is applied, also check if ADX is above the selected level and close is above EMA
Exit: when the first supertrend turns negative
opposite for short entries
A FIlter is given to take or avoid re-enter on the same side. For example, After a long exit, if the entry condition is satisfied again for long before the short single is triggered it takes re-entry if selected.
Compound strategyIn this strategy, I looked at how to manage the crypto I bought. Once we have a little understanding of how cryptocurrency is valued, we can manage the coins we have. For example, the most valuable coin in a coin is to sell when it is overvalued and re-buy when it is undervalued. Furthermore, I realised that buying from the right place and selling at the right time is very important to make a good profit. When it says sell, it's divided into several parts.
1. When the major uptrend is over and we are able to make the desired profit, we will sell our holdings outright.
2. Selling in the middle of a down trend and buying less than that amount again
3. When a small uptrend is over, sell the ones you bought at a lower price and make a small profit.
The other important thing is that the average cost is gradually reduced. Also, those who sell at a loss will reduce their profit (winning rate), so knowing that we will have a chance to calculate our loss and recover it. I used this to write a strategy in Trading View. I have put the link below it. From that we can see how this idea works. What I did was I made the signal by taking some technical indicators as I did in the previous one (all the indicators I got in this case were directional indicators, then I was able to get a good correlation and a standard deviation. I multiplied the correlation and the standard deviation by both and I took the signal as the time when the graph went through zero, and I connected it to the volume so that I could see some of the volume supported by it.)
Now let me tell you a little bit about what I see in this strategy. In this I used the compound effect. That is, the strategy, the profit he takes to reinvest. On the other hand, the strategy itself can put a separate stop loss value on each trade and avoid any major loss from that trade. I also added to this strategy the ability to do swing trading. That means we can take the small profits that come with going on a big up trend or a big down trend. Combined with Compound Effect, Stop Loss and Swing Trading, I was able to make a profit of 894% per annum (1,117.62% for 15 months) with a winning rate of 80%. Winning rate dropped to 80% because I added stop loss and swing trading. The other thing is that I applied DCA to this in both the up trend and the down trend (both). That was another reason for me to make a good profit. The orange line shows how to reduction of costly trade. The yellow line shows the profit and you can see that the profit line does not go down during the loss trades. That's because I want to absorb the loss from that trade.
SAR + 3SMMA with SL & TPThis script is a combination of SAR strategy and 3 Smoothed Moving Averages.
Strategy:
Takes SAR longs when all 3 SMMAs are rising. Take SAR short when all 3 SMMAs are falling.
Supports StopLoss and TakeProfit.
If you have found a profitable setup for it, please share in the comments or private chat.
Valuation TableHey folks, I hope you are all doing well!
This is an indicator that you can use to help you to evaluate companies. There are a few things I added to the valuation table that I personally use and I will explain what they are.
I added Joel Greenblatt's ROC% because it takes Earnings before Interest and Taxes to reflect more closely what the company earns from its operations, while including the cost of depreciation/amortization of assets. A high double digit figure often means that the company has a defensible edge versus its competitors (e.g. a strong brand or a unique product). It's good for relative valuation (comparing two companies in the same industry).
I also added Donald Yacktman's forward rate of return. Yacktman defines forward rate of return as the normalized free cash flow yield plus real growth plus inflation . Unlike the Earnings Yield %, the Forward Rate of Return uses the normalized Free Cash Flow of the past seven years, and considers growth. The forward rate of return can be thought of as the return that investors buying the stock today can expect from it in the future. Yacktman’s Forward Rate of Return may or may not be a useful metric. However, it does present new ways to see and think about stocks we may want to buy.
I added a box called "real price" and that is from Peter Lynch's book, "One Up on Wall Street," where he talked about how the real price of the stock is really the current price - Net Cash Per Share.
I would also personally pair this script with TradingView's built in financial indicators that shows the revenue growth, net income, etc.
Note: the script only works on the weekly timeframe and it will take some time to load because it has a lot of data.
multiple orders - strategy - educationalHi,
Here is a 'template', using array's, for multiple orders and different SL/TP levels per trade (This is an example with max 5 open trades)
The 'switch' makes sure that the first available position will be used,
for example, when 'L1' is closed in the past, and a buy condition is triggered, position 'L1' will be filled,
should it be that 'L1', 'L2', 'L3' are already filled, then position 'L4' will be filled, ...
An extra table is added with data of the trades
Be aware, the 'Buy and Hold' resembles the profit when 100% of the available equity has been bought at the time of the very first trade and sold now. On the other hand, the positions work with a % of equity, 20% per trade (5 x 20 = 100%)
You can see that every trade exits on its own terms, without interference of other trades
Important, this technique only works if in the strategy() function:
- close_entries_rule -> set at 'ANY'
- pyramiding is set at max amount of trades or higher (in this case 5 or higher)
Cheers!
Volume Pace & Pressure TableHave you ever wanted to know if a particular tickers volume is above or below average while still in the trading day? This indicator displays an easy-to-read table that informs the user exactly what is occurring in intraday volume. And a whole lot more!
Description
This indicator displays a variable table with either two or three columns and always three rows. It packs everything a user needs to know about volume in one small table. The table shows:
Current trading days volume
Average daily volume
Volume Pace
Volume Pressure (Buying & Selling)
Volume Pace
Volume Pace is a mathematical calculation invented by the author, Infinity_Trading . The problem was to figure out a way to know if the current days volume was below average or above average while still in the trading day. Calculations like Percent Daily Volume don’t work during the intraday trading hours. For example, say SPY has a 20-day volume average of 100 million shares. If in the first hour SPY has only traded 10 million shares then dividing the current volume into the average daily volume doesn’t tell the user anything when there is still 5.5 hours of trading left in the trading day. There had to be a better way! The solution was to chop up the trading day into evenly divisible time periods (i.e. <= 30 minutes). The Volume Pace algorithm takes the average daily volume and chops it up into small time periods based upon the charts current timeframe. This is the average volume per smaller time period. Then use the current days volume and the number of time periods that have occurred in the trading day so far (at the current moment in time i.e. the current candlestick) to form a calculation that returns the volume above or below the average volume up to that point in time.
Volume Pace Equations
Intraday Vol. Pace = Today’s Current Vol. - ( ( Average Daily Vol. / Time periods in trading day ) * Time periods that have occurred so far in trading day )
Postday Vol. Pace = Today’s Trading Vol. - Average Daily Vol.
^ Vol. = Volume (because TradingViews pine tags are dumb)
Volume Pace Definitions
Volume Pace is the difference in cumulative volume between todays current volume and the average daily volume up to same time of the day
Volume Pace Usage
If the Volume Pace is a positive number then it means that up to the current trading time the volume is that amount greater than the average daily volume over that same intraday time span.
If the Volume Pace is a negative number then it means that up to the current trading time the volume is that amount smaller than the average daily volume over that same intraday time span.
If the Volume Pace is positive during the intraday then the volume is on track to be an above average volume trading day.
If the Volume Pace is negative during the intraday then the volume is on track to be a below average volume trading day.
The Percent Volume Pace is the percent increase or decrease of the current volume compared to the average volume up to the same time of day. Or the Percent Volume Pace is the Volume Pace expressed as a percentage.
After the trading day is complete the Volume Pace will be the difference between the Daily Volume and the Average Daily Volume. And the same thing applies to the Percent Volume Pace.
Volume Pressure
The author, Infinity_Trading, did not invent the calculations for Volume Pressure but the definitions and explanations of Volume Pressure are their own creations. In specific terms, Volume Pressure is a mathematical calculation that uses the direction and distances of individual candlesticks bodies and wicks to assign a numerical value to volume.
buyingPressure = vol * (close - low) / (high - low)
sellingPressure = vol * (high - close) / (high - low)
^ vol = Volume (because TradingViews pine tags are dumb)
The author wants to make clear that volume “pressure” isn’t a real thing. Trades in any market require a buyer and a seller. So there is always an equal number of buyers and sellers. Thus, the idea that there are more buyers or more sellers isn’t rooted in reality. BUT the author believes that the calculation and understanding of “volume pressure” takes a very complex subject (price moment in a market) and condenses into something that intuitively makes sense to humans (pressure) and places it onto something that is already on everyone’s charts (volume bars).
The calculation for Buying Pressure is really calculating the upward distance between the low and the close of the candle. While Selling Pressure is measuring the downward distance from the high to the close. And both are using volume bars to express these measurements. So if an individual candle goes down then the red Selling Pressure will be more on the stacked bar chart than the green Buying Pressure. And vice versa for candles that went up. If a Volume Pressure bar is completely one color then it means, for a downward candle, the low and close were equivalent, and for an upward candle, the high and the close were the same. Lastly, the Buying & Selling Pressure will always add up to 100%.
Inputs and Style
In the Input section the user can set the number of days to use for all of the average calculations. All aspects of the table can be controlled. The background color, text color, border widths, and border colors. Also, the table can be moved to 9 unique locations around the chart for complete user control. Also, the user can use their cursor to hover over each cell in the table to reveal a tooltip definition of the calculation in the cell.
Special Notes
The volume table won’t display when the chart timeframe is weekly or monthly because the logic uses “daily” volume.
The Volume Pace column in the table disappears when the timeframe is greater than 30 minutes. Because for Volume Pace to work the time periods must be equally divisible into 6.5 hours (the duration of trading day).
Long Term: Cumulative Moving AverageWho to use?
This indicator is for Long Term Investors or for Position trading and not for Day traders.
What time-frame to use?
• Daily, Weekly or Monthly
What is Blue line?
• Blue line is Cumulative Moving Average. It is cumulative sum of closing price.
• It is a trend reversal level.
• It is a strong support level.
• If price is below Blue line better not to take any Long position until it crosses above it.
What are Red lines?
• Red lines are Multiplier levels.
• These are target levels to exit the position.
• It can be breakout or pull back levels.
• The level combination numbers can be fully odd or even numbers.
• For example in certain stocks the working levels will be 1x, 3x, 5x etc., in others it will be even numbers like 2x, 4x, 6x etc.
• In some cases the levels need to be tweaked with custom decimals like 1.1x, 2.1x, 3.1x, 4.1x etc. to align the support & resistance levels.
How to use?
Entry
• Enter when the Price reach closer to the Blue line.
• Enter Long when the Price takes a pullback or breakout at the Red lines.
Exit
• Exit position when the Price reach closer to the Red lines in Long positions.
Indicator Menu
• Works only in higher time-frames like D, W & M.
• Will not work in Lower time-frames less than "D" or the Launch Date shows wrong in Lower time-frames.
Multipliers:
(Read above What are Red lines?)
Launch Date:
• Launch Date: Starting date of stock when it appeared in the exchange. Works only in D, W & M timeframes.
• Years: Total number of years from the Launch Date. Accurate date will be shown in Daily timeframe.
• Candles Count: Total number of candles from the Launch Date in the current timeframe.
Labels:
• First number is last traded price.
• Second number in () is percentage change from last traded price to that level.
HighTimeframeTimingLibrary "HighTimeframeTiming"
@description Library for sampling high timeframe (HTF) historical data at an arbitrary number of HTF bars back, using a single security() call.
The data is fixed and does not alter over the course of the HTF bar. It also behaves consistently on historical and elapsed realtime bars.
‼ LIMITATIONS: This library function depends on there being a consistent number of chart timeframe bars within the HTF bar. This is almost always true in 24/7 markets like crypto.
This might not be true if the chart doesn't produce an update when expected, for example because the asset is thinly traded and there is no volume or price update from the feed at that time.
To mitigate this risk, use this function on liquid assets and at chart timeframes high enough to reliably produce updates at least once per bar period.
The consistent ratio of bars might also break down in markets with irregular sessions and hours. I'm not sure if or how one could mitigate this.
Another limitation is that because we're accessing a multiplied number of chart bars, you will run out of chart bars faster than you would HTF bars. This is only a problem if you use a large historical operator.
If you call a function from this library, you should probably reproduce these limitations in your script description.
However, all of this doesn't mean that this function might not still be the best available solution, depending what your needs are.
If a single chart bar is skipped, for example, the calculation will be off by 1 until the next HTF bar opens. This is certainly inconsistent, but potentially still usable.
@function f_offset_synch(float _HTF_X, int _HTF_H, int _openChartBarsIn, bool _updateEarly)
Returns the number of chart bars that you need to go back in order to get a stable HTF value from a given number of HTF bars ago.
@param float _HTF_X is the timeframe multiplier, i.e. how much bigger the selected timeframe is than the chart timeframe. The script shows a way to calculate this using another of my libraries without using up a security() call.
@param int _HTF_H is the historical operator on the HTF, i.e. how many bars back you want to go on the higher timeframe. If omitted, defaults to zero.
@param int _openChartBarsIn is how many chart bars have been opened within the current HTF bar. An example of calculating this is given below.
@param bool _updateEarly defines whether you want to update the value at the closing calculation of the last chart bar in the HTF bar or at the open of the first one.
@returns an integer that you can use as a historical operator to retrieve the value for the appropriate HTF bar.
🙏 Credits: This library is an attempt at a solution of the problems in using HTF data that were laid out by Pinecoders in "security() revisited" -
Thanks are due to the authors of that work for an understanding of HTF issues. In addition, the current script also includes some of its code.
Specifically, this script reuses the main function recommended in "security() revisited", for the purposes of comparison. And it extends that function to access historical data, again just for comparison.
All the rest of the code, and in particular all of the code in the exported function, is my own.
Special thanks to LucF for pointing out the limitations of my approach.
~~~~~~~~~~~~~~~~|
EXPLANATION
~~~~~~~~~~~~~~~~|
Problems with live HTF data: Many problems with using live HTF data from security() have been clearly explained by Pinecoders in "security() revisited"
In short, its behaviour is inconsistent between historical and elapsed realtime bars, and it changes in realtime, which can cause calculations and alerts to misbehave.
Various unsatisfactory solutions are discussed in "security() revisited", and understanding that script is a prerequisite to understanding this library.
PineCoders give their own solution, which is to fix the data by essentially using the previous HTF bar's data. Importantly, that solution is consistent between historical and realtime bars.
This library is an attempt to provide an alternative to that solution.
Problems with historical HTF data: In addition to the problems with live HTF data, there are different issues when trying to access historical HTF data.
Why use historical HTF data? Maybe you want to do custom calculations that involve previous HTF bars. Or to use HTF data in a function that has mutable variables and so can't be done in a security() call.
Most obviously, using the historical operator (in this description, represented using { } because the square brackets don't render) on variables already retrieved from a security() call, e.g. HTF_Close{1}, is not very useful:
it retrieves the value from the previous *chart* bar, not the previous HTF bar.
Using {1} directly in the security() call instead does get data from the previous HTF bar, but it behaves inconsistently, as we shall see.
This library addresses these concerns as well.
Housekeeping: To follow what's going on with the example and comparisons, turn line labels on: Settings > Scales > Indicator Name Label.
The following explanation assumes "close" as the source, but you can change it if you want.
To quickly see the difference between historical and realtime bars, set the HTF to something like 3 minutes on a 15s chart.
The bars at the top of the screen show the status. Historical bars are grey, elapsed realtime bars are red, and the realtime bar is green. A white vertical line shows the open of a HTF bar.
A: This library function f_offset_synch(): When supplied with an input offset of 0, it plots a stable value of the close of the *previous* HTF bar. This value is thus safe to use for calculations and alerts.
For a historical operator of {1}, it gives the close of the *last-but-one* bar. Sounds simple enough. Let's look at the other options to see its advantages.
B: Live HTF data: Represented on the line label as "security(){0}". Note: this is the source that f_offset_synch() samples.
The raw HTF data is very different on historical and realtime bars:
+ On historical bars, it uses a flat value from the end of the previous HTF bar. It updates at the close of the HTF bar.
+ On realtime bars, it varies between and within each chart bar.
There might be occasions where you want to use live data, in full knowledge of its drawbacks described above. For example, to show simple live conditions that are reversible after a chart bar close.
This library transforms live data to get the fixed data, thus giving you access to both live and fixed data with only one security() call.
C: Historical data using security(){H}: To see how this behaves, set the {H} value in the settings to 1 and show options A, B, and C.
+ On historical bars, this option matches option A, this library function, exactly. It behaves just like security(){0} but one HTF bar behind, as you would expect.
+ On realtime bars, this option takes the value of security(){0} at the end of a HTF bar, but it takes it from the previous *chart* bar, and then persists that.
The easiest way to see this inconsistency is on the first realtime bar (marked red at the top of the screen). This option suddenly jumps, even if it's in the middle of a HTF bar.
Contrast this with option A, which is always constant, until it updates, once per HTF bar.
D: PineCoders' original function: To see how this behaves, show options A, B, and D. Set the {H} value in the settings to 0, then 1.
The PineCoders' original function (D) and extended function (E) do not have the same limitations as this library, described in the Limitations section.
This option has all of the same advantages that this library function, option A, does, with the following differences:
+ It cannot access historical data. The {H} setting makes no difference.
+ It always updates at the open of the first chart bar in a new HTF bar.
By contrast, this library function, option A, is configured by default to update at the close of the last chart bar in a HTF bar.
This little frontrunning is only a few seconds but could be significant in trading. E.g. on a 1D HTF with a 4H chart, an alert that involves a HTF change set to trigger ON CLOSE would trigger 4 hours later using this method -
but use exactly the same value. It depends on the market and timeframe as to whether you could actually trade this. E.g. at the very end of a tradfi day your order won't get executed.
This behaviour mimics how security() itself updates, as is easy to see on the chart. If you don't want it, just set in_updateEarly to false. Then it matches option D exactly.
E: PineCoders' function, extended to get history: To see how this behaves, show options A and E. Set the {H} value in the settings to 0, then 1.
I modified the original function to be able to get historical values. In all other respects it is the same.
Apart from not having the option to update earlier, the only disadvantage of this method vs this library function is that it requires one security() call for each historical operator.
For example, if you wanted live data, and fixed data, and fixed data one bar back, you would need 3 security() calls. My library function requires just one.
This is the essential tradeoff: extra complexity and less robustness in certain circumstances (the PineCoders function is simple and universal by comparison) for more flexibility with fewer security() calls.
Market IndicatorIt shows bullish / bearish market. It takes the closing price and divide it by the last 20 periods moving average. Then, it takes the logarithm. So, if:
-Price above MA20: >0
-Price below MA20: <0
3 Candle Strike StretegyMainly developed for AMEX:SPY trading on 1 min chart. But feel free to try on other tickers.
Basic idea of this strategy is to look for 3 candle reversal pattern within trending market structure. The 3 candle reversal pattern consist of 3 consecutive bullish or bearish candles,
followed by an engulfing candle in the opposite direction. This pattern usually signals a reversal of short term trend. This strategy also uses multiple moving averages to filter long or short
entries. ie. if the 21 smoothed moving average is above the 50, only look for long (bullish) entries, and vise versa. There is option change these moving average periods to suit your needs.
I also choose to use Linear Regression to determine whether the market is ranging or trending. It seems the 3 candle pattern is more successful under trending market. Hence I use it as a filter.
There is also an option to combine this strategy with moving average crossovers. The idea is to look for 3 candle pattern right after a fast moving average crosses over a slow moving average.
By default , 21 and 50 smoothed moving averages are used. This gives additional entry opportunities and also provides better results.
This strategy aims for 1:3 risk to reward ratio. Stop losses are calculated using the closest low or high values for long or short entries, respectively, with an offset using a percentage of
the daily ATR value. This allows some price fluctuation without being stopped out prematurely. Price target is calculated by multiplying the difference between the entry price and the stop loss
by a factor of 3. When price target is reach, this strategy will set stop loss at the price target and wait for exit condition to maximize potential profit.
This strategy will exit an order if an opposing 3 candle pattern is detected, this could happen before stop loss or price target is reached, and may also happen after price target is reached.
*Note that this strategy is designed for same day SPY option scalping. I haven't determined an easy way to calculate the # of contracts to represent the equivalent option values. Plus the option
prices varies greatly depending on which strike and expiry that may suits your trading style. Therefore, please be mindful of the net profit shown. By default, each entry is approximately equal
to buying 10 of same day or 1 day expiry call or puts at strike $1 - $2 OTM. This strategy will close all open trades at 3:45pm EST on Mon, Wed, and Fri.
**Note that this strategy also takes into account of extended market data.
***Note pyramiding is set to 2 by default, so it allows for multiple entries on the way towards price target.
Remember that market conditions are always changing. This strategy was only able to be back-tested using 1 month of data. This strategy may not work the next month. Please keep that in mind.
Also, I take no credit for any of the indicators used as part of this strategy.
Enjoy~
Multi Day vWAP (Customizable) with AverageIntroducing the Multi-Day vWAP indicator that is fully customizable with average indicator option.
High level overview (default settings):
Default is 10 plots with each setting 1 day apart (1-10 day look back)
Labels for each plot are turned on by default (labels will default to your value, more below)
Use Style tab in options to change colors, plot style, and turn on/off individual plots
Average is turned off by default (style panel will show it's on-- go to Inputs panel and select "Show vWAP Average" to turn on)
Best use case is go to Visibility Panel in options and turn off for Days, Weeks, and Months
To turn off all labels at once go to Style tab and unselect "Labels" checkbox
If you want plots to be as small as possible in Inputs panel set the Plot Width to 0 (zero)
Detail Overview
This indicator will plot your custom daily vWAP values.
You can change the lookback period. If you change the lookback period the label will match your custom value.
For instance, if you change vWAP 1 value to "5", the label for this plot will be 5.
Average Notes:
The average will average all the vWAP values by the divisor. The default is to average all values by 10.
The average will always start to plot from the shortest lookback period. It is not possible to have the average plot before that point.
Trading Tips (default settings)
The simple way to use the vWAP is to treat them as magnets.
For intance,
Generally if price is trading below all the vWAP plots the chart is in a momentum short enviroment. All vWAP areas can be used for upside resistance/reaction areas.
If price is trading above the chart is in a momentum long enviroment and pullbacks can to vWAP levels can be looked as areas of support/reaction.
For instance:
Price is above the current day vWAP and looking to test the previous day vWAP value.
As it approaches the 2 value you are expecting this area to be a reaction area (good trade entry area) for a continuation short trade. Possibly to check back into the current day vWAP value.
I should share that this is a simple way to trade with the vWAP (true success with vWAP is understanding that price trades in vWAP channels).
Stacking and Strong Momentum
The other pattern you should look for is stacking.
For instance on this CL chart:
This chart is strong momentum long.
All 10 day vWAP plots are stacked on top of each other.
Previous action tested below all vWAPs. Price traded thru and came back and retested. Finally closing above all and above the vWAP avearge (red).
When the day vWAP was broke the next target you look for is the 2 vWAP. This reaction area held up and momentum long continued and continuing to trade above current day vWAP.
7 Day Rolling Example (Larger Timeframe)
Another great way to use this indicator is to customize the values for rolling 7 days (5 days for cash markets).
To do this set values to: 7, 14, 21, 28, 35, 42, 49, 56, 63, 70
For instance, this BTC chart:
This chart provides a good example of what you'll find when a chart is at a pivot point.
Price is checking in at the average to remain momentum long.
Upside longer term vWAP plots have been tested and had expected reaction.
Price is trading above the shorter term values.
Simple TA here will note if chart continues to trade above and takes out upper vWAPs long momentum is gaining ground.
On the downside if price trades thru the lower vWAP plots you would expect further downside. In this scenario you would be mindful to expect upside tests before (which could be good entry/reaction areas).
NQ example with 7 day values:
Overall chart is momentum short.
7 is above 14, 21
Maybe early sign of bottom.
If price takes out these values and holds above the buyers have quite a few challenges above.
Price Difference At ExpirationThe general idea:
When selling short options it is important to enter trades with a high probability of expiring Out Of The Money (OTM). Short options have limited upside and unlimited downside and so it is crucial to get both the direction and magnitude correct before entering a trade. However, this can be tricky to do reliably and so it's also a good idea to write options with a strike price far enough away from the underlying's price so that if you are directionally wrong, there's still a good chance of making a profitable trade.
But how far from the current price is far enough for a given underlying? How much is too much?
This indicator seeks to help short options traders answer these questions.
This script is fairly simple and is meant to work only on a daily chart. The basic idea is to show "if I had entered a trade with X days till expiration and a $Y strike, would the actual price change in the underlying have threatened my position before the option expired?"
To answer this question we take the closing price of each day and compare it with the closing price X number of days prior. If the current day closed higher than the day X days prior (Option entry), then we draw a positive bar with the value of the price change. Conversely, if the current day closed lower than the day X days prior we draw a negative bar with the value of the price change. For each bar we draw, we compare it with a given "max range" or "buffer". This buffer is how far OTM with which you are seeking to enter your options trade. If the actual price difference between the theoretical start and end of your trade is greater than the buffer you specified, the bar is drawn in red. Otherwise, if the total price change is safely within the buffer you built into your trade, the bar is drawn in gray.
Obviously, if you are really good at picking the direction of the underlying, the buffer you build into your options contract doesn't matter, you get a profitable trade no matter what! Good job, and please share your charts with me! However, for those of use a bit less clairvoyant, this indicator seeks to help options traders get a sense for whether or not their contracts have enough wiggle room to account for the price moving against them unexpectedly. This indicator gives you the ability to adjust expiration and buffer and get a sense for how well that configuration would have done historically if you had taken each contract to expiration. The assumption being: if it worked really well in the past, then it might work well for this trade. Obviously, past performance doesn't guarantee future results. Just because a particular buffer has worked well in the past doesn't mean that it will work now. Please trade at your own risk. This is just meant to help give a better sense of scale by offering historical comparisons. You can think of this as a rudimentary live backtesting tool.
How to use:
First, add the indicator to your chart and select an underlying. The example chart shown above is for RUT. In the example, I am interested in knowing whether a $200 buffer within 10DTE trades is sufficient to produce a likely winning trade even if I'm wrong about the direction of the underlying. To do this I push the settings button of the indicator and type in 10 for "Interval (days)" and 200 for "Buffer". Next I select only "Monday", "Wednesday", and "Friday" from the expiration checkboxes; leaving "Tuesday" and "Thursday" unchecked. This is because RUT has 3 expirations per week unlike most others that have just one per week (Friday). If you are looking at weekly options you should just check "Friday".
How to interpret the chart:
- Gray bars are your friends. Gray bars mean that if you had entered into a trade with the given DTE and buffer and you happen to be wrong about the direction (it happens to us all!), you would have still ended up with a winning trade. Good Job!
- Red bars indicate possible trouble. This means that your option would have likely been exercised if held till expiration given the amount of buffer you built into the contract. You might have needed to close for a loss or roll or take assignment.
How this can help:
I find it useful to adjust the DTE and buffer when I am going to enter a trade. It helps me see whether a similar trade has historically been resilient to lapses in directional judgement or not. If I'm really confident in the direction, then this won't be so useful. I could then sell closer to the money and feel like I have a winning position. But if there is less certainty and I want to dial back my risk, then this indicator helps me find the right risk/reward with regard to picking expirations and strikes.
Silen's Financials Fair ValueIt is finally here! 🔥 My 3rd and most important script in my Financial series! 🚀
Ever imagined to see all fundamentals (or many that is) combined into one indicator that is right on your chart, showing you how your favorite stock is trading compared to its fundamentals?
Well, here is your answer! 📡
____________________________________________________________________________________________
This script shows you my own personal interpretation of fair value, based solely on the financial fundamentals of a company compared to market averages.
I don't believe that certain sectors of the market should be priced higher than others. If you look at historical data you'll see that favored sectors always rotate - placing insanely high P/E multiples on some sectors. Once they are "out" and people rotate away from those sectors you're left with nothing but the naked fundamentals that matter. So, you'll see many companies, that have been doing well on paper, see their share price decline by 70-90% for no other reasons than people favoring other sectors.
That's why it's even more important to focus on fair value that is solely fundamentals-based. Know when your stock gets to expensive. 🤯
____________________________________________________________________________________________
To give you some examples:
- Most Megacaps trade at historically high valuations, several times my fair value. Those include AAPL, MSFT, NVDA, AMZN, TSLA, JPM, TSM, V and so on. And no, in the past they partially traded below (my) fair value.
- Most Cybersecurity / Cloud companies are trading at truly massive multiples of my fair value. (NET, DDOG, etc)
- Many Smallcaps & Midcaps are trading several multiples (OESX, CODX, QFIN) below my fair value. And no, in the past they partially traded above (my) fair value.
Ok, so much about the market. You ultimately decide how much you want to orientate on fair value. 👨🏫
____________________________________________________________________________________________
This fair value indicator (purple line):
Takes the P/E rate of the company and compares it to the market (50% weight)
Takes the P/S rate of the company and compares it to the market (50% weight)
Then adds boni and mali f or debt/equity rates and debt and equity itself
Also looks at past growth and calculates future P/E and P/S rates which adds , in some cases, value to the fair value (green line)
Also compares how historical valuations have behaved compared to fair value and simulates a fair value guideline (dark blue line)
____________________________________________________________________________________________
This script is part 3️⃣ of a series of indicators that work well together.
Script 1️⃣ of the series is:
P/E & P/S Rates
Script 2️⃣ of the series is:
Debt & Equity
If you use all 3 scripts together it will look like this, giving you truly deep and simple information about the fundamentals of a company:
Example 1 - AMD
Example 2 - HZO
Example 3 - APPS
I hope this script makes your investing and stock picks a lot easier! 🔆💹🕗
Disclaimer: Fair value is always subjective. There are many different approaches to fair value. This one is only my personal interpretation.
Disclaimer 2: This script works only for the Day-Timeframe.
Disclaimer 3: This script uses 17,5 P/E and 3,0 P/S as market averages. The actual average keeps changing but, historically speaking, these seemed to be good numbers.
Feel free to share your thoughts and feedback! 🙃






















