Tops & Bottoms FinderIntroduction
I already shared a method to estimate tops and bottoms (1), the number of parameters could lead to optimization issues so i tried to make a simpler method. In this method i use a simple rescaling method based on individual direction deviation. I will explain further details below.
The Indicator
I use as source for the entire calculation an exponential moving average, the first reaction to this choice would be to think that i wanted to filter signals in order to reduce them, but the truth is that i wanted to have more signals instead, this is because the first calculations involving standard deviations are based on price direction, so by using a smooth input we can get more persistent values in a and b , but its totally up to you to use whatever you want in a , just take into account that less smooth = less signals, this is why i used this calculation process.
a = close and length = 7
a = least squares moving average and length = 25
So you could use pretty much everything you want as input.
Conclusion
The accuracy of such indicators is still relatively low but i presented a way to estimate tops and bottoms without using highest/lowest or differencing thus creating a totally new approach. I encourage you to experiment with it and share your results. If you learned something with this post then i'am happy :)
Notes
Based on several complaints i will have to leave even sooner, i think the 7 of June will be a good day, so if you need something i encourage you to ask me now. With the hope you can understand.
Thanks for reading !
(1)
Valley
Peak Valley Estimation StrategyIntroduction
Its the first strategy that i post here, so don't expect ground breaking stuff, when testing my indicators i always used prorealtime and not tradingview. This strategy use signals generated by the peak/valley estimator indicator i posted long ago, i think the signals generated where sometimes quite accurate in some markets thus providing potential material for a profitable strategy.
The indicator use 3 parameters, therefore the optimisation process is not easy, but i selected what i judged good parameters values at first glance. The strategy is in its more simple form without stop or anything, the detection of peaks and valley can allow for tighter stops since we expect the price to reverse, but take into account that sops and take profits are parameters subject to optimization process except if selected with strict money management rules and not profit optimization.
Of course trading the strategy in this form is far from being great, if we take into account the market non stationarity then we might expect loss during trending markets. Trend strength indicators could help switch from a reversal to breakout strategy thus maybe providing more control.
I really hope you find an use for the strategy.
Notes
Its been three long years since i started tradingview, and i put more efforts in my indicators than in my studies and life overall, this have created complicated situations and i can't afford to follow up with this, therefore i announce that in the end of june i will leave tradingview for quite a long time, at least until i have my degree. I announce it in advance in case some of you want helps of any kind. I will post all the indicators, both in progress and finished i have made during those three years. I hope you can all understand.
Thanks for reading !
Edge-Preserving FilterIntroduction
Edge-preserving smoothing is often used in image processing in order to preserve edge information while filtering the remaining signal. I introduce two concepts in this indicator, edge preservation and an adaptive cumulative average allowing for fast edge-signal transition with period increase over time. This filter have nothing to do with classic filters for image processing, those filters use kernels convolution and are most of the time in a spatial domain.
Edge Detection Method
We want to minimize smoothing when an edge is detected, so our first goal is to detect an edge. An edge will be considered as being a peak or a valley, if you recall there is one of my indicator who aim to detect peaks and valley (reference at the bottom of the post) , since this estimation return binary outputs we will use it to tell our filter when to stop filtering.
Filtering Increase By Using Multi Steps Cumulative Average
The edge detection is a binary output, using a exponential smoothing could be possible and certainly more efficient but i wanted instead to try using a cumulative average approach because it smooth more and is a bit more original to use an adaptive architecture using something else than exponential averaging. A cumulative average is defined as the sum of the price and the previous value of the cumulative average and then this result is divided by n with n = number of data points. You could say that a cumulative average is a moving average with a linear increasing period.
So lets call CMA our cumulative average and n our divisor. When an edge is detected CMA = close price and n = 1 , else n is equal to previous n+1 and the CMA act as a normal cumulative average by summing its previous values with the price and dividing the sum by n until a new edge is detected, so there is a "no filtering state" and a "filtering state" with linear period increase transition, this is why its multi-steps.
The Filter
The filter have two parameters, a length parameter and a smooth parameter, length refer to the edge detection sensitivity, small values will detect short terms edges while higher values will detect more long terms edges. Smooth is directly related to the edge detection method, high values of smooth can avoid the detection of some edges.
smooth = 200
smooth = 50
smooth = 3
Conclusion
Preserving the price edges can be useful when it come to allow for reactivity during important price points, such filter can help with moving average crossover methods or can be used as a source for other indicators making those directly dependent of the edge detection.
Rsi with a period of 200 and our filter as source, will cross triggers line when an edge is detected
Feel free to share suggestions ! Thanks for reading !
References
Peak/Valley estimator used for the detection of edges in price.
Dominant Cycle Tuned RsiIntroduction
Adaptive technical indicators are importants in a non stationary market, the ability to adapt to a situation can boost the efficiency of your strategy. A lot of methods have been proposed to make technical indicators "smarters" , from the use of variable smoothing constant for exponential smoothing to artificial intelligence.
The dominant cycle tuned rsi depend on the dominant cycle period of the market, such method allow the rsi to return accurate peaks and valleys levels. This indicator is an estimation of the cycle finder tuned rsi proposed by Lars von Thienen published in Decoding the Hidden Market Rhythm/Fine-tuning technical indicators using the dominant market vibration/2010 using the cycle measurement method described by John F.Ehlers in Cybernetic Analysis for Stocks and Futures .
The following section is for information purpose only, it can be technical so you can skip directly to the The Indicator section.
Frequency Estimation and Maximum Entropy Spectral Analysis
“Looks like rain,” said Tom precipitously.
Tom would have been a great weather forecaster, but market patterns are more complex than weather ones. The ability to measure dominant cycles in a complex signal is hard, also a method able to estimate it really fast add even more challenge to the task. First lets talk about the term dominant cycle , signals can be decomposed in a sum of various sine waves of different frequencies and amplitudes, the dominant cycle is considered to be the frequency of the sine wave with the highest amplitude. In general the highest frequencies are those who form the trend (often called fundamentals) , so detrending is used to eliminate those frequencies in order to keep only mid/mid - highs ones.
A lot of methods have been introduced but not that many target market price, Lars von Thienen proposed a method relying on the following processing chain :
Lars von Thienen Method = Input -> Filtering and Detrending -> Discrete Fourier Transform of the result -> Selection using Bartels statistical test -> Output
Thienen said that his method is better than the one proposed by Elhers. The method from Elhers called MESA was originally developed to interpret seismographic information. This method in short involve the estimation of the phase using low amount of information which divided by 360 return the frequency. At first sight there are no relations with the Maximum entropy spectral estimation proposed by Burg J.P. (1967). Maximum Entropy Spectral Analysis. Proceedings of 37th Meeting, Society of Exploration Geophysics, Oklahoma City.
You may also notice that these methods are plotted in the time domain where more classic method such as : power spectrum, spectrogram or FFT are not. The method from Elhers is the one used to tune our rsi.
The Indicator
Our indicator use the dominant cycle frequency to calculate the period of the rsi thus producing an adaptive rsi . When our adaptive rsi cross under 70, price might start a downtrend, else when our adaptive rsi crossover 30, price might start an uptrend. The alpha parameter is a parameter set to be always lower than 1 and greater than 0. Lower values of alpha minimize the number of detected peaks/valleys while higher ones increase the number of those. 0.07 for alpha seems like a great parameter but it can sometimes need to be changed.
The adaptive indicator can also detect small top/bottoms of small periods
Of course the indicator is subject to failures
At the end it is totally dependent of the dominant cycle estimation, which is still a rough method subject to uncertainty.
Conclusion
Tuning your indicator is a great way to make it adapt to the market, but its also a complex way to do so and i'm not that convinced about the complexity/result ratio. The version using chart background will be published separately.
Feel free to tune your indicators with the estimator from elhers and see if it provide a great enhancement :)
Thanks for reading !
References
for the calculation of the dominant cycle estimator originally from www.davenewberg.com
Decoding the Hidden Market Rhythm (2010) Lars von Thienen
Ehlers , J. F. 2004 . Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading . Wiley
Peak/Valley EstimationEarly Signal
Estimating the Peaks and Valleys or extrema of the price is one of the best way to catch up early movements of a trend. Of course there is no perfect way to do so, if we want a perfect estimation of peaks and valleys then we must use a non causal indicator ( repainting ), if we want a causal indicator ( non repainting ) then we will need to tradeoff accuracy for allowing our indicator to be causal, its always a matter of tradeoff at the end when trying to have a desired effect (smoothness/lag for filters) .Our indicator is causal, it wont repaint but the accuracy will depend on various parameters.
In order to detect peaks and valleys in a certain period we must detrend the price, this mean subtracting it by its moving average. We take the absolute value of this result and we filter it with a local linear regression ( LSMA ) in order to eliminate noise, then we make the assumption that the highest of our result is or a peak or a valley of the price, so we divide our detrended calculation by its highest and we get a scaled result. Lets call this final result the peak index .
Parameters
There are 3 parameters in this indicator, a length parameter who control the period of the highest mentioned above, a smooth parameter who smooth our detrended price, and finally a mod parameter who select the trigger method for estimating a peak/valley.
Here are how mods work :
mod = 1 : when the peak index is equal to 1 and the previous value is not equal to 1 then we have a peak/valley. Its the fastest of the 3 mods but the one with less accuracy.
mod = 2 : when the peak index crossunder 0.8 then we have a peak/valley. This method is more robust but slower than the previous one.
mod = 3 : when the peak index is not equal to 1 and the previous peak index is equal to 1 then we have a peak/valley. Its an average of the precedents mod in term of speed and accuracy.
Lower length values tend to estimate the peak/valley of short periods of time but can also lead to the reverse desired effect ( breakouts signals ). Smoothing is important since it reduce the number of noise in our calculation and therefore help to get better results, its a parameter that should be high, sometimes higher than length if this one is low.
Estimation of medium terms peaks/valleys with length and smooth parameter both period 100 and mod = 3
Estimation peaks in palladium way to early, an example of bad accuracy. Such behaviour can be fixed with a change in the parameters.
Complementarity With Classics Indicators
As i said before its always a matter of tradeoff, here we get faster signals but we loose in accuracy, at the contrary classics indicators often have slower signals but with more accuracy. Mixing both of them can provide additional robustness in a strategy, lets take back our palladium case, using mod 3 could have been better, but its still not optimal, so lets use a classic indicator such as a moving average of period 200, our conditions are :
Long when our peak/valley estimator estimated a valley and the price crossover our moving average.
Short when our peak/valley estimator estimated a peak and the price crossunder our moving average.
here is an exemple of such signal :
We balanced our tradeoff in a way to fix both methods problems, of course its still not a perfect fix but it provide more robustness.
Other Uses
The indicator can also be used only as an order closing indicator, its safer than taking a position based on its estimation. The indicator can also give a use to the peak index used in the calculation as a trend strength indicator.
Values below 0.5 indicate a ranging market while values over 0.5 indicate a trending market.Since its a scaled measure you can use it a smoothing constant in a adaptive filter.
Conclusions
I showed how to estimate peaks and valleys and how to use such information in order to make better decision when using classical indicators, of course at the end nothing is perfect and considering the non stationarity of the markets the parameters efficiency could change drastically.
For any questions/demands feel free to pm me, i would be happy to help you