Multi Bar OHLC Compare Panel (Floating Grid)Multi Bar OHLC Compare Panel by RagingRocketBull 2019
version 1.0
This indicator lets you compare OHLCV values from several specified bars. Bars can be dynamic/persistent.
You can also use it as an alternate OHLC panel if you don't like small font of the native TradingView panel.
It uses Pinescript v4 to output data dynamically as string labels in a horiz/vertical grid.
Features:
- Floating Panel with customizable horiz/vertical layout and grid spacing
- Support for up to 5 OHLC bars (highlighted with markers)
- Outputs Bar #/index, OHLCV, Bar Change Value/%, Exchange/Ticker, Timeframe, Timestamp strings
- Dynamic (fixed offset)/Persistent bars (fixed time)
- Show/Hide parts of strings
- Full output string customization, including text size, date/time format and delimiters
- 2 Anchor points for panel offset: cur bar high or range high
- Bar Change can change color
Usage:
- specify at least 1 bar index as OHLC source
- select anchor point to position the panel
- select horiz/vertical grid layout
- adjust horiz/vertical spacing
- customize output strings as needed
Notes:
- this indicator uses Pinescript v3 Compatibity Framework
- both bars 1,2 are required for log scale adjustment to work
- you can't attach the panel to screen's top/bottom and must use offset/anchor because, unlike plotshape, string labels don't support yloc=yloc.top/bottom, only yloc.above/belowbar
- you can't precisely align strings in a grid because there's no label.get_width/height to calculate mid/left points, only get_x/y/text. Alignment will break depending on string length, zoom and change color option on/off
- bar change is rendered as a separate label when change color is enabled (2 panels total) and merged into the main panel when disabled (single panel)
- you can't change the order of strings as playing with the natural order of things isn't the best of ideas
- you can modify the script to compare up to 50 OHLC bars, but do you need that much power? Of course, you do.
- you can't set color/style for string labels in Style UI, so a few extra settings were added.
- bar index is limited to 5000 for free accounts (10000 for paid), will show an error when exceeded, also when it exceeds the total number of bars in history
- in persistent bars mode all bars with index > 0 are considered persistent, bar 0 always remains a dynamic bar
- persistent bars' offset is reset: in replay mode on exit or when price reaches cur bar, or when panel layout is changed from h to v in both replay/realtime modes
- initial pos of each persistent bar relative to the first realtime bar anchor doesn't change during session - new persistent bars introduced during session are attached to the most recent cur bar anchor
P.S. Everything is proceeding as I have foreseen
Dynamic
Dynamically Adjustable FilterIntroduction
Inspired from the Kalman filter this indicator aim to provide a good result in term of smoothness and reactivity while letting the user the option to increase/decrease smoothing.
Optimality And Dynamical Adjustment
This indicator is constructed in the same manner as many adaptive moving averages by using exponential averaging with a smoothing variable, this is described by :
x= x_1 + a(y - x_1)
where y is the input price (measurements) and a is the smoothing variable, with Kalman filters a is often replaced by K or Kalman Gain , this Gain is what adjust the estimate to the measurements. In the indicator K is calculated as follow :
K = Absolute Error of the estimate/(Absolute Error of the estimate + Measurements Dispersion * length)
The error of the estimate is just the absolute difference between the measurements and the estimate, the dispersion is the measurements standard deviation and length is a parameter controlling smoothness. K adjust to price volatility and try to provide a good estimate no matter the size of length . In order to increase reactivity the price input (measurements) has been summed with the estimate error.
Now this indicator use a fraction of what a Kalman filter use for its entire calculation, therefore the covariance update has been discarded as well as the extrapolation part.
About parameters length control the filter smoothness, the lag reduction option create more reactive results.
Conclusion
You can create smoothing variables for any adaptive indicator by using the : a/(a+b) form since this operation always return values between 0 and 1 as long as a and b are positive. Hope it help !
Thanks for reading !
Dynamically Adjustable Moving AverageIntroduction
The Dynamically Adjustable Moving Average (AMA) is an adaptive moving average proposed by Jacinta Chan Phooi M’ng (1) originally provided to forecast Asian Tiger's futures markets. AMA adjust to market condition in order to avoid whipsaw trades as well as entering the trending market earlier. This moving average showed better results than classical methods (SMA20, EMA20, MAC, MACD, KAMA, OptSMA) using a classical crossover/under strategy in Asian Tiger's futures from 2014 to 2015.
Dynamically Adjustable Moving Average
AMA adjust to market condition using a non-exponential method, which in itself is not common, AMA is described as follow :
1/v * sum(close,v)
where v = σ/√σ
σ is the price standard deviation.
v is defined as the Efficacy Ratio (not be confounded with the Efficiency Ratio) . As you can see v determine the moving average period, you could resume the formula in pine with sma(close,v) but in pine its not possible to use the function sma with variables for length, however you can derive sma using cumulation.
sma ≈ d/length where d = c - c_length and c = cum(close)
So a moving average can be expressed as the difference of the cumulated price by the cumulated price length period back, this difference is then divided by length. The length period of the indicator should be short since rounded version of v tend to become less variables thus providing less adaptive results.
AMA in Forex Market
In 2014/2015 Major Forex currencies where more persistent than Asian Tiger's Futures (2) , also most traded currency pairs tend to have a strong long-term positive autocorrelation so AMA could have in theory provided good results if we only focus on the long term dependency. AMA has been tested with ASEAN-5 Currencies (3) and still showed good results, however forex is still a tricky market, also there is zero proof that switching to a long term moving average during ranging market avoid whipsaw trades (if you have a paper who prove it please pm me) .
Conclusion
An interesting indicator, however the idea behind it is far from being optimal, so far most adaptive methods tend to focus more in adapting themselves to market complexity than volatility. An interesting approach would have been to determine the validity of a signal by checking the efficacy ratio at time t . Backtesting could be a good way to see if the indicator is still performing well.
References
(1) J.C.P. M’ng, Dynamically adjustable moving average (AMA’) technical
analysis indicator to forecast Asian Tigers’ futures markets, Physica A (2018),
doi.org
(2) www.researchgate.net
(3) www.ncbi.nlm.nih.gov
Dynamic Support & ResistanceThis indicator paints the background of the chart between 2 EMAs when all 3 given EMAs are in sync.
The default settings are:
Long-term EMA: 200 Period.
Short-term EMA 1: 50 Period.
Short-term EMA 2: 20 Period.
So according to the default settings, when the 20EMA is above the 50EMA, and the 50EMA is above the 200EMA, the area between the 20EMA and the 50EMA will turn green. When the 20EMA is below the 50EMA, and the 50EMA is below the 200EMA, the area will turn red. When the EMAs are all over the place (ie. price is consolidating), the area will be painted white.
You can change the colors in the indicator settings menu. To remove the white background, change the transparency to 100%. Unfortunately pinescript does not allow you to do this using code, otherwise I would have made that a default feature.
Enjoy! Let me know if you have any questions.
Regards,
- Matt
5 Moving AveragesI don't sell indicators only strategies I use for dynamic support and resistance sometimes. www.youtube.com
MgGinley Dynamic Divergence [DW]This is an experimental study designed to visualize momentum and average range by expressing divergences between price and a McGinley Dynamic as a percentage.
Dynamic Time Oscillator W/ MTF SupportThis script has the option to disable the MTF feature and use it as a plain DTOscillator.
The lines are the fast and slow signals for the current timeframe.
The columns are the second timeframe %K levels.
Green columns signify the second timeframe %K is greater than the second timeframe %D, Red is the reverse of this.
Chaos 2.0This is pure chaos!
I just wanted 1 thing I can put on a chart to try to get a clearer picture of what is going on (and not take up all the indicator spaces a free user is allowed haha)
Many things going on from so many different users
honestly I'm sorry I cant shout out everyone whose code I have ever read and used in another project just for the sake of learning more about pinescript!
As a way of shouting everyone out! (and giving out my most useful and configurable system)
I give you... CHAOS
I originally got an Alligator, AO, and Fractal script from a user ChaosTrader, then realized I love using averages!
I added the MESA (lazybear?) and the McGinley Dynamic Range (sry idk) and a simple 233 SMA.
I also found about something called the www.prorealcode.com another user had created for Pinescript.
I really liked that script so I adapted it to do the same kind of signal printing for circles and squares (crosses and series)
Check it out tell me what you think and how I can make it better for everyone!
thanks all!
Snoop
McGinley Dynamic with FRACTAL DEVIATION BANDS by @XeL_ArjonaMcGINLEY DYNAMIC with FRACTAL DEVIATION BANDS.
Ver. 1.0.beta.25.08.2015
By Ricardo M Arjona @XeL_Arjona
DISCLAIMER
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets. -- The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is.
WHAT IS THIS?
This is my first adaptation of the FRACTAL DEVIATION BANDS to the "McGinley Dynamic Line". Be advised that the nature of this line tend to need some adjustments at the "Smooth Factor" if you see a flat line with tiny values.
Pine Script code MOD's and adaptations by @XeL_Arjona with special mention in regard of:
Morphic Numbers: (PHI & Plastic) Pine Script adaptation from it's algebraic generation formulas by @XeL_Arjona.
FRACTAL DEVIATION BANDS: main idea by @XeL_Arjona
ALL NEW IDEAS OR MODIFICATIONS to these indicator(s) are Welcome in favor to deploy a better and more accurate readings. I will be very glad to be notified at Twitter or TradingVew accounts at: @XeL_Arjona. Any important addition to this work MUST REMAIN PUBLIC by means of CreativeCommons CC & TradingView.
2015
Dynamic SUPRES Multi Timeframe UpdateDynamic SUPRES can be interpreted in different ways. Each square marks an area of congestion that could serve as support and resistance.
FLASH UPDATE: Now is possible to choose the timeframe and the bars color on/off.
Dynamic SUPRESDynamic SUPRES can be interpreted in different ways. Each square marks an area of congestion that could serve as support and resistance.
Dynamic Momentum Index (DMI) This indicator plots Dynamic Momentum Index indicator. The Dynamic Momentum
Index (DMI) was developed by Tushar Chande and Stanley Kroll. The indicator
is covered in detail in their book The New Technical Trader.
The DMI is identical to Welles Wilder`s Relative Strength Index except the
number of periods is variable rather than fixed. The variability of the time
periods used in the DMI is controlled by the recent volatility of prices.
The more volatile the prices, the more sensitive the DMI is to price changes.
In other words, the DMI will use more time periods during quiet markets, and
less during active markets. The maximum time periods the DMI can reach is 30
and the minimum is 3. This calculation method is similar to the Variable
Moving Average, also developed by Tushar Chande.
The advantage of using a variable length time period when calculating the RSI
is that it overcomes the negative effects of smoothing, which often obscure short-term moves.
The volatility index used in controlling the time periods in the DMI is based
on a calculation using a five period standard deviation and a ten period average
of the standard deviation.