Dir/L

The directional logic is coming along nicely.

There is a chance to turn back up around the blue BB (120-sample), but it has not happened yet. There should be a touch-and-go at the BB and another try that falls short. Kind of the mirror image of this:

Otherwise, wait for a color arrow (Red / Green = color arrows, Blue=no color, BB marker, Black=no color, black is a Tone).

The black can be a higher low / lower high already, but the colorless combo has no real foundation for a complete reversal without a color arrow (typically at the opposite side).


///prelim blue arrow down
if (i>0 && Open[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i-1]<High[i] && Low[i+3]<(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+3)+10*Point) ) {mode[i]=-1;
    ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+120*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(234), 56, "Wingdings", RoyalBlue); 
          royal[i]=-1;
}

if (i>0 && mode[i]<0 && Open[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i-1]>High[i] && Low[i+1]<(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+1))) mode[i]=1;

///prelim blue arrow up

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]) {mode[i]=1;
   ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-30*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(233), 56, "Wingdings", RoyalBlue); 
          royal[i]=1;

}
if (i>0 && mode[i]>0 && Open[i]>iBands(symbol,0,120,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]) mode[i]=-1;



///black arrow down
if (royal[ArrayMinimum(royal,24,i)]<0 && royal[ArrayMinimum(royal,6,i)]>=0 && iFractals(symbol,0,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i)-80*Point && High[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i)){
    ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+120*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(234), 56, "Wingdings", Black); 
}
 
///black arrow up
if (royal[ArrayMaximum(royal,24,i)]>0 && royal[ArrayMaximum(royal,6,i)]<=0 && iFractals(symbol,0,MODE_LOWER,i) && Low[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)+80*Point && Low[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)){
     ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-30*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(233), 56, "Wingdings", Black); 
}


///black arrow down
if (royal[ArrayMinimum(royal,24,i)]<0 && royal[ArrayMinimum(royal,6,i)]>=0 && iFractals(symbol,0,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i)-80*Point && High[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i)){
    ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+120*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(234), 56, "Wingdings", Black); 
}
 
///black arrow up
if (royal[ArrayMaximum(royal,24,i)]>0 && royal[ArrayMaximum(royal,6,i)]<=0 && iFractals(symbol,0,MODE_LOWER,i) && Low[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)+80*Point && Low[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_LOWER,i)){
     ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-30*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(233), 56, "Wingdings", Black); 
}



///red arrow down
if (mode[i]>0 && 
High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)+80*Point && Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)) {mode[i]=-1;
    ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+120*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(234), 56, "Wingdings", Crimson); 
}

///green arrow up
if (i>0 && mode[i]<0 && Low[i]<Low[i+1]+20*Point && Close[i-1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i-1)+10*Point &&
Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-80*Point && Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-20*Point && Close[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)) {mode[i]=1;
     ObjectCreate("Cigar"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-30*Point); 
          ObjectSetText("Cigar"+IntegerToString(i), CharToStr(233), 56, "Wingdings", DarkGreen); 
}

Flat Out

How can a poet’s mind be useful in trading?

Once I asked my daughter about a watermelon slice that was cut like a triangle, what it was. She answered: “Pizza!”

She was right. Adults want to always be precise and accurate. In real life, things can just be true or qualified.

Black belt

How would you call a market that manages to close outside the 30-sample BB more than 5 times in a row?

Halle Berry would answer: lop-sided*. i.e., the buying/selling went flat.

A one-sided buying/selling (3 hours or more) is working towards something that does not seem to be happening: a burst out in the directional volatility.

Once back inside the BB, a fork is presented: tackle the most recent high/low and prompt a volatility expansion wedge or call it quits within 4 30-minute candles.

I’ll show you two expansions first.

There are 3 key points in the ensuing wedges.

Green / Red arrow: support/resistance level faked out at the opposite end of the 30-minute BB by 10+ pips.

Blue Arrow: touch down / slight overthrow at the 120 BB.

Black arrow: the shortfall upon the next approach of the rip/dip interrupted line.

An example of a fork where the red arrow would be: no burst of volatility 10+ pips outside the BB -> the down move continues.

The current move off the black lacked the overrun of the low, but the price has made it outside the BB by 9 pips – the resistance level has been found, albeit there is no volatility expansion in both directions currently.

You could either see a yellow arrow (backtest of the resistance) or a touch down on the 120 BB – blue arrow, which would be a higher low in this case. Should there be a touchdown next, I would go long at the shortfall next to the dip on the next leg down.

The bottom line is that the directional logic should receive an adjustment by the black print, as well as at the 120 BB fake outs.

* Halle Berry was once told that her boobs were lopsided. She answered: Of course they are, because they are real.


The world is idolising MF assholes.

Steve Jobs was once having dinner with the ex ex-wife and daughter. When the ex-wife mentioned that there was some butter in the soup, he immediately spat it back.

Elon Musk does not stand for a single principle. His legacy is that he is a mass murderer.

He says that there are not enough people on the planet and pays 15 million to mothers he hires to have his kids, so he has to balance in his mind having made 20 people with 600,000 killed by him to date with his USAID and other chainsaw cuts. Ok. I guess he stands for racism.



///2.0 hours outside at upper band  
if (i>0 && High[i-1]-Low[i-1]>100*Point && 
Close[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3)-10*Point && 
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], High[i]+80*Point, Time[i], High[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrPlum); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
         ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+4]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"Buy Below BB; FrntF or BckF", 26, "Impact", clrDarkGreen);     
    
}


///2.5 hours outside at upper band  
if (i>0 && High[i]-Low[i]>100*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,clrMagenta); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
         ObjectDelete("DOG"+IntegerToString(i+1));
         ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"O/D, DIP->RIP, 30BBL, UNDERCUT", 26, "Impact", clrSteelBlue);     
        
}

///3+ hours outside at upper band  
if (i>0 && High[i]-Low[i]>100*Point &&
Close[i+5]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+5) &&
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)  
){
   ObjectDelete("Dox"+IntegerToString(i+1));
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]+80*Point, Time[i], High[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrBlack); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
         ObjectDelete("DOG"+IntegerToString(i+1));
         ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"Buy 4 HH E-16-> 2v,M,M", 26, "Impact", clrDarkGreen);     
 if (Close[i-1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i-1)) mode[i]=-1;       
}

  
///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)
 && Low[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4)
 //&& High[i+2]>High[i+3]
 ){ if (High[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)) mode[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,clrCrimson); 
      if (Close[i]>iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)-10*Point) {ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrYellow);
        ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i+11],High[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"W8 3CLS", 26, "Impact", clrBlue); 
                     mode[i]=0;    
      }
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
     
}

///Reinforcement at upper band  
if (i>0 && !((High[i-1]-Low[i-1])>160*Point && Close[i-1]<Close[i]-80*Point)
&& (High[i]-Low[i])>160*Point
&& 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);
      mode[i]=1;
}

///2.0 hours outside at lower band  
if (i>0 && 
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], Low[i]-80*Point, Time[i], Low[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrPlum); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
         ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"EMO+POC->UBB30; FrntF->Goldie / BckF->W3M", 26, "Impact", clrCrimson);     
    
}


///2.5 hours outside at lower band  
if (i>0 && 
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,clrMagenta); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
        ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"O/D, RIP->DIP, 30BBU", 26, "Impact", clrSteelBlue); 
}

//3+ hours outside at lower band  
if (i>0 && Close[i+5]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+5) &&
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)  
){
   ObjectDelete("Dox"+IntegerToString(i+1));
   ObjectCreate("Dox"+IntegerToString(i),OBJ_TREND,0, Time[i+9], Close[i]-80*Point, Time[i], Low[i]);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_COLOR,clrBlack); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,13);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
      
       ObjectDelete("DOG"+IntegerToString(i+1));
        ObjectCreate("DOG"+IntegerToString(i),OBJ_TEXT, 0, Time[i],Low[i+2]-90*Point);
                      ObjectSetText("DOG"+IntegerToString(i),"Sell Goldilocks 4 LL-> 2v,M,M", 26, "Impact", clrCrimson); 

      if (Close[i-1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i-1)) mode[i]=1;
}







///reversal at lower band  
if (
RSI2[i]<88.5 &&
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);
     mode[i]=1; 
}

///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)-20*Point && 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,clrYellow); 
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_WIDTH,6);
      ObjectSet("Dox"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
   mode[i]=-1;
}   


if (i>0 && mode[i]>0 && Open[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i-1]<High[i] && Low[i+1]<(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+1)-20*Point)) mode[i]=-1;
if (i>0 && mode[i]<0 && Open[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Close[i]<iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i]>iBands(symbol,0,120,2,0,PRICE_MEDIAN,MODE_UPPER,i) && High[i-1]>High[i] && Low[i+1]<(iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+1))) mode[i]=1;

if (i>0 && mode[i]<0 && Open[i]>iBands(symbol,0,120,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]) mode[i]=1;
if (i>0 && mode[i]>0 && Open[i]>iBands(symbol,0,120,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]) mode[i]=-1;

Profile

Using a weekly market profile can really improve your entries.

There are two typical rejection zones. One, the easier one to spot is the POC. What you need to be conscious of is that the 10-pip zone towards it is all hot, and if you go over the POC by 8 pips, that’s just a slight overshoot.

One recurring theme is having to see multiple failures, but at least 2.

Zooming in, you see where the market turns into a sell-the-rip. A move from beyond the dotted line (3-pips shy of the 30BB on the 30 min), which ends up closing back inside the 16 EMA by 2 pips within the next 2 candles. The Maroon lines are various POCs.

I have not started making indicators for TradingView, and don’t think I would, as you can only have 2 plots for free.

After the behavior has changed, you can put out pending orders, scale into a short towards the POC, say one third of the maximum size you have in mind, 8pips out, one third 4 pips out, and the rest at the POC.

As you can see, the first leg down after the behavior change does bounce back hard from the lower POC, but there is also a sign of acceleration to the downside: the 4 consecutive closes outside the 30BB, marked up by the purple line. The following setback, the 1.5-hour rip back to the upper POC, was the liquidity break. You should therefore be suspicious of moves covering great distances in a short amount of time, seemingly out of nowhere.

Then the market finds resistance at the 30 SMA / E-44, and gets to break the lower POC.

Then there was buy the dip again, with the ceiling being the back tests from below.

The dip in this constrained box meant the moves below the 50% mark between the next two POCs.

The mode flipped again, and there was a kiss goodbye to the now upper POC-s force field. Since there was a lot more interaction with the lower field before this back test, what you should have done as a pro trader is to give a discount on your spread, i.e., put 2/3 of your size out 8-pip shy and another third at 4 (went unfilled).

The break this time went into overdrive.

After the buy-flip impulse, you could have taken a long in the green box: more than 50% away from the top, and exited 10-12 pips away from the POC, considering the major acceleration to the downside; one run had 8 closes outside the BB. The better trade was, of course, selling against the POC, at 12 pips out, as that was all you got. Looking at the green oval, one thing should pop in your mind: the violence of it again was a hint for a liquidity break.

That is what you get after an acceleration: the counter move would be a temporary setback before a continuation.

Now we have stalled out at the lower POC. The market hasn’t flipped mode, so the 50%+ would be a good place to enter (the rip) for running over the lower POC. Also, there will be another POC print in the mix, probably not far above it.

The mode would have to change. It could be done with the next leg down, with a slightly lower low that does not get past the lower POC by 10+ pips.

One remark is that I shift up the TradingView POCs when transferring them from the ICE chart to MT4 by up to 3 pips.

Also, if you were a scammer, you could sell the POCs as for instance, Voodoo lines for $90 per month and call the Monthlies Tree Lines and the Yearlies Snow Lines, etc. Just an idea.

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.