VIX Fix Double Pleasure


The idea of an oscillator is quite simple. It is based on the popular VIX Fix oscillator, the purpose of which is to find local bottoms within the scope of trend movement. But in addition to the classic VIX fix, I built an oscillator opposite to it, which serves as a potential signal of the end of local growth.

  • VIX Fix classic (red lines)
  • VIX Fix reversed (green lines)
  • Buy/sell signals (colored dots)

VIXFix_length - defval: 22. Classic length for VIX fix
VIXFix_arraySize - defval: 22. The number of periods among which to look for lows and highs. If there are too many signals, reduce this value.
plotMarks - defval: true. Plot high/low marks

How it is calculated
VIX fix classic: (highest(close, VIXFix_length) - low) / highest(close, VIXFix_length) * -100
VIX fix reversed: (lowest(close, VIXFix_length) - high) / lowest(close, VIXFix_length) * -100

🟢 Buy signal if current "VIX fix classic" or "VIX Fix reversed" value is lowest from the last VIXFix_arraySize periods.
🔴 Sell signal if current "VIX fix classic" or "VIX Fix reversed" value is highest from the last VIXFix_arraySize periods.

General recommendations
I advise you not to use this oscillator for a short positions. Long only. It is recommended to set a long position by pyramiding.

Release Notes: Simplified extremum search code. Fixed bug with displaying inverse VIX Fix
Release Notes: Big update! Added new option: ADX filter
With ADX filter, you can minimize the number of false VIX FIX DP signals when the trend is generally weak. It is not recommended to open positions when the trend strength (ADX) is less than 20.
You can activate the filter in the script settings.
Skript med en öppen källkod

I sann TradingView-anda har författaren till detta skript publicerat det som öppen källkod, så att handlare kan förstå och verifiera det. Skål för författaren! Du kan använda den gratis men återanvändning av den här koden i en publikation regleras av våra Ordningsregler. Du kan göra den till favorit för att använda den i ett diagram.

Vill du använda det här skriptet i ett diagram?


Interesting idea.
Question: Why are you using arrays to get the peaks? Why not just use highest/lowest on the VixFix series?
yarontt yarontt
Looking a bit more, and testing things out I actually think you have a bug. The array.reverse you perform, actually reverses the original array so you add each value to alternating ends of the array.
See how plot(array.min(VIXdown_sliced)) wobbles and is not a straight line as expected.
samgozman yarontt
@yarontt, Hey! Thanks! I think I understand you. Removed the array, minimums and maximums are now found using built-in functions.