Volatility Compression Failure

This street-smart stuff, where you identify overbought and oversold (supply and demand) and make up rules that you cannot sell in the “discount” area, is going to leave you with diddly squat for profits.

Being oversold means nothing. Knowing that the selling has embedded yields you the safest sell, where the market is virtually unable to move against your position, and can provide continuous returns.

Lots of surplus lines in the following code, I have not weeded it out fully just for this occasion, so forgive me for that.

#property copyright "Volatility Compression Failure by Macdulio, (c) 2026."
#property link "http://www.forexfore.blog"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Red
extern int lookback = 1000;
double RSI2[], volup[], voldn[];
int dir[], u30[], d30[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//--- upper band
SetIndexStyle(0,DRAW_LINE,0,3,indicator_color1);
SetIndexBuffer(0,volup);
SetIndexLabel(0,"Bands Upper");
//--- lower band
SetIndexStyle(1,DRAW_LINE,0,3,indicator_color2);
SetIndexBuffer(1,voldn);
SetIndexLabel(1,"Bands Lower");
return(0);
}
int start()
{
ArrayResize(u30, Bars);
ArrayInitialize(u30, 0);
ArrayResize(d30, Bars);
ArrayInitialize(d30, 0);
ArrayResize(dir, Bars);
ArrayInitialize(dir,0);
ArrayResize(volup, Bars);
ArrayInitialize(volup, EMPTY_VALUE);
ArrayResize(voldn, Bars);
ArrayInitialize(voldn, EMPTY_VALUE);
int i;
string symbol = Symbol();
deletetxt1("Countess");
deletetxt1("Singende");
deletetxt1("KAROLY");
deletetxt1("BOG");
int counter, counterd;
for (i=lookback-1; i>=0; i--)
{
dir[i]=dir[i+1];
if ((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i+1))-Close[i+1])>300*Point
&& !((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i+2))-Close[i+2])>300*Point)
){
ObjectCreate("BOG"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],35);
ObjectSetText("BOG"+IntegerToString(i),"30!", 16, "Impact", clrBlack);
d30[i]=1; if (dir[i]>0) dir[i]=0;
}
if ((Close[i+1]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i+1)))>300*Point
&& !((Close[i+2]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i+2)))>300*Point)
){
ObjectCreate("BOG"+IntegerToString(i),OBJ_TEXT, 1, Time[i+1],75);
ObjectSetText("BOG"+IntegerToString(i),"30!", 16, "Impact", clrBlue);
u30[i]=1; if (dir[i]<0) dir[i]=0;
}
if (High[i]-Low[i]>145*Point){
if (u30[i+10]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+10]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
if (u30[i+11]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+11]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
if (u30[i+12]>0 && Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=1;
if (d30[i+12]>0 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i+1]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1))
dir[i]=-1;
}
// if ((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i+1))-Close[i+1])>200*Point && dir[i]>0) dir[i]=0;
// if ((Close[i+1]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i+1)))>200*Point && dir[i]<0) dir[i]=0;
voldn[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i))+200*Point;
volup[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-200*Point;
if (Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<voldn[i])
{
ObjectCreate("KAROLYI"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+1], voldn[i], Time[i], Low[i]);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_COLOR,clrSalmon);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_WIDTH,4);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_BACK,1);
}
if (Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]>volup[i])
{
ObjectCreate("KAROLYI"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+1], volup[i], Time[i], High[i]);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_WIDTH,4);
ObjectSetInteger(0,"KAROLYI"+IntegerToString(i),OBJPROP_BACK,1);
}
}
for (i=600; i>=0; i--)
{
ObjectCreate("Singende"+DoubleToStr(i), OBJ_TEXT, 1, Time[i], 50);
if (dir[i]>0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrMediumSpringGreen);
if (dir[i]<0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrCrimson);
if (dir[i]==0) ObjectSetText("Singende"+DoubleToStr(i), CharToStr(110), 12, "Wingdings", clrYellow);
ObjectSetInteger(0,"Singende"+DoubleToStr(i),OBJPROP_BACK,1);
}
return(0);
}
void deletetxt1(string text){
for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
string on = ObjectName(iObj);
if(StringFind(on, text) == 0) ObjectDelete(on);
} }

The current market type is “no counter-directional volatility market”, in short, “no volatility”, which here means absolutely no buying that would achieve a 30+ pip close on the 30-minute chart for the latest low within 3 hours. If you are looking at the last row, you would see that there hasn’t been a print greater than 30 for 169 bars (85 hours).


Adolphamine

A quick lesson about relative strength, short-term volatility, and statistics in trading.

The first thing is the daily RSI2. Statistically, it does not stay in this block for more than 5 days, and we already had 4.

Examples from the past:

The magenta prints are in the (RSI2<5.3 and RSI2>2) or (RSI2>96 and RSI2<98) zone. The numbers are there to keep track of the quantity.

This basically means that there may be one more daily lower low (if) on Monday before a lift.

It becomes even less likely to make a new low if I bring up my latest volatility plot.

I have not talked about the dots until now (black arrows).

I did not know how they would come in handy immediately, but I have figured it out since.

We are talking 6-sample volatility measured from the current close to the lowest low and the highest high (30-minute).

 volup[i]=NormalizeDouble(MathAbs((Close[i]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i)))*10000),0); 
 voldn[i]=NormalizeDouble(MathAbs((iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-Close[i])*10000),0);

20 pips does not sound like much for a 6-candle “progression”. But it becomes extra important when the market is off the rails (outside the 120 / 240 sample BB), and you get back-to-back two candles with both sides scoring. I’ll show you what I mean.

The blue rectangle circles a 2×2 rapid fire.

Once that peak was made, it remained untouchable. A 4A print was needed for the downtrend to kick in.

Can you spot the mirror image?

The 14+! increment, the MFI Swipe (=They Bought Into It), the New Scrape Level made. It’s just the number of boxes that was less. The stretch achieved a 6x fluctuation maximum versus 8x at the top. The number of boxes did not mean anything beyond the first print; the volatility remained elevated in both directions for longer in the first example.

Now, the 4A part.

We have had a 4A print earlier, but it was too high, above the S30.

We have been waiting on the BB30 to expand and move lower to accommodate a near miss of the current low and kick an uptrend in motion.

I had another lesson in mind as well about spotting what they are selling (rip) or any strength (RSI2>85) when the market is off the rails, but I’d rather not veer your attention away from what is a more important subject.


Oh, the title? A song reference. Adolphamine, at your own risk.

Fountain Of Ruth

First, a mental exercise to put things in their place in your head.

The first question that you would have to answer is whether trading is a technical thing.

Look at these 3 rallies marked up with thick green verticals.

The commonalities? A kick-off up day in a new/previous pro volume block with a 70+ pips range from a new 3-day low made on the current or the previous day, the daily stochastic (18-sample below 4.5 or between 9.5 and 21.5).

iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i-1))<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i-1))
&& iLow(symbol,0,i)==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i-1))
&& (st18[i]<4.5 || (st18[i]>9.5 && st18[i]<21.5) || (st18[i+1]>9.5 && st18[i+1]<18.5))
&& Low[i]-Low[i+1]<430*Point
&& (Low[i]-Low[i+2]<430*Point || Low[i]-Low[i+2]>1000*Point)
&& (High[i]>High[i+1]-80*Point || (Open[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i)+50*Point && Close[i]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i) ) )
&& Open[i]<Close[i]
&& High[i]<iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i)
&& High[i]<iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-290*Point
&& (MathAbs(iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_MAIN,i)-iMA(symbol,0,44,0,MODE_EMA, PRICE_MEDIAN,i))>380*Point || High[i]>High[i+1] )
&& Low[i+1]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+1)-700*Point
&& Low[i+2]>iBands(symbol,0,20,2,0,PRICE_CLOSE,MODE_LOWER,i+2)-700*Point

Being oversold can be constructive or destructive for a counter move, depending on the selling depth. An extreme low, say below 4.5, has a maximum of 4% chance of making a lower low on the following day.

The second thing you need to get right has to do with statistical relevance.

After the signal, when was the peak made?

Answers: Day5, Day5, Day 6

What distance was achieved from the prompt low?

Answers: 175, 170, and 500 pips. How much is 3×170?

Which moving average could you have used as a skew to determine the potential of the next rally?

Answer: E44. I change the color based on 3 consecutive closes on one side. A freshly flipped color (3rd day has 2-3 more days of selling pressure left before total reversal. A senior red 10+ is ripe for a relief rally, but may find resistance at the statistical 170 pips, particularly in combination with hitting a virgin pro volume block. The ideal entry is the prolonged E-44 green section, followed by a recent flip to red (& making little headway).


The rest is my latest project, identifying the origin of a move. It is pseudo-science, like everything else around trading, so take it with a pinch of a grain.

Entries and exits are one and the same thing: the exchange of holdings.

It’s not “liquidity” you should be writing on your charts, but “fountain” as in La Fountaine of the move.

Of course, you need to clarify in your head what qualifies first.

A Cadet tail is a Bow-Bow Back (W. Smith) with a revisit of the extreme with a miss of 4-8 pips.


///2-candle 20 close back up (Cadet tail)
if (i>0 && (Close[i+2]-Low[i+2])<130*Point
&& Low[i+2]<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,48,i+3))
&& !(Low[i+2]<Low[i+3] && Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)-50*Point && Close[i+1]>Low[i+2]+165*Point) 
&& !(Low[i+3]<Low[i+4] && Low[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3)-50*Point && Close[i+2]>Low[i+3]+165*Point) 
&& Low[i+1]>Low[i+2] && Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)-20*Point 
&& Close[i]>Low[i+2]+200*Point ){ 
ObjectCreate("Doxx"+IntegerToString(i),OBJ_TREND,0, Time[i+2], Low[i+2], Time[i], High[i]);
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_COLOR,clrCadetBlue); 
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      if (stoch[i+1]<20){
   ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i]-90*Point);
         ObjectSetText("DOGR"+IntegerToString(i),"Bow Back Continuation", 26, "Impact", clrSlateBlue);  
         }
         else {
          ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i]-90*Point);
         ObjectSetText("DOGR"+IntegerToString(i),"Deep Pull Back First", 26, "Impact", clrSlateBlue);  }
         memento[i]=1;
}
   




///2-candle 12 close back down (cadet)
if ((High[i+1]-Close[i+1])<130*Point
&& stoch[i+1]>80
&& Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) &&
High[i+1]>High[i+2] && High[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)+130*Point 
&& Close[i]<High[i+1]-110*Point){ 
ObjectCreate("Doxx"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i], Low[i]);
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_COLOR,clrCadetBlue); 
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Doxx"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
        ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i]-90*Point);
         ObjectSetText("DOGR"+IntegerToString(i),"Bow Back Continuation", 26, "Impact", clrSlateBlue); 
      if (stoch[i+1]>80) memento[i]=-1;
      else {ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i]-90*Point);
         ObjectSetText("DOGR"+IntegerToString(i),"Deep Pulback First", 26, "Impact", clrSlateBlue); 
         memento[i]=-1;
         
      
      }
}    

A cadet tail is a definite, outside source of a move.

A blue tail by itself does not change the holding direction; it is only proof of the presence of counter-directional volatility.

If this were to coincide with a volatility U-turn (the last 30-minute candle made a 14+ pip advancement before the close back down with 20+ pips or a money flow extreme/swipe, you can annotate Spring/Fountain of Ruth.

The 4A is the condition that would occur before getting to the 30BB, and that is also an originator of the next wave/wave structure.

I plot a close line next to the A prints; these are the inside (secondary) sources.

Not sure if you have noticed, but the tails take up 2-3 candles, while the 4, the A, and the 4A are individual reversal candles (30 min still).

The one thing I am uncertain of at this point is whether an A print has the same importance as a 4A. The difference is the volatility involved; a 4A would be at least 13 pips. You see, I have to work with absolute values for the filters, but sometimes the available volatility can skew things.

//4-hour high vol surge & reversal
if (High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+1)) && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
&& High[i]<High[i+1] && High[i+1]-Low[i+1]>80*Point
&& Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
&& (Close[i+1]<Open[i+1] || (Close[i+1]<High[i+1]-(High[i+1]-Low[i+1])/3*2) )){
ObjectCreate("Fox"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i+1], Low[i+1]);
if (High[i+1]-Low[i+1]>130*Point) {ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrOrangeRed);
if (High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)) {ObjectCreate("DOGZ"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i+1]+90*Point);
ObjectSetText("DOGZ"+IntegerToString(i),"A", 36, "Impact", clrRed);
}
if (iHigh(symbol,0,i+1)>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+2))) {ObjectCreate("DOGZ"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i+1]+190*Point);
ObjectSetText("DOGZ"+IntegerToString(i),"4 Tripper", 36, "Impact", clrRed);
if (i>0 && Close[i-1]<Close[i]) {
ObjectCreate("DOGB"+IntegerToString(i),OBJ_TEXT, 0, Time[i+9],High[i+1]+90*Point);
ObjectSetText("DOGB"+IntegerToString(i),"Strong", 36, "Impact", clrCrimson);
}
if (i>0 && Close[i-1]>Close[i]) {
ObjectCreate("DOGB"+IntegerToString(i),OBJ_TEXT, 0, Time[i+9],High[i+1]+90*Point);
ObjectSetText("DOGB"+IntegerToString(i),"Weak", 36, "Impact", clrCrimson);
}
}
if (iHigh(symbol,0,i+1)>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+2))
&& High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)) {ObjectCreate("DOGZ"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i+1]+90*Point);
ObjectSetText("DOGZ"+IntegerToString(i),"4A", 36, "Impact", clrRed);
FourAU[i]=High[i+1];
}
}
else {ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrGold);
if (stoch[i+1]>80 && High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
&& (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1))>460*Point
){
ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrOrange);
ObjectCreate("DOGZ"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i+1]+90*Point);
ObjectSetText("DOGZ"+IntegerToString(i),"A(2)", 36, "Impact", clrRed);
FourAU[i]=High[i+1];
memento[i]=-1;
}
}
ObjectSet("Fox"+IntegerToString(i),OBJPROP_WIDTH,13);
ObjectSet("Fox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
ObjectSet("Fox"+IntegerToString(i),OBJPROP_BACK,1);
}

Anyway, for now, I am including the pure A print in the adjustment of the close line.

The trend momentarily is still up, and pressure is being applied to the last inside fountain. At the same time, every try has been a miss. A volatile reversal candle falling short of the 30BB is missing for a close line to be brought lower. A tail is missing for a new external fountain, a Cadet tail, or a Blue / Gray with a change in power dynamics. Conclusion? A fake out on the upside.

Foray

The indians invented Zero. Russell Peters has a piece that I can’t seem to find about an idian drawing a circle in the sand and asking what’s inside. Nothing! He becomes all emotional and says, “I’m gonna name it Gero!”

(Check from 7:58)

I renamed Zero to 4A. Before further explanation, I have 2 new conditions for you.

(The orange filed shows a starting move with a Blue tail (20-pip close back). I would expect to see another one or two of those next.)

Lemon Tail

The lemon tails are inside tails, but do not make a new 24-hour low.

 if (Low[i+1]>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,48,i+2))
          && Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)-100*Point
      ) {

This is a chess game, and you want to see the next two moves. This gives you at least 3. A 36-40 pip move back up, and multiple drops from that height. There would be 3 different fractals in the same vicinity before the move down would be ready.

The Swipe Function

The swipe is a medium volatility reversal with some extra umph.

The extra is the takeout of the previous low whilst printing a higher RSI2 read. The result is a closer approach of the last “4” print before continuing with the direction.

 if (Low[i+1]<Low[i+2] && RSI2[i+1]>RSI2[i+2]) {
        ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+3],High[i]-90*Point);
         ObjectSetText("DOGR"+IntegerToString(i),"SWIPE", 26, "Impact", clrOrangeRed); 
      }

Now the meat. The “4” is just a code. It represents strength. The “A” stands for aggression (shortfall from the 30 BB). When a pure “4” is faced with a counter “A”, the A is on the winning side. A 4A is the OG Zero.

Let’s try something. We’re gonna plot the 4A levels to show that they remain intact during a trend.

The ThistleToe line is your Zero closing line.

With the current zero print, there have been so far zero violations of the trend that started from 1.2082.

The Zero print should yield you two blue tails on the downside. If the Thistle line gets tripped, I would look to balance out the holdings on dips.

It’s either this or you can buy a course on how to trade everything from an Australian who likes to clap himself in his videos like there was a never-ending Amway convention in his head.


Spam Bondi

Spam Bondi is over the reduction
Here's nothing to see
She's a joke of an attorney in general
[Chorus]
Was it worth it?
When Darth Vader is gone
You'll be on the run
Along with the bug-eyed FBI
"I only have files for you."
A life spent with lies
Coast-guarding the Death Star
Here's nothing
Grab it tight
The land is always greener
Once you whack your neighbor
Wardening for the Epstein Class
Destroyers
(guantana Los reductiones)
Survivors regret your presence
Is the Nasdaq smashing new highs
Or the Dollar smashing new lows?
It's all a point of view
The problem was the denominator
Who nominated you
I'd like to pull out your breast
And offer you out to the highest bidder
A small sacrifice to make
But it may cripple you for the rest of your life
You rapist mofo
Hans Dietrich Arroganser
When you are finished with throwing
Innocent victims under the bus
Justice will be served with
Lethally cold accuracy
There'd be nowhere left to run
Thy will be done
The prolonged version would be
An extended stay
With a shared room comes
Water & board
And plenty of long red neckties
Just in case you change your mind
On your ties
The easy way out would have been
Raping yourself
There's no doubt
[Chorus]
Was it worth it?
When Darth Vader is gone
You'll be on the run
Along with the bug-eyed FBI
"I only have files for you."

The W

Dumbest title for a movie ever, virtually impossible to search for.

Fail me once & pounce

in the words of the biggest traitor trader:

Fail me once, fail me… I can’t get failed again.

So I’ve been saying that to trade, you need to be able to count to two. I know, some may think that a Texas Instruments pocket calculator is a must, because it can do square roots, but some say that they are trying to make things look more complicated than they are. Don’t misunderestimate the power of 2.

The blue lines are auto plots. 20+ pips reversals. The gray tail is 17+, but less than 20.

///20 close back up
if (Low[i+1]<Low[i+2] && Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)-50*Point
&& Close[i]>Low[i+1]+170*Point){
ObjectCreate("Doxx"+IntegerToString(i),OBJ_TREND,0, Time[i+1], Low[i+1], Time[i], Close[i]);
if (Close[i]<Low[i+1]+200*Point)
{ObjectSet("Doxx"+IntegerToString(i),OBJPROP_COLOR,clrGray);
ObjectDelete("Doxx"+IntegerToString(i+1));
}
else ObjectSet("Doxx"+IntegerToString(i),OBJPROP_COLOR,clrBlue);
ObjectSet("Doxx"+IntegerToString(i),OBJPROP_WIDTH,13);
ObjectSet("Doxx"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}
///20 close back down
if (
Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-20*Point &&
High[i+1]>High[i+2] && High[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)+150*Point && Close[i]<High[i+1]-200*Point){
ObjectCreate("Doxx"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i], Close[i]);
ObjectSet("Doxx"+IntegerToString(i),OBJPROP_COLOR,clrBlue);
ObjectSet("Doxx"+IntegerToString(i),OBJPROP_WIDTH,13);
ObjectSet("Doxx"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}

Now, let’s introduce sudden reversals with good volatility. 30-minute chart still.

The orange markers are 13+ pip flips. They go untested and stack during a trending phase. Take note of falling short of the current volatility potential represented by the 30-sample BB. They yield two legs each.

The last one yielded 17-pip close backs, as volatility was no longer expanding.

//4-hour high vol surge & reversal
if (High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+1)) && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
&& High[i]<High[i+1] && High[i+1]-Low[i+1]>80*Point && Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
&& (Close[i+1]<Open[i+1] || (Close[i+1]<High[i+1]-(High[i+1]-Low[i+1])/3*2) )){
ObjectCreate("Fox"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i+1], Low[i+1]);
if (High[i+1]-Low[i+1]>130*Point) ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrOrangeRed);
else ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrGold);
ObjectSet("Fox"+IntegerToString(i),OBJPROP_WIDTH,13);
ObjectSet("Fox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
ObjectSet("Fox"+IntegerToString(i),OBJPROP_BACK,1);
}

There were two gray tails made, plus two scrape levels. That’s a tradeable low. The last orange tails were no Zeros, the last one went outside the 30BB, the one before that got an immediate choke (green counter).


//4-hour high vol surge & reversal
if (High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i+1)) && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
&& High[i]<High[i+1] && High[i+1]-Low[i+1]>80*Point && Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
&& (Close[i+1]<Open[i+1] || (Close[i+1]<High[i+1]-(High[i+1]-Low[i+1])/3*2)  )){
 ObjectCreate("Fox"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i+1], Low[i+1]);
      if (High[i+1]-Low[i+1]>130*Point) ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrOrangeRed); 
      else ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrGold); 
      ObjectSet("Fox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Fox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
       ObjectSet("Fox"+IntegerToString(i),OBJPROP_BACK,1);
}      


//4-hour low vol surge & reversal
if (Low[i+1]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i+1)) && Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
&& Low[i]>Low[i+1] && High[i+1]-Low[i+1]>80*Point && High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
&& (Close[i+1]>Open[i+1] || (Close[i+1]>Low[i+1]+(High[i+1]-Low[i+1])/3*2)  )){
 ObjectCreate("Fox"+IntegerToString(i),OBJ_TREND,0, Time[i+1], High[i+1], Time[i+1], Low[i+1]);
      if (High[i+1]-Low[i+1]>130*Point) {ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse); 
          ObjectCreate("DOGR"+IntegerToString(i),OBJ_TEXT, 0, Time[i+5],Low[i+1]-130*Point);
                      ObjectSetText("DOGR"+IntegerToString(i),DoubleToStr(NormalizeDouble(Low[i+1]-130*Point,4),4)+" cover till 2nd F/up", 26, "Impact", clrGreen); 
                      
      
      }
      else ObjectSet("Fox"+IntegerToString(i),OBJPROP_COLOR,clrGold); 
      ObjectSet("Fox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Fox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
       ObjectSet("Fox"+IntegerToString(i),OBJPROP_BACK,1);
}      

I would suggest looking for a Zero print, falling shy of the last one for a new entry. Since we are off the low by more than 55 pips this could happen anytime between a new 4-hour high and the last Zero at 1.1954.

Overall, a much stronger leg down could take the price to below 1.12.


The Trinidad Lottery


The rules to play:
Must be born in Trinidad.
Have a populist fascist elected for a second term.
Have him put his name, face, and signature on a golden card (green was for buggers)
For now, America is his own domain.
Let him charge whatever he wants for it, as it all goes into his pocket.
The game starts with the ideology of an empire: get more land, lose all surplus weight, like in a good, hot-air balloon you would.
The possibilities are endless:
for instance, people can get now creamed by ice.
And then the torpedo-lottery starts
At first, the fishermen are allowed to play. Later, extra-large rap divas can join without legal US status.
If you happen to not to get the jackpot (you don't have the cards), then your number is called, and you'd be blown to smithereens.
Smile! The whole world has been upgraded to being part of Trinidad. Now, everyone plays whether they want to or not.
All hail the almighty god of Trinidad!

I’m Loving Venezuela

Embrace,
It looks like a new beginning
But has the same old ending
Enjoy the view
& accept the review
Face to the interface
No fear
We have no atmosphere
Being bold as a king
Is a thing
Door's closing
Sheep's clothing 
Chicken albedo
Sting, you are wasting your time
Broke the rules
& broke some skulls too
Don't worry
Be extra happy now 
This was't meant to be
You weren't meant to see
The president of Benchmark
The names have been changed to protect the inner sounds
Get undressed, you'll see
You won't ever get fully embarrassed 
[Chorus]
I"m loving Venezuela
They are talking to me too
Don't cry for me South America
I'll be coming for the rest of you 
The emperor has new floats
The Village Idiot does his little turn
By Air Force One
To the tune of Vanilla Ice
The first president-crypto-pedo-thug-baby
Is in need of a hug and more thugs
Plus someone else's peace prize
Between two bombings 

How To Save On Paint?

What has happened to the neck?
The giraffe has failed the cognitive test.
Boy, camera, TV, and sonic weapon for mass killings
Did you say cognitive test?
Suck on this collective breast 
A big green land covered with ice,
Ready for export? Iceland! 
Nato Alliance?
Should have bought Allianz insurance! 
Third Reich
During the third term.
Mr & Mrs Messerschmitt
Wake me up before you bomb-bomb
Wave goodbye to the mother of all Pink Floyds 
Giving a madman nuclear access codes 
EQUALS to entrusting the goat with the cabbage
Nothing to see here
Nothing to eat here
Meanwhile, the orange supremist
Is taking a dump on a golden toilet
Tweeting out phrases of self-praises, insults, and demands
Like a low-life full-time bully does...
A wannabe dictator
Narcissist megalomaniac
Male chauvinist, racist
Spoiled brat
People, don't forget to take off his head!
[Chorus]
Here's his life in pictures 
From being a teen to raping teens
To raping everyone else 
And here's the guillotine
The savings have been enormous since...
On the paint alone!

Here's his life's work
Purely damages
Hat on and head off
It is hard to deal with idiots
But at least they are easy to spot
There's nothing masculine about mass killings
Insults don't replace the insulin
Red label
  
Millions of lives crippled,
Damaged, families torn apart
Hundreds of thousands killed
By denying them access to clean water
Medicine, food, shelter

But at least the billionaire oligarch buddies
Would get to round up their unspendable
Wealth up a bit more
So there is your trade-off
Remember when the felon married to an immigrant 
Told you that the problems were felons and immigrants?

[Chorus]
Here's his life in pictures 
From being a teen to raping teens
To raping everyone else 
And here's the guillotine
The savings have been enormous since...
On the paint alone!

For The Love Of Trump Playlist

Stretch 8

A lot has gone down this week.

The Forex market, over time, used to lose volatility. There were 6-months longs stetches when the market would not be able to get away from the 9-day EMA band (high to low) by more than 4 fluctuation maximums (38.4 pips for per flucutation maximum).

It was more common a decade ago to see 9, 10, 11x stretches. Now things seem to be trending up again.

This was your 8x stretch from the mean.

The market wants to mean-revert, particularly after a 2.5x stretch, but short-term, emotional buying can prevent it from doing so.

The second pump came from below the hourly 32 EMA as usual.

60 hours of celibacy

if (Low[i]<iMA(symbol,0,64,0,MODE_EMA,PRICE_MEDIAN,i)) P2[i]=1;
if (i>0 && (P2[i]==1) && P2[ArrayMaximum(P2,60,i+1)]==0)

Those wanting to fade the 1.20 break got systematically run over, and their holdings got taken over at a higher level (a new Scrape Level was made – and the mean reversion had started.

Now, pay attention to the Firebrick line.

ExtUpperBuffer_d[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,10,i+6))+820*Point;
ExtLowerBuffer_d[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,10,i+6))-820*Point;

Once you see a candle beyond this Firebrick line, add 14 pips to the previous candle, and then the next 2 candles would be falling shy of this new extreme by 34 pips, you have yourself a “sold into / bought into.” There is an escalated version of achieving 27 more pips beyond the Firebrick to receive a volatility boost (Luke, I’m your father). This would make the directional logic paint the opposite color instantly, versus neutral.

Now, momentum entries inside the wave structure.

///RSI2 FireBrick momentum sells
if (RSI2[i]<RSI2[i+1] && RSI2[i+1]>RSI2[i+2] && RSI2[i+1]>95.5 && High[i+1]>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,4,i+4))
&& MFI[i+1]<71 && High[i+1]-Low[i+1]>130*Point){

The pink “bought into” was lacking one thing. The extra 27 pips. The trade to the upside was good for 2 slim bricks and a get-out after the highest close.

So, momentum-sell, #2

Missing? Bought into. No undecut happening below the Firebrick by 14 pips just yet.

A buy into is likely not very far now that the price is back inside the Moat.

Whenever the moat is 27+ pips wide (42+ currently), it is highly likely to turn the price back around, as it won’t be able to cross with a single try. The moat is the shaded area between the 9-day EMA band and the 712 SMA (30 min).

Uno Momento

Can’t think of anything more reassuring than when someone with a net worth of 712 billion USD tells you: money would be irrelevant.

China: Build Your Dreams. Musk: I’ll sell you your dreams.

Now, some elusive subjects, such as momentum and holdings in real time.

It is tempting to think in symmetries. In the world of filters, this goal is a vanity project.

My proxy for measuring strong momentum is the Stochastic Bars Hybrid. On the upside, I use a 25-sample stochastic with the last 10%, on the downside, I use a 60 and a 100-sample stochastic with the last 5 and 3 percent. The logic is what works best.

With the invention of Vax, that is measuring directional volatility from the 200-hour high and 200-hour low, you now have a tool that can give an instant read of holdings as well as plotting short-term changes. i.e., the shorts have the upper hand. What are they doing lately? Covering.

When the two distances converge, is there an instant reinforcement (rejection)? When they start to diverge again, has the leadership been switched over? Being outside the S4 / R4, of course, means stronger domination.

Now, there’s a buy momentum entry filter. I can now say that momentum buying happens inside the BB30.

The two gigantic arrows below: both happened with a flat brick, the first one was right after a triple False Break sequence.

///RSI2 momentum buys
if (RSI2[i]>RSI2[i+1] && RSI2[i+1]<RSI2[i+2] && RSI2[i+1]<7.4
&& Low[i+1]<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,4,i+4))
){
if (MFI[i+1]>29 && Low[i+1]<Low[i+2]&& MFI[ArrayMinimum(MFI,7,i)]<15 && RSI2[ArrayMaximum(RSI2,5,i+2)]>50){
ObjectCreate("Citeral"+IntegerToString(i), OBJ_TEXT, 2, Time[i+1], 115);
ObjectSetText("Citeral"+IntegerToString(i), CharToStr(233), 144, "Wingdings", Purple);
}
}

The last add-on entry was an RSI2 taper (late in the game).

Small brick – big brick combo.

This is looking like a 5-wave structure.

Admittedly, the close was on the high, so another higher high should not be a surprise.

The last volume block was violated; there is no clear/visible target currently.

Sure, there was a high made at 1.1918 earlier, but I don’t think it could be made without a 45-pip pullback first.

In the image below, the green horizontal arrows are break-outs with their associated statistically achievable displacement. These arrows are a really good buy when they print near the red line (9 EMA), but would be a fake out near the two bands.

We just tapped into the supply box of the last breakout cover leg (1.1737 to 1.1802), but admittedly showed no reaction by the close. The 1.1779 arrow was violated, and it has a cover associated with it, starting from 1.1844.

The summary, a higher high cannot be ruled out, a move to 1.1844 is possible around the open, but to tackle the 1.1918 high, the new leg would have to come from below the daily 16 EMA.

If the high stays intact, and the fractal settles, you would be in a sell that is indefinite.

(I had to rush the plot by calling this location a full fractal)

(Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) && Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)+20*Point
&& MFI14[i]>80)
instead of
iFractals(symbol,0,MODE_UPPER,i)

Smart & Funny Concepts

Another volume block was hit. It is a wide one this time.

Currently, there’s no momentum to the downside, but there is a downtrend in place.

The red volatility line is nearing the house.

The RSI2 low was hit 3 times. The stochastic is embedded. The finish wasn’t particularly bearish.

There’s a sell Goldilocks (1.1642) 4 LL guidance.

Now, the lesson. 2 plus 2 equals all seems to be the theme for what to sell. (Two fractals above the 30 BB plus 2 pips.)

There was a Double Dutch that didn’t work, but this overall gave away the key to buying.

The five and the halfth hour is where the low may see an override. After 6 hours, the low is safe; it is time to buy.

Examples.

Above: the close of the 6th hour was exceeded by about 4 pips.

Below: the close of the 6th hour was exceeded by about 1 pip.

The close was 6 hours (12 candles), holding above the low.

Without gapping down, this looks like another buy that would float back up for another continuation sell @ 2+2.

Buyable?

Is this a buyable low?

Just tapped into some daily professional volume (cyan box).

Nick Rhodes says the daily RSI2 is in the sensitive, turning zone. You could see a bounce back up to E-44.

The double gray divergence (from the volatility compression anchor on the Vax) says, buyable.

The short volatility is facing resistance at the 166 level. The bottom indicator is a stochastic bars hybrid, agreeing on a momentum divergence.

A new scrape level was made, and it is holding. This is the first RoyalBlue arrow that did not get violated within 4 hours (8 candles).

For now, a run for 1.1664 is likely, but the open would have to be flat to higher.

Wait for 2 up fractals to print and take a short 3 pips beyond the second up fractal (30-minute).


Double Dutch (my most quant filter in recent times).

It uses an RSI2 array.

/////RSI2 box dn  
if (RSI2[i+1]<6 && RSI2[i]>6){ 
     if (Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1))  {ObjectCreate("KAROLYII"+IntegerToString(i), OBJ_RECTANGLE, 1, Time[i+2], 12, Time[i], 0);
      if (i>0 && RSI2[ArrayMinimum(RSI2,10,i+3)]<6 && RSI2[ArrayMaximum(RSI2,33,i+3)]<94  
      && RSI2[ArrayMaximum(RSI2,44,i+3)]>94 && stoch[i+1]<20 && Low[i-1]>Low[i]){
///Double Dutch is either basing, gets an undercut (Royal Blue poke below BB120), making a first leg up 30+ pips,
//                                                then from the dip starting an air guitar double pump run
//                                                making a new scrape level
///or mean reverting with 2 fractals up plus 3 pips
         ObjectCreate("Creepy"+IntegerToString(i),OBJ_VLINE,1, Time[i], 0);
           ObjectSet("Creepy"+IntegerToString(i),OBJPROP_COLOR,clrBlue );
           ObjectSet("Creepy"+IntegerToString(i),OBJPROP_WIDTH,8);
           ObjectSet("Creepy"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
           ObjectSet("Creepy"+IntegerToString(i),OBJPROP_BACK,1); 
            ObjectCreate("Creepyy"+DoubleToStr(i), OBJ_TEXT, indicator_window, Time[i+1], 30); 
           ObjectSetText("Creepyy"+DoubleToStr(i), "   Doube Dutch", 18, "Impact", Blue); }
     }
     
     else ObjectCreate("KAROLYII"+IntegerToString(i), OBJ_RECTANGLE, 1, Time[i+2], 6, Time[i], 0);
     ObjectSetInteger(0,"KAROLYII"+IntegerToString(i),OBJPROP_COLOR,clrGreen);
     ObjectSetInteger(0,"KAROLYII"+IntegerToString(i),OBJPROP_WIDTH,3);      
     if (Close[i+1]<iMA(symbol,0,414,0,MODE_EMA,PRICE_MEDIAN,i+1)-450*Point) ObjectSetInteger(0,"KAROLYII"+IntegerToString(i),OBJPROP_BACK,0);
  }

What can I say, I love these RSI2-sequence filters.

RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);

Tough Call

The Euro has been hurdling inside the Valley…

…only managing to get below the 9-day EMA in the last few days. It may be ready to break, but the progress is not very convincing.

On the Vax you can see that the short lead has been on for 2 days after 5 failed attempts. At the same time, this is all happening within the context of a squeeze: the red Volatility Compression is also in the Doghouse still, inside S3. (S3=R3, depending on which one is on the bottom, you get the prints.)

Not certain of the Blue Arrow plot, to make it stay on, I had to change the filter (it did not affect all the previous plots). That small box – big box – green arrow sequence is a strong taper.

if (i>0  && Open[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
         && Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
         && Close[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
         && Low[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)-10*Point 
         && Low[i-1]>Low[i] 
       //  && Low[i-1]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i-1)
 && (iLow(symbol,30,i)<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)+60*Point || iHigh(symbol,30,i+1)-iLow(symbol,30,i+1)>60*Point)
)

Earlier, I had this idea that the scrape low (1.1703) was gonna get run and we’d see a 30-pip undercut. Still could happen, but the level of confidence went way down. More volatility compression here (black arrow prints, fractals falling short of the 120BB) would mean a bottom.