Fredag

On Friday, the market was trapped between the POC from 3 and 2 weeks ago.

At least the behavior has changed. It went from Buy The Dip to Sell The Rip.

I started calling 4 30-minute closes outside the 30 BB “emotional” and 5+ closes a Hype.

That sudden vertical move back up was after an emotional move into the POC that was made 3 weeks ago to the RIP level (starting 3 pips shy of the upper BB).

The second thing was paying more attention to a move starting from the back or the front foot.

The two projection boxes link up with different depth starting moves (RSI2, 30 min). The pinkish-looking box is the target area of a front-foot move (Goldilocks to W3C-5 pips), the orange box is W3M to W3F for the back foot kick start.

These values are measured from the consolidation mean. I came up with the method of figuring the anchor point. I never encountered any literature on the subject. I decided to use the CI (Choppinesss), I changed the “full charge level” to 53 from 51, I changed the sample rate (48), and the time frame (15 min), where I thought I would end up with a relatively small candle, split it in half, and call it the mean.

The measuring stick is the 3-day ATR (excluding today).

Goldilocks is 10 pips shy of 1 ATR.

W3M is 15% extra, W3F is 30%.

The back foot is 30-minuthe RSI2 HL2 below 6, the front foot is above 6.

On the upside, similarly, use 94 instead. This is a back-foot sell.

The aim is for 1.1390 currently, but must play it by the ear behavior, which could represent an end of the Wave 2 down.


Bloody Udio buyout by Universal Music has disabled downloads. I have 3 full albums made already, but I cannot release them, including my first Hungarian album with 25 tracks on it.

Vol Crush

Candy?

What brings on a mean reversion? A volatility crush.

The reversion’s target is the snapshot of the far end of the 9-day EMA Band.

A typical mean reversion plays out in 48-56 hours.

Say from 14:00 on the 5th of November to 17:00 on the 7th of November.

This unraveling of the oversold (or overbought) condition is likely going to get triggered by a volatility compression divergence.

The light green verticals are volatility compression anchors, if the market makes a lower low but is unable to compress the losing side’s settlement volatility further (1H close off the bottom), a line gets plotted. If the return beyond the 8 EMO happens within 2 hours, the divergence is yellow (not enough separation), if it takes longer, the divergence is gray.

Therefore, on the above image, you can say that a gray divergence was second-guessed by a yellow divergence before the next gray divergence was fortified by another, wider gray divergence with a slight, 5-pip undercut as the final nail in the reversal’s coffin. That’s what Vax is for.

If you want to become a good trader, take mean reversion to heart, as they are the most “protected” move. Imagine the volume you could put on knowing the duration and the target.

I did make a plot for the 30-minute to have highlights at a glance, tell me if this is a buy the dip or sell the rip market, and to top it off, I named the 5-closes outside the 30-BB condition as Hype, and that’s when volatility can turn on itself (flip) with a high likelihood.


///2.5 hours outside at upper band  
if (High[i]-Low[i]>160*Point && 
Close[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+4) && Close[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3) && 
Close[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2) && 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)  
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]+80*Point, Time[i], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,10);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///reversal at upper band  
if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
((High[i+2]>High[i+3] && High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-30*Point) || High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2))
 && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)-10*Point
 && Low[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4)
 //&& High[i+2]>High[i+3]
 ){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i+2]+80*Point, Time[i+1], Close[i+2]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}

///Reinforcement at upper band  
if (i>0 && iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
High[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2) && Low[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && 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)){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]-80*Point, Time[i+1], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrDarkGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///2.5 hours outside at lower band  
if (High[i]-Low[i]>160*Point && 
Close[i+4]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4) && Close[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) && 
Close[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1) &&  
Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)  
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]-80*Point, Time[i], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrDarkGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,10);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}


///reversal at lower band  
if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && High[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) &&  Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)
&& High[i+1]<iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i)
&& Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i+2]-80*Point, Time[i+1], Close[i+2]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}

///reinforcement at lower band  
if (i>0 && iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)>160*Point &&
Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && High[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) && High[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i) && Close[i]>Close[i+1]){
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]+80*Point, Time[i+1], Close[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrCrimson); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
}  

I was thinking of leading up with a brownie point to Shapiro when he says that first, the behavior has to change. Then suggest that someone should tell him about Bollinger Bands, and then conclude that he still has time, and who knows, he may also come up with the 30-minute 30-sample being the answer.

Or maybe I should just wish everyone a good weekend.

MFI Trail

First, about a market profile tool on TradingView that I find useful.

I cannot fully embrace the terminology of “in balance”, but that’s what I must go with. If you want to see a seldom-interrupted trending move, you want the price to get outside last week’s volume profile, back test it a couple of times, and keep going. The zoom is far superior here as well, so I would plot the horizontal levels.

Now, the weekend project.

The idea is to use the MFI(7) to adjust a trail stop 20 pips out.

The day/week ended with a long trail stop run.

#property copyright   "MFI TRAIL by Macdulio, (c) 2025"
#property link        "http://www.forexfore.blog"
#property description "MFI TRAIL by Macdulio"
#property strict

#property indicator_chart_window
//separate_window
#property indicator_minimum    -50
#property indicator_maximum    50
#property indicator_buffers    2
extern int indicator_window = 1;
extern int lookback = 900;
extern double FSize=32;
double FMax = FSize*6/5;
string symbol = Symbol();

//---- buffers
double MFI[],TRAIL[],TRAIL2[],stoch60[], RSI2[];

int init()
  {
   SetIndexStyle(0,DRAW_LINE,4,3,clrTeal); 
   SetIndexBuffer(0,TRAIL);
   
    SetIndexStyle(1,DRAW_LINE,4,3,clrDeepPink); 
   SetIndexBuffer(1,TRAIL2);
  

   return(0);  
}
  

int start()
{ 
ArrayResize(RSI2, Bars);   
ArrayInitialize(RSI2, 0); 
ArrayResize(MFI, Bars);   
ArrayInitialize(MFI, EMPTY_VALUE); 
ArrayResize(TRAIL, Bars);   
ArrayInitialize(TRAIL, EMPTY_VALUE); 
ArrayResize(TRAIL2, Bars);   
ArrayInitialize(TRAIL2, EMPTY_VALUE); 
     ArrayResize(stoch60, Bars);   
 ArrayInitialize(stoch60,  EMPTY_VALUE);

   
int    i;
 
for(i=Bars-60; i>=0; i--){
  RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
    MFI[i]=iMFI(symbol,0,7,i);
 stoch60[i]=iStochastic(symbol,60,60,3,3,MODE_SMA,0,MODE_MAIN,i);
}

deletetxt1("Box");  
deletetxt1("Frog");

for (i = lookback; i >=0; i--) {
  
  TRAIL[i]=TRAIL[i+1];
  TRAIL2[i]=TRAIL2[i+1];
  
  if (i>0 && High[i]>iMA(symbol,0,12,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,12,0,MODE_EMA,PRICE_MEDIAN,i) && MFI[i]>76 && MFI[i]>MFI[i+1] && MFI[i]>MFI[i-1] && MFI[i+2]<76)
   {
            ObjectCreate("Box"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i-1], High[i], Time[i+3], High[i]+200*Point);
        ObjectSetInteger(0,"Box"+IntegerToString(i),OBJPROP_COLOR,clrRed);
        ObjectSet("Box"+IntegerToString(i),OBJPROP_WIDTH,3);
        TRAIL[i]=High[i]+200*Point;
        }
        
    if (i>0 && High[i]>iMA(symbol,0,4,0,MODE_EMA,PRICE_MEDIAN,i) && Low[i]<iMA(symbol,0,4,0,MODE_EMA,PRICE_MEDIAN,i) && MFI[i]<19 && MFI[i]<MFI[i+1] && MFI[i]<MFI[i-1] )
   {
            ObjectCreate("Box"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i-1], Low[i], Time[i+3], Low[i]-200*Point);
        ObjectSetInteger(0,"Box"+IntegerToString(i),OBJPROP_COLOR,clrLimeGreen);
        ObjectSet("Box"+IntegerToString(i),OBJPROP_WIDTH,3);
        TRAIL2[i]=Low[i]-200*Point;
        }    
        
  
  
   

 ///14.5-pip push up
 if ((Close[i+2]-Low[i+2])<140*Point && (Close[i+1]-Low[i+1])<140*Point && (Close[i]-Low[i])>145*Point 
 && stoch60[i]>stoch60[i+1]
  ){
          ObjectCreate("Frogon"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], Low[i], Time[i+1], Close[i]);
          if ((Close[i]-Low[i])<200*Point) ObjectSetInteger(0,"Frogon"+IntegerToString(i),OBJPROP_COLOR,clrLightGreen);
          else ObjectSetInteger(0,"Frogon"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
          ObjectSet("Frogon"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogon"+IntegerToString(i),OBJPROP_WIDTH,13);
 }
 

 ///14.5-pip push down
 if ((High[i+1]-Close[i+1])<140*Point && (High[i]-Close[i])>145*Point ){
 //&& stoch60[i]<stoch60[i+1]
          ObjectCreate("Frogo"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], High[i], Time[i+1], Close[i]);
          if ((High[i]-Close[i])<200*Point) ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrLightSalmon);
          else ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrTomato);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_WIDTH,13);
 }
  
}

deletetxt1("KLOPF");

      ObjectCreate("KLOPF5", OBJ_TEXT, 0, Time[0], TRAIL[0]+10*Point);  
      ObjectSetText("KLOPF5", "                                             SHORT STOP LOSS", 11, "Arial Black", DimGray);  
       
      ObjectCreate("KLOPF6", OBJ_TEXT, 0, Time[0], TRAIL2[0]+10*Point);  
      ObjectSetText("KLOPF6", "                                             LONG STOP LOSS", 11, "Arial Black", DimGray);  



// WindowRedraw();
   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);
}  }

Probably went too far short term, with 4x 3-BB out prints and the Momentum dipping into the toxic area.

Let the MFI TRAIL print the new sell box first.


2 French, 2 Instrumental on this one, the rest is mostly Disco / Electronic (Alternative).


From here on, more spam.

Isn’t that the guy from Blood Sport? – I got the inside joke.

1-0-1-B-B

You know, markets love symmetry, and I love people who can’t stop repeating that the market loves symmetry.

Terminal sequences identified so far:

2-M-0-2-M

2nd 2-B-B

2nd 3

1-0-1-B-B (weak)

1 stands for a hit / near miss of the 30-sample BB (1 H). B is a beat before a “0” tie off, which is going over the orange, 12 EMA. The white line calls attention to the close back inside the 12 EMA after a fresh low / high was made within the last 4 hours (versus 6 or more).

I started calling the bow back beats a B as well after a 2 print if they are in excess of 10 pips.

An M is a match, which re-visits the 2 print (a swing high/low beyond the gray line) within +/- 6 pips (of course, without the price getting all the way to the 12 EMA first).

I also believe that it is a good idea to keep track of the price going outside the 30, 120, and 240 Bollinger bands on the 30-minute chart.


////3x out down
 if (Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) && Low[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i) && Low[i]<iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_LOWER,i) ) {
               ObjectCreate("MINUSXX"+IntegerToString(i),OBJ_TEXT, 2, Time[i],15);
                ObjectSetText("MINUSXX"+IntegerToString(i),"3x Out!", 26, "Impact", clrIndigo);
            }

////3x out up
 if (High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,240,2,0,PRICE_MEDIAN,MODE_UPPER,i) && (High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) ||  High[i+1]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i+1))  ) {
               ObjectCreate("MINUSXX"+IntegerToString(i),OBJ_TEXT, 2, Time[i],95);
                ObjectSetText("MINUSXX"+IntegerToString(i),"3x Out!", 26, "Impact", clrIndigo);
            }

In conclusion, the deeply oversold state (poking outside the 3 bands) upgraded the weak reversal signal.

Now, how does this look?

Well, there seems to be a symmetry between the starting leg achieving a #2 and this finishing spike scoring about the same. The previous week’s pivot was backtested on Friday towards the end.

Well, the bears never lost their lead. The bulls were kept in the volatility compressor all along. At the finish, the bears/bulls were 58% to 38%. There seemed to be an extra-heavy long cover at the mean (9-day EMA). Sure, I am biased, 4.25 lots net short. See the glowing green rectangle? That was possibly the Grande after the Ariana in the top left. That hourly close plus 10 pips would be the low-risk short entry.


1400+ songs now in the Topic. On this album, I mostly plagiarized myself, upgrading some older poems.


Some spam from here on.

2-M-0-2-M

The next step after plotting the strength of a leg is recognising a reversal pattern.

2 means that the leg has made it beyond the dark gray line, but not the thin yellow.

M is a back test (short for Match), it can fall short or beat, but typically by not more than 6 pips.

0 is now clarified as a comeback inside the orange line (12 EMA on the hourly).

The white plots accordingly, are tie-offs. Apparently, you want to see 2 of these as a common denominator.
Channel[i]=(iMA(symbol,0,8,0,MODE_EMA,PRICE_MEDIAN,i)+iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i))/2;


////M-tie off Downside
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,3,i))==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,i)) && Close[i]>Channel[i] && Close[i+1]<Channel[i+1] && High[i+2]<Channel[i+2] && High[i+3]<Channel[i+3]){
ObjectCreate( “Banalist”+IntegerToString(i), OBJ_TREND, 0, Time[iLowest(symbol,0,MODE_LOW,3,i)], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,3,i)) , Time[i], High[i]);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_COLOR, clrWhite);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_WIDTH, 8 );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_STYLE, 0 );
}


////M-tie off Upside
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i))>=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,5,i))-20*Point && Low[i]<Channel[i] && Close[i]<Channel[i]+40*Point && Close[i+1]>Channel[i+1] && Low[i+2]>Channel[i+2] && Low[i+3]>Channel[i+3]){
ObjectCreate( “Banalist”+IntegerToString(i), OBJ_TREND, 0, Time[iHighest(symbol,0,MODE_HIGH,3,i)], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i)) , Time[i], Low[i]);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_COLOR, clrWhite);
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_WIDTH, 8 );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
ObjectSet(“Banalist”+IntegerToString(i), OBJPROP_STYLE, 0 );
}

Before proceeding, see how you could have fared with this trending move by going long after the first green box print and closing after the first orange one.

140 pips, not bad.

Now, the 30-minute filters would be a bit different. The 44-EMA is the choice here.

It may not pick the same exact places every time, but the rule of thumb is still to have 2.

Channel[i]=iMA(symbol,0,44,0,MODE_EMA,PRICE_MEDIAN,i);

 ////44-tie off Downside     
  if (
  iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i))<=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,10,i)) && 
  Close[i]>Channel[i] && Close[i+1]<Channel[i+1] && Close[i+2]<Channel[i+2]  && Close[i+3]<Channel[i+3] && Close[i+4]<Channel[i+4] && Close[i+5]<Channel[i+5]){  
         ObjectCreate( "Canalist"+IntegerToString(i), OBJ_TREND, 0,  Time[iLowest(symbol,0,MODE_LOW,8,i)], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i)) , Time[i], High[i]);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_COLOR, clrLime);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_WIDTH, 18 );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_STYLE, 0 ); 
  }


  ////44-tie off Upside     
  if (
   iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i))>=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,i))-20*Point && 
  Close[i]<Channel[i] && Close[i+1]>Channel[i+1] && Close[i+2]>Channel[i+2]  && Close[i+3]>Channel[i+3] && Close[i+4]>Channel[i+4] && Close[i+5]>Channel[i+5]){  
         ObjectCreate( "Canalist"+IntegerToString(i), OBJ_TREND, 0,  Time[iHighest(symbol,0,MODE_HIGH,6,i)], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,6,i)) , Time[i], Low[i]);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_COLOR, clrTomato);
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_WIDTH, 18 );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
           ObjectSet("Canalist"+IntegerToString(i), OBJPROP_STYLE, 0 ); 
  }


Strength Of A Leg

I used to think that out of the 4 charts I was displaying on my two 32-inch monitors, this was the most useless. This changed yesterday.

If you score a leg by which line it managed, you will have a 1 at the 30 BB (hourly), 2 at the gray bracket, and 3 at or beyond the yellow bracket. A “0” – S30 is only in play after a 3 print.

This is a million times better than that “strength of a currency” idea that Andy Demi is shilling on YouTube. There used to be a guy on LinkedIn who was posting currency strength comparisons (with very little English, a Serb maybe?) and was scamming people with cell phone screenshots of demo accounts, and every time he commented himself: “Nice!”. Probably had no real money left to play with. I blocked him at some point.

The problem with the stochastic approach for currency futures is that in the deeply overbought/oversold field, a reversal is just as likely as a continuation move (no edge there) as it is the darkest before dawn, and there is also the issue of interventions. Particularly the Yen, which mostly happens overnight. A smaller issue is the which timeframe/sample size.

Now, I haven’t gotten too far yet, but I have found 3 things.

A #1 sell or buy is definitely an at will step in with volume, so pay attention to those prints. If you had a #3 in one direction (a measuring leg), there will likely be a contest/repeat of that distance in the form of another #3 (divergent leg).

After 2, sell a quick 0 (3-5h) for a 2
After a 3, sell a 0 for another 3
join a #1 at will sell at 0 for a move to 2

The gray displacement brackets (46 pips from the 13-sample high/low):

ExtUpperBuffer[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,12,i))+460*Point;
       ExtLowerBuffer[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,12,i))-460*Point;

The yellow displacement brackets (82-pips from the 11-sample high/low with a 6-hour delay):

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

On Album #89, I concentrated on making AI really sing.

Vol #2 Heureka

So, there are now four colors.

Using 20 pips as still low volatility measure, both red scale is split to an Orange (low vol) and a Tomato (high vol), and the green side has Yellow (low vol) and Chartreuse (high vol).

What is the point of this?

For one, a single low-volatility push may not get things moving strongly in a direction.

All of a sudden it is relatively easy to spot the last large directional box (Ariana) and its retracement (Grande).

I plotted the yellow box on the wrong side of the retracement.

All of which leaves us with a low volatility selling block currently.

The second tomato was fully retraced. Waiting for another high volatility push.


///14.5-pip push up
 if ((Close[i+2]-Low[i+2])<140*Point && (Close[i+1]-Low[i+1])<140*Point && (Close[i]-Low[i])>145*Point && stoch60[i]>stoch60[i+1] ){
          ObjectCreate("Frogo"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], Low[i], Time[i+1], Close[i]);
          if ((Close[i]-Low[i])<200*Point) ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrYellow);
          else ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_WIDTH,13);
 }
 

 ///14.5-pip push up
 if ((High[i+1]-Close[i+1])<140*Point && (High[i]-Close[i])>145*Point ){
 //&& stoch60[i]<stoch60[i+1]
          ObjectCreate("Frogo"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], High[i], Time[i+1], Close[i]);
          if ((High[i]-Close[i])<200*Point) ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrLightSalmon);
          else ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrTomato);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_WIDTH,13);
 }

I just continue to make over-the-top stuff because I don’t know any better.



Also, this guy would not be the first Fraud Shapiro has interviewed.


I have kind of stopped making album videos as it is very time-consuming to collect 800-900 images per 55-65 minutes, and it is not worth the effort. This one may be the last one for a while.


Also, now that we are playing Marco Polo, here are all 26 episodes of the Travels Of The Young M. P.

I worked on 11 episodes as a Compositor (under Cinemon KFT).

Half of the episodes were put together in India.

The Compositing Supervisor was Patrick Menge from MotionWorks in Germany.

Maket Vol

Don’t ask why, but 14.5 pips is where the volatility tips the scale on the Euro (per hour), hence I made a plot for it.

 ///14.5-pip push up
 if ((Close[i+2]-Low[i+2])<140*Point && (Close[i+1]-Low[i+1])<140*Point && (Close[i]-Low[i])>145*Point && stoch60[i]>stoch60[i+1] ){
          ObjectCreate("Frogo"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], Low[i], Time[i+1], Close[i]);
          ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrChartreuse);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_WIDTH,11);
 }
 

 ///14.5-pip push up
 if ((High[i+1]-Close[i+1])<140*Point && (High[i]-Close[i])>145*Point && stoch60[i]<stoch60[i+1]){
          ObjectCreate("Frogo"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+2], High[i], Time[i+1], Close[i]);
          ObjectSetInteger(0,"Frogo"+IntegerToString(i),OBJPROP_COLOR,clrTomato);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_BACK,0);
          ObjectSet("Frogo"+IntegerToString(i),OBJPROP_WIDTH,11);
 }

I find this very useful, a minimal effort glance can provide you with a volatility V turn information, call attention to a continuation fact, and often give you the are to go long/short.


Udio was acting out and producing 80-90% junk for almost a week.

It always amazes me how different tastes the audience may have on various platforms. It’s either that or YouTube choosing between promoting or not makes or breaks anything.

Stochastic Unravelling

The question always ends up being about priorities.

What beats what then?

What is on the level?

It seems to me that the cornerstone is the severely overbought/oversold condition (60-sample stoch, 1H, last 4%).

Yes, I still have that 8-ball plot somewhere.

step #1

Write the program for the Stochastic unravelling. (Win Robbins Cup).

The severely OB/O  priority trade

(a mean reversion is likely underway upon 1, but certainly 2 gray Vax divergences)

stochastic unravelling to 13/25/momentum divg. 

<4 / >96 hourly disconnect

- from the fractal candle, the 2nd or 3rd hour's close is the entry

if there was directional excess outside the BB

or price rips beyond the 240 BB

dump the holdings on the 13th hour's close

in 13 hours #1 resistance prints after a hourly close outside 

if there was no directional access (overrun) after the numbers

- adjust the trail

- add holdings for 13 more hours at the back test kiss of hour #13

- dump on hour 25's close if it fails to get back outside the BB

- dump on a leg that comes from inside the 8 EMO and closes outside the BB after the 25th hour with the stochastic breaking into the opposite end

- if there was momentum (st. bar) AFTER 2 Fractal Prints on the inside, aim for a high volatility turn with 
an OverHedge to just outside the house (momentum divergence)

step #2

Who the hell is a rebel capitalist?


Preview for Album #88

Promoted Demoted

By calling upon Vax within the 30-minute window with a 398-sample dataset, the Fractal MFI divergence can receive an additional flag.

Looking at the Cumulative Volume Delta, you can see that Friday was a strong up day, buying from the start to the end, almost on the high.

Of course, still outside the prior volume block.

Now, my colored MFI divergence highlights are a good idea to start with, but it is tiresome going back and forth between 30-min and 1H just to get a picture of the volatility-compression readings. So, more text was my answer.

As you can see the red / bear line is over the bull line, which can be a crucial final information that tips the scale. The high of that candle is a promoted sell.

Next up, a Demoted buy.

Of course, things can get more nuanced than that.

For instance, a low volatility turn sequence plots first a “where” spike out of the 30 BB (triangular plots) then the “when” receives its plot (vertical highlights), and if the where block is unable to break through the peak of the triangle, that’s a priority turn.

As you can see, the Demoted supplementing flag was incorrect. 4 hours later, the Bears managed to overcome the Bulls. Time/sample size is just as important as the price level. No New HH.

Here’s one more example of a low-volatility turn.

No new LL.

///fractal MFI below
if (i>0  && Close[i+2]>Low[i] && Low[i+1]>Low[i] && Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) && Close[i-1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i-1)-20*Point && Low[i-1]>Low[i]-20*Point ){
   MFIDMEM[i]=MFI[i];
    ObjectCreate("Caligula"+IntegerToString(i),OBJ_TEXT, 3, Time[i],25);
    ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 16, "Impact", clrGray);
    if (MFIDMEM[i+1]<MFIDMEM[i] && MFI[i]<48 && MFI[i]>26 && (RSI2[i]<10 || RSI2[i]>20)) {ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 26, "Impact", clrGreen);
    ObjectCreate("Caligulas"+IntegerToString(i),OBJ_TEXT, 3, Time[i],95);
    ObjectSetText("Caligulas"+IntegerToString(i),"U-BB (S30Wide)/3BBx", 22, "Impact", clrBlue);
         if (ExtATRBuffer2[i+1]>ExtATRBuffer[i+1]) {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],25);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Promoted", 22, "Impact", clrMidnightBlue);
          }
          else {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],25);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Demoted", 22, "Impact", clrMidnightBlue);
          }
     ObjectCreate("Caligulasz"+IntegerToString(i),OBJ_TEXT, 3, Time[i],55);
    ObjectSetText("Caligulasz"+IntegerToString(i),"S4 -> E-", 22, "Impact", clrMidnightBlue);
     if (RSI2[i]<5) {ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 26, "Impact", clrAquamarine);
          if (ExtATRBuffer2[i+1]>ExtATRBuffer[i+1]) {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],25);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Promoted", 22, "Impact", clrMidnightBlue);
          }
          else {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],25);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Demoted", 22, "Impact", clrMidnightBlue);
          }
          
          
    ObjectSetText("Caligulas"+IntegerToString(i),"->3xBB,Vol,Fail/Fl-Stop", 22, "Impact", clrIndigo);
     }
    }
}

///fractal MFI above
if (i>0 && Close[i+2]<High[i] && High[i+1]<High[i] && High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i-1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i-1)+5*Point && High[i-1]<High[i]+20*Point){
   MFIUMEM[i]=MFI[i];
    ObjectCreate("Caligula"+IntegerToString(i),OBJ_TEXT, 3, Time[i],95);
    ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 16, "Impact", clrGray);
    if (MFI[i]>68 && MFI[i]<75 && RSI2[i]<96 ) ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 26, "Impact", clrBlue);
    if (MFIUMEM[i+1]<MFIUMEM[i] && MFI[i]>52 && MFI[i]<71 && RSI2[i]<96 ) {ObjectSetText("Caligula"+IntegerToString(i),DoubleToStr(NormalizeDouble(MFI[i],1),1), 26, "Impact", clrRed);
     if (ExtATRBuffer2[i+1]<ExtATRBuffer[i+1]) {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],75);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Promoted", 22, "Impact", clrMidnightBlue);
          }
          else {
                 ObjectCreate("Caligulazz"+IntegerToString(i),OBJ_TEXT, 3, Time[i+8],75);
                 ObjectSetText("Caligulazz"+IntegerToString(i),"Demoted", 22, "Impact", clrMidnightBlue);
          }
   }

If this is a low volatility turn – and I don’t think it is (- a stall), it would still have to test back into that triangle at least once. A lower low would mean a high volatility turn though.

There is a well-defined failure area between 1.1622 and 1.16, the prudent area to pick up a hedge / close shorts. The BRK level should remain untouched. If it blows past, you are in a Wave 3 down, and a new measuring leg just started printing.


After a while, it may pose a challenge to surprise yourself with what you can do in music. I am managing to do it still.


After a volatility compression anchor print, there should be a divergence, weaker compression achieved at a lower low.