John F. introuced Predictive Average in his "Rocket Science for Traders" chapter 20 on 2001.
The concept of taking a difference of lagging line from the original function to produce a leading function suggests extending the concept to moving averages. There is no direct theory for this, but it seems to work pretty well. If taking a 7-bar of prices, that average lags the prices by 2 bars. If taking a 7-bar of the first average, this second average is delayed another 2 bars. If taking the difference between the two averages and add that difference to the first average, the result should be a smoothed line of the original price function with no lag. Sure, Dr . tried to use more lag for the second moving average, which
should produce a better predictive curve. However, remember the lesson of Chapter 3 of the book. An analysis curve cannot precede an event. You cannot predict an event before it occurs. If then taking a 4-bar of the smoothed line to create a 1-bar lag, this lagging line becomes a signal when the lines cross. This is as close to an ideal indicator as we can get.
Predict ---> moving average fast line
Trigger ---> moving average slow line
Pros and Cons
100% John F. definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
The 17th script for Blackcat1402 John F. Week publication.
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
BTC / USDT(OMNI): 3DsouvyXoT4T2u8qdWvs9TXVD4hUozAKTc
ETH / ERC20 Coin: 0xfE2240fb97F11d81A324C6d3881de43E09EadEF9
Making a strategy with the indicator, the actual entry is far later than the repainted entry given by the indicator.
The buy and sell labels from the indicator also show when the lines cross. So it would only make sense for the indicator buy and sell labels and the strategy buy and sell labels to be in the same position on the chart, right? Because they both show the same thing.
But as you can see in the picture in my above comment, the indicator labels are two candles behind the strategy labels. They both get added to the chart at the same time, but the indicator labels get added two bars back. So when you go back and look at the chart, it makes it look like you would have gotten the signal much earlier than you actually do. It's simply repainting. No problems with the indicator, just the label.
on line 34 and line 36 remove the -1 from bar_index-1 for an adequate fix. Or bar_index+1 to match the strategy label position.
TradingView uses a broker emulator when running strategies. Unlike in real trading, the emulator only fills orders at chart prices, which is why an order can only be filled on the next tick in forwardtesting and on the next bar or later in backtesting, i.e., after the strategy calculates.
The following logic is used to emulate order fills:
If the bar’s high is closer to bar’s open than the bar’s low, the broker emulator assumes that intrabar price was moving this way: open → high → low → close.
If the bar’s low is closer to bar’s open than the bar’s high, the broker emulator assumes that intrabar price was moving this way: open → low → high → close.
The broker emulator assumes that there are no gaps inside bars, meaning the full range of intrabar prices is available for order execution.
Even if the Recalculate On Every Tick option is enabled in strategy properties (or the script’s strategy call uses calc_on_every_tick=true), the broker emulator’s behavior still uses the above logic.
For more detailed info, pls read TV strategy manual carefully,