Indicator

RedK DIY ZLMA: Customizable Zero-Lag MA (Educational / Utility)This script is more of an educational / utility piece rather than a fully-fledged indicator - It provides an easy way to customize and produce a zero-lag Moving average that can then be used in various scenarios
What is DIY_ZLMA?
------------------------
The DIY ZLMA is for fans and enthusiasts of researching Moving Averages (like me) - the script enables the user to play around with one of the common approaches used to reduce lag in moving averages - which was explained in this old post below
Suggested uses of the DIY_ZLMA
---------------------------------------
* The Zero-lag approach here applies 3 moving average passes to a source data series - I'll refer to these 3 passes as Base MA Pass , De-lagging Pass, and Smoothing Pass - these "passes" can be customized from the indicator settings in terms of MA Length and type. The first pass allows the choice of a "source", and the second pass allows additional fine tuning by playing around with the magnification factor. The 3rd pass (smoothing) is optional and can be skipped altogether when needed. (as noted in the script, HMA and TEMA, which are very common low-lag MA's use slightly different approach in the calculation than the one used here .. so we can't get an equivalent of either of these MA's with the customization of DIY_ZLMA parameters)
* After the user experiments with the various settings for the 3 passes, and finds a "preferred combination", the script not only plots the resulting My_ZLMA - it also produces the "1-line Pine script formula" that the user can then use in any other script, maybe to smoothen some data series, or to combine with other types of moving averages to create multi-MA cross-over trading signals... and so on.
* The DIY_ZLMA can also be added to another indicator as a signal line using the Indicator-on-Indicator feature of PulseWire (review this post for step-by-step -->
)
* the script also showcases couple of recent (and very neat) Pine features: the use of User-defined Types (UDT) and User-defined Methods - which are awesome and a lot of fun to work with :)
Since this is more of a utility piece, I added as many comments as possible to the script to explain the way it works - so it's more valuable if someone finds it by searching the "Add Indicator" feature in PulseWire charts
Please feel free to play around with this new toy :) and share comments and feedback below if you find this useful. I truly hope you do. Indicator

DIY Entry SignalsThis indicator allows you to set up entry signals based on your own conditions.
Note that this indicator DOES NOT give any information about exits. It is not intended to be a signal indicator that someone could blindly follow. It is intended for use in backtesting to help spot entry points more easily.
Also note that this indicator DOES NOT plot anything other than moving averages and entry signals. The other indicators referenced will need to be added on their own to be visible on the chart.
Credit to The_Caretaker for both BBWP and PMARP indicators. For more information on how those work, see their descriptions. Big thanks to him for making them open source, as well.
Instructions for use:
Signal Types:
This section allows you to choose whether you want long, short, or both types of signals.
Moving Averages:
Configure up to 4 moving averages to be plotted on the chart. Options include show/hide, color, length, and type.
RSI:
Choose the period and source used for the Relative Strength Index indicator, a very commonly used momentum oscillator.
Stochastic:
Choose the K, D, smoothing, and source for the Stochastic indicator, a very commonly used momentum oscillator.
BBWP:
Choose settings for the Bollinger Band Width Percentile indicator. This measures volatility based on Bollinger Bands and was created by The_Caretaker. The indicator is free and open source, so definitely check it out.
This section allows the user to choose the price source, basis type ( SMA , EMA , or VWMA ), length, and lookback. It also includes a threshold setting to determine the BBWP requirement used for entry signals.
PMARP:
Choose settings for the Price Moving Average Ratio & Percentile. This calculates the ratio between a source price and moving average over a lookback period. This was also created by The_Caretaker, and it is a free and open source indicator.
This section allows the user to choose price source, lookback, PMAR length, and moving average type.
DMI/ADX:
Choose settings for the Directional Movement Index and the Average Directional Index. This shows which direction the price is moving by comparing prior highs and lows and calculating a positive directional movement and a negative directional movement. The average of the positive and negative movements is used to plot the ADX line.
Long/Short Conditions:
Choose which indicators will be used to determine entry signals, as well as some options for each indicator that is included.
Note: A signal will only be plotted if ALL selected conditions are met.
Options in these sections include:
Faster moving averages above or below slower moving averages (implying a trend direction)
RSI thresholds (separate for long and short)
Stochastic thresholds (separate for long and short)
Whether K should be above or below D (implying trend direction of the Stochastic indicator)
Whether a signal should only be generated on the bar when the Stochastic first crosses the threshold.
BBWP on/off (The threshold for this is determined in the BBWP section of the settings)
PMARP thresholds (separate for long and short) Indicator

Indicator

Indicator
