The F3 Playbook

In short, 92-95 pips run up, then two bowbacks making a bid for the low, one close, the other closer, but a match of the F3 low on the second attempt, and then… it is all over.

The last two F3-s looked like this:

If you consider A and B prints, the first A would be a bit longer than the second, and the first B would be longer or equal to the second. This is a contracting pattern. Length? 3-8 days.

According to this blueprint, the first A should take the price to 1.0304-1.3010

Minor Details

3 things I wasn’t paying attention to before.

#1 When the total regime change happened at the top, the entire consolidation took place below the 16 EMA. So it is not enough to be on the other side of the 80 line, it must be high-basing to turn.

This therefore did not qualify.

The current problem with the reversal is that the volatility is rising.

The third important clue was the failure to the leg 3 (which resulted in having to rename it as a 2B) was again too much volatility. Believe it or not, a steep 2-day incline is not productive.

See those red diagonal lines? They are steep 2-day inclines that I call liquidity breaks. All of them have resulted a lower low, and only two of them had a re-visit/beat by 5 and 11 pips namely.

Two days and 100+ pips and the rally is spent.

if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j))-Low[i]>1000*Point && iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j))<iMA(symbol,0,9,0,MODE_EMA,PRICE_HIGH,iHighest(symbol,0,MODE_HIGH,2,j))+600*Point) ObjectSet("Liquidityx"+i,OBJPROP_COLOR,clrRed);
         ObjectSet("Liquidityx"+i,OBJPROP_WIDTH,9); 
         ObjectSet("Liquidityx"+i,OBJPROP_BACK,1); 

Other than that, the “3” did not register on my RSI2 scale which would make it equal to the one at the top. Strong divergence.


Album #48 came out today


F3 plots

 if (High[i]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)+FMax*2.2*10*Point
      && High[i]>High[i+1]+33*Point && Close[i]<High[i]-60*Point &&
      High[i]-Low[i]>900*Point && Low[i]>L80N[i+1]
      ){
          ObjectCreate("Bod"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], High[i]+330*Point); 
          if (i>1 && High[i]>High[i+1] && (High[i-1]>High[i] || High[i-2]>High[i]) && Low[i]>L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  Green);
          else if (i>2 && High[i]>High[i+1] && High[i-3]>High[i] && Low[i]>L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  Green);
          else ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  White); 
          if (iRSI(symbol,0,2,PRICE_MEDIAN,i)<88.4) ObjectSetText("Bod"+DoubleToStr(i), "F3", 34, "Impact",  White);  }
   
     if (Low[i]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)-FMax*2.4*10*Point
      && Low[i]<Low[i+1]-33*Point  && (Close[i]>Low[i]+210*Point || (i>0 && Low[i-1]>Low[i])) &&
      High[i]-Low[i]>430*Point && High[i]<L80N[i+1]
      ){
          ObjectCreate("Bod"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]-330*Point); 
          
          if (i>1 && Low[i]<Low[i+1] && (Low[i-1]<Low[i] || Low[i-2]<Low[i]) && High[i]<L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  Red);
          else if (i>2 && Low[i]<Low[i+1] && Low[i-3]<Low[i] && High[i]<L80N[i]) ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  Red);
          else ObjectSetText("Bod"+DoubleToStr(i), "F", 24, "Impact",  White); 
          if (iRSI(symbol,0,2,PRICE_MEDIAN,i)>8.5 && Low[i]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)-FMax*2.4*10*Point) ObjectSetText("Bod"+DoubleToStr(i), "F3", 34, "Impact",  White); 
        }

Squared

Experiment.

The idea is that a market maker closes out a block with balanced books (no excess holdings in the wrong direction), thus making a brief countermove. We are going to try to spot and plot these.

Our canes are 3 lines, the 30 sample BB Upper, Lower and Main.

On the upside: lift and square (green boxes)

I am looking for a move above the MAIN or the UPPER line on the previous 2 candles, an ascending 16 EMA, and a lower wick greater than 16 pips.

//squaring - up - BB
if (Close[i]-Low[i]>160*Point && Open[i]-Low[i]>160*Point
   && (Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) || Low[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2))&& Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)
)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], Low[i] , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrGreen);
}
//squaring - up - S30
if (Close[i]-Low[i]>160*Point && Open[i]-Low[i]>160*Point
   && (Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+1) || Low[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+2))&& Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i)
)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], Low[i] , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrGreen);
}

Once the plot is made, the early bird can get in on a dip below the candle close on the upper examples by 6 pips up to 16 pips.

The squaring lines are relatively safe spots to put stop losses beyond.

On the downside: crack and square (red boxes)

The downside works similarly, but instead of a separation, I am looking for a crack, then a follow-up candle that has an upper wick of 8+ pips (yes, another arbitrary number).

I added one extra condition with a combination of the 2 bands, which is a combination of the two bands when a squeeze makes a move like this possible.

//squaring - down - BB 
if (High[i]-Close[i]>80*Point && Low[i+1]<Low[i+2] && Low[i+1]<Low[i+3]
&& Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
&& Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1) 
&& Low[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3) 

)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], High[i] , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrRed);
}

//squaring - down - S30 
if (High[i]-Close[i]>80*Point && Low[i+1]<Low[i+2] && Low[i+1]<Low[i+3]
&& iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i)<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)
&& Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i) 
&& Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+1) 
&& Low[i+3]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+3) 

)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], High[i] , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrRed);
}



//squaring - down - BB to S30 
if (High[i]-Close[i]>80*Point && Low[i+2]<Low[i+3] && Low[i+2]<Low[i+4]
&& iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+1)<iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i+2)
&& Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i) 
&& Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1) 
&& Low[i+4]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+4) 

)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], High[i] , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrRed);
}

Figures

Things that I figured right.

The noodles that the market could make an acceleration/thrust from.

I’ve listed 3 check points that are statistically likely for a terminal move.

I should have considered having a full charge, in that case, the gray line (THRST/No Break Extension) is a slim chance.

The second down candle was a push against the weekly low. It was good enough for another pierce beyond the 1.0250 level.

Now comes knowledge. The third candle hit a traction surface (back and forth through the 30-BB).

Notice on the following examples how a bull flag cand disable this secondary entry.

Now? One lifeline has been used; the 8 EMO should be the next to have some grip – a 3-5 hours long sell. I could picture another low that is lower than 1.0226 but would fall shy of 1.0213.

1.0250

Pro volume print today. The last time they tolerated a 33-pip move against their holdings (5 days out).

The untested outside candle happens to be at 1.0250 also.

Weekly R1 is at 1.0473

This is a bow back, and should not reach the low.

The 18-buy would be a little lower tomorrow.

Step #2

The importance of the last full candle outside the BB.

You either get a pullback to the 16 EMA for a continuation (with a break out beyond at some point), or multiple closes start to print on the other side of the 16 EMA for a reversal.

What do the Brits always say? Simples.

if ((High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) && Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) || (High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) && Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i))) &&
   ((High[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) && Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1))
|| (High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1) && Low[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)))
){

               ObjectCreate("KAROLYI"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+2], High[i+1] , Time[i+1], Low[i+1]);
              ObjectSetInteger(0,"KAROLYI"+DoubleToStr(i),OBJPROP_COLOR,clrLemonChiffon);
              j=i-1;
           if (High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)){
              while (j>0){
               if (Close[j]<Low[i+1]) break;
               j--;
              }
              ObjectCreate("KAROLYII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], Low[i+1]+50*Point , Time[j], Low[i+1]);
              ObjectSetInteger(0,"KAROLYII"+DoubleToStr(i),OBJPROP_COLOR,clrLemonChiffon);
           }
           else if (Low[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)){
              while (j>0){
               if (Close[j]>High[i+1]) break;
               j--;
              }
              ObjectCreate("KAROLYII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], High[i+1]-50*Point , Time[j], High[i+1]);
              ObjectSetInteger(0,"KAROLYII"+DoubleToStr(i),OBJPROP_COLOR,clrLemonChiffon);
           }
}

CF 52 Pimp

First, the having gone too far function gets a new filter.

Like so.

The x + numbers print is 10 pips back from that candle’s high/low to make sure to get a fill

#property copyright "Copyright © 2022, Macdulio" 
#property link      "https://forexfore.blog" 
#property description "V1.0"
#property description "Counter Force 52 pimps"
#property description "18-sample move maximum."
#property strict

//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1  clrPink
#property indicator_color2  clrPowderBlue
#property indicator_color3  clrPurple
#property indicator_color4  clrBlue
#property indicator_color5  clrRed
#property indicator_color6  clrDarkKhaki
#property indicator_color7  clrWhite
#property indicator_level1 0
#property indicator_level2 52
#property indicator_level3 -52
#property indicator_levelcolor clrBlue
#property indicator_levelstyle STYLE_DOT

extern double valuetomonitor = 5.5;
extern int lookback = 100;
extern int indicator_window = 3;
extern int sample = 18;
extern double FSize=32;
double upper[], middle[], lower[];
double avg;
double FMax = FSize*6/5;
double iHi4[];
double iLo4[];    
  string symbol = Symbol();  
double ExtATRBuffer[],ExtATRBuffer2[],ExtATRBuffer3[],ExtATRBuffer4[],ExtATRBuffer5[],stoch60[];
double corr[],corr2[], RSI2[], squeeze[];
bool red[], orange[], blue[];

int init(){
  
   SetIndexBuffer(0,ExtATRBuffer);   
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color1);
   SetIndexBuffer(1,ExtATRBuffer2);   
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color2);
     SetIndexBuffer(2,ExtATRBuffer3);   
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color3); 
        SetIndexBuffer(3,ExtATRBuffer4);   
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color4); 
   SetIndexBuffer(4,ExtATRBuffer5);   
   SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color5);
   
   return(INIT_SUCCEEDED);
   //return(0);
}

//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start(){
  
  ArrayResize(ExtATRBuffer, Bars); 
  ArrayInitialize(ExtATRBuffer, EMPTY_VALUE);   
    ArrayResize(ExtATRBuffer2, Bars); 
  ArrayInitialize(ExtATRBuffer2, EMPTY_VALUE);   
      ArrayResize(ExtATRBuffer3, Bars); 
  ArrayInitialize(ExtATRBuffer3, EMPTY_VALUE);  
      ArrayResize(ExtATRBuffer4, Bars); 
  ArrayInitialize(ExtATRBuffer4, EMPTY_VALUE);  
     ArrayResize(ExtATRBuffer5, Bars); 
  ArrayInitialize(ExtATRBuffer5, EMPTY_VALUE);   
  ArrayResize(iHi4, Bars); 
  ArrayInitialize(iHi4, EMPTY_VALUE);   
  ArrayResize(iLo4, Bars); 
  ArrayInitialize(iLo4, EMPTY_VALUE);   
     ArrayResize(stoch60, Bars);   
 ArrayInitialize(stoch60,  EMPTY_VALUE);
  ArrayResize(RSI2, Bars);   
 ArrayInitialize(RSI2,  EMPTY_VALUE);
   ArrayResize(corr, Bars);   
 ArrayInitialize(corr,  EMPTY_VALUE);  
    ArrayResize(corr2, Bars);   
 ArrayInitialize(corr2,  EMPTY_VALUE);  
    ArrayResize(middle, Bars);   
 ArrayInitialize(middle,  EMPTY_VALUE);  
   ArrayResize(squeeze, Bars);   
 ArrayInitialize(squeeze,  0); 
  ArrayResize(upper, Bars);   
 ArrayInitialize(upper,  EMPTY_VALUE);  
 ArrayResize(lower, Bars);   
 ArrayInitialize(lower,  EMPTY_VALUE);  
  ArrayResize(red, Bars);   
 ArrayInitialize(red, false); 
 ArrayResize(orange, Bars);   
 ArrayInitialize(orange, false); 
 ArrayResize(blue, Bars);   
 ArrayInitialize(blue, false); 
    
   int i,j,k;

  for(i=Bars-100; i>=0; i--){ 
   
     if (Period()==240)   iHi4[i]=iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i);
     else if (Period()==30) iHi4[i]=iMA(NULL,0,414,0,MODE_EMA, PRICE_HIGH,i);
     else if (Period()==60) iHi4[i]=iMA(NULL,0,207,0,MODE_EMA, PRICE_HIGH,i);
     if (Period()==240)  iLo4[i]=iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i);
     else if (Period()==30) iLo4[i]=iMA(NULL,0,414,0,MODE_EMA, PRICE_LOW,i);
     else if (Period()==60) iLo4[i]=iMA(NULL,0,207,0,MODE_EMA, PRICE_LOW,i);
      stoch60[i]=iStochastic(symbol,60,60,3,3,MODE_SMA,0,MODE_SIGNAL,i);
      RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
}

deletetxt1("Pepper");
deletetxt1("Panace");
deletetxt1("PLOT");
deletetxt1("Titus");
deletetxt1("Scalein");
deletetxt1("Bod");

for(i=lookback; i>=0; i--){ 
      middle[i] = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_TYPICAL, i);
      avg  = findAvg(20, i);
      upper[i] = middle[i] + avg;
      lower[i] = middle[i] - avg;
      
  if (iBands(symbol,0,18,1,0,PRICE_CLOSE,MODE_UPPER,i)<upper[i] && iBands(symbol,0,18,1,0,PRICE_CLOSE,MODE_LOWER,i)>lower[i]) 
      { ObjectCreate("PLOT"+i,OBJ_TEXT, indicator_window, Time[i], 8.5);
        ObjectSetText("PLOT"+i, CharToStr(108), 16, "WingDings", clrDarkBlue);
        blue[i]=true;
      }
     
      
      if (iBands(symbol,0,18,1.4,0,PRICE_CLOSE,MODE_UPPER,i)<upper[i] && iBands(symbol,0,18,1.4,0,PRICE_CLOSE,MODE_LOWER,i)>lower[i]) 
      { ObjectCreate("PLOT"+i,OBJ_TEXT, indicator_window, Time[i], 8.5);
        ObjectSetText("PLOT"+i, CharToStr(108), 16, "WingDings", clrRed);
        red[i]=true;
      }
      
       if (iBands(symbol,0,18,1.8,0,PRICE_CLOSE,MODE_UPPER,i)<upper[i] && iBands(symbol,0,18,1.8,0,PRICE_CLOSE,MODE_LOWER,i)>lower[i]) 
      { ObjectCreate("PLOT"+i,OBJ_TEXT, indicator_window, Time[i], 8.5);
        ObjectSetText("PLOT"+i, CharToStr(108), 16, "WingDings", clrOrange);
        orange[i]=true;
      }
 
 ExtATRBuffer[i]= -1*(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,sample-1,i+1))-Low[i])*10000;
 if (ExtATRBuffer[i]<-93) ExtATRBuffer[i]=-93;
 ExtATRBuffer2[i]=(High[i]-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,sample-1,i+1)))*10000;
 if (ExtATRBuffer2[i]>93) ExtATRBuffer2[i]=93;
ExtATRBuffer4[i]=ExtATRBuffer2[i]; 
 if (ExtATRBuffer[i]<-91 && Low[i]<iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,10,i))-820*Point) ExtATRBuffer3[i]=ExtATRBuffer[i];
 else if (ExtATRBuffer2[i]>91 && High[i]>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,10,i))+820*Point) ExtATRBuffer3[i]=ExtATRBuffer2[i]; 
 
 
 ///NDF SCALE INS
 
 ///NDF SELL
 if (i>0 && ExtATRBuffer3[i+4]==EMPTY_VALUE && ExtATRBuffer3[i+2]==EMPTY_VALUE && ExtATRBuffer3[i+3]==EMPTY_VALUE && 
 ExtATRBuffer3[i+1]>0 && ExtATRBuffer3[i+1]<200 && Close[i+2]>iMA(symbol,0,17,0,MODE_SMA,PRICE_MEDIAN,i+2)){ 
                     ObjectCreate("Scalein"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+7], High[i+1], Time[i+3], High[i]+200*Point);
                     ObjectSetInteger(0,"Scalein"+IntegerToString(i),OBJPROP_COLOR,clrRed);
                     ObjectSet("Scalein"+IntegerToString(i),OBJPROP_BACK,0);
                      ObjectSet("Scalein"+IntegerToString(i),OBJPROP_WIDTH,5); 
                      
                           ObjectCreate("Scaleind"+IntegerToString(i), OBJ_TEXT, 0, Time[i+5], High[i+1]-30*Point); 
          ObjectSetText("Scaleind"+IntegerToString(i), "x "+DoubleToStr(NormalizeDouble(High[i+1]-100*Point,4),4), 19, "Impact",  DarkBlue); 
                      }
 
 
 
if (i>0 && ExtATRBuffer3[i+4]==EMPTY_VALUE && ExtATRBuffer3[i+3]==EMPTY_VALUE && ExtATRBuffer3[i+2]==EMPTY_VALUE && 
 ExtATRBuffer3[i+1]>0 && ExtATRBuffer3[i+1]<200 && Close[i+2]>iMA(symbol,0,17,0,MODE_SMA,PRICE_MEDIAN,i+2) && High[i+1]-Low[i+1]<1100*Point ){ 
                        ObjectCreate("Bod"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 80); 
          ObjectSetText("Bod"+IntegerToString(i), "NDS1:"+DoubleToStr(NormalizeDouble(High[i+1]+80*Point,4),4), 14, "Impact",  DarkBlue); 
          ObjectCreate("Bodo"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 40); 
          ObjectSetText("Bodo"+IntegerToString(i), "NDS2:"+DoubleToStr(NormalizeDouble(High[i+1]+160*Point,4),4), 14, "Impact",  DarkBlue); 
          ObjectCreate("Boda"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 20); 
          ObjectSetText("Boda"+IntegerToString(i), "NDS3:"+DoubleToStr(NormalizeDouble(High[i+1]+240*Point,4),4), 14, "Impact",  DarkBlue);   }
                       
 
 
 
 ///NDF Buy
                     
 if (i>0 && ExtATRBuffer3[i+4]==EMPTY_VALUE && ExtATRBuffer3[i+3]==EMPTY_VALUE && ExtATRBuffer3[i+2]==EMPTY_VALUE && 
 ExtATRBuffer3[i+1]<0 && ExtATRBuffer3[i+1]>-200 && High[i+2]-Low[i+2]<1100*Point && High[i+1]<iMA(symbol,0,17,0,MODE_SMA,PRICE_MEDIAN,i+1) && High[i+1]-Low[i+1]<1100*Point){ 
          ObjectCreate("Bod"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 80); 
          ObjectSetText("Bod"+IntegerToString(i), "NDB1:"+DoubleToStr(NormalizeDouble(Low[i+1]-40*Point,4),4), 14, "Impact",  DarkBlue); 
          ObjectCreate("Bodo"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 40); 
          ObjectSetText("Bodo"+IntegerToString(i), "NDB2:"+DoubleToStr(NormalizeDouble(Low[i+1]-80*Point,4),4), 14, "Impact",  DarkBlue); 
          ObjectCreate("Boda"+IntegerToString(i), OBJ_TEXT, 2, Time[i+4], 20); 
          ObjectSetText("Boda"+IntegerToString(i), "NDB3:"+DoubleToStr(NormalizeDouble(Low[i+1]-120*Point,4),4), 14, "Impact",  DarkBlue);   

 }
                                         
                     
 if (i>0 && ExtATRBuffer3[i+4]==EMPTY_VALUE && ExtATRBuffer3[i+3]==EMPTY_VALUE && 
 ExtATRBuffer3[i+1]<0 && ExtATRBuffer3[i+1]>-200 && High[i+2]-Low[i+2]<1100*Point && High[i+1]<iMA(symbol,0,17,0,MODE_SMA,PRICE_MEDIAN,i+1) ){ 
                     if (High[i+1]-Low[i+1]>1100*Point) ObjectCreate("Scalein"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+7], Close[i+1], Time[i+3], Close[i+1]-150*Point);  
                     else ObjectCreate("Scalein"+IntegerToString(i), OBJ_RECTANGLE, 0,  Time[i+7], Low[i+1], Time[i+3], Low[i+1]-150*Point);
                     ObjectSetInteger(0,"Scalein"+IntegerToString(i),OBJPROP_COLOR,clrGreen);
                     ObjectSet("Scalein"+IntegerToString(i),OBJPROP_BACK,0);
                     ObjectSet("Scalein"+IntegerToString(i),OBJPROP_WIDTH,5); 
                     
                     ObjectCreate("Scaleind"+IntegerToString(i), OBJ_TEXT, 0, Time[i+5], Low[i+1]+90*Point); 
          ObjectSetText("Scaleind"+IntegerToString(i), "x "+DoubleToStr(NormalizeDouble(Low[i+1]+100*Point,4),4), 19, "Impact",  DarkBlue); 
                     
                     }
                     


if (Period()==60){ 
   
  corr[i]=corr[i+1];
   corr2[i]=corr2[i+1];
   if (ExtATRBuffer4[i+6]!=EMPTY_VALUE) {corr[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,60,i))-1360*Point; corr2[i]=iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,60,i))-2100*Point;} 
   if (ExtATRBuffer5[i+6]!=EMPTY_VALUE) {corr[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,60,i))+1360*Point; corr2[i]=iLow(symbol,0,iLowest(symbol,0,MODE_LOW,60,i))+2100*Point;}
 }




}

deletetxt1("AverD");

int twodigits = NormalizeDouble(ExtATRBuffer2[0],0);

if (MathAbs(ExtATRBuffer[0])>ExtATRBuffer2[0]) twodigits = NormalizeDouble(MathAbs(ExtATRBuffer[0]),0);

//string tds = IntegerToString(twodigits);

int tens = round(twodigits/10);

int ones = twodigits-tens*10; 

string stens, sones;


switch(tens)
{
case  1:   stens=CharToStr(140);
        break;
case  2:   stens=CharToStr(141);
        break;
case  3:   stens=CharToStr(142);
        break;        
case  4:   stens=CharToStr(143);
        break;
case  5:   stens=CharToStr(144);
        break;
case  6:   stens=CharToStr(145);
        break;        
case  7:   stens=CharToStr(146);
        break;                
case  8:   stens=CharToStr(147);
        break;                        
case  9:   stens=CharToStr(148);
        break;                      
  default: stens=CharToStr(139);
      break;
  }
  
//deletetxt1("AverD");

switch(ones)
{
case  1:   sones=CharToStr(140);
        break;
case  2:   sones=CharToStr(141);
        break;
case  3:   sones=CharToStr(142);
        break;        
case  4:   sones=CharToStr(143);
        break;
case  5:   sones=CharToStr(144);
        break;
case  6:   sones=CharToStr(145);
        break;        
case  7:   sones=CharToStr(146);
        break;                
case  8:   sones=CharToStr(147);
        break;                        
case  9:   sones=CharToStr(148);
        break;                      
  default: sones=CharToStr(139);
      break;
  }

 
string jointstring=stens+sones;
ObjectCreate("AverD",OBJ_LABEL,indicator_window, 0,0);

ObjectSet("AverD",OBJPROP_CORNER,3);
    ObjectSet("AverD",OBJPROP_XDISTANCE,20);
  ObjectSet("AverD",OBJPROP_YDISTANCE,27);
  
ObjectSetText("AverD",jointstring,40,"Wingdings",DimGray);
if (twodigits>80)  ObjectSetText("AverD",jointstring,40,"Wingdings",Gold);  
if (twodigits>93)  ObjectSetText("AverD",jointstring,40,"Wingdings",DeepPink);  

    

deletetxt1("Crush");  
deletetxt1("Leap");  
deletetxt1("Grog"); 
deletetxt1("Countess");
deletetxt1("Missing");
deletetxt1("KAROLY");
  
int counter = 9;  
  
for(i=lookback; i>=0; i--){   

if (red[i+2]==true && red[i+1]==true && red[i]==false && Close[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)  ){
        if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3)>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3)
         && Close[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+1)
         && Open[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
         && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)
        )
            {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], High[i], Time[i], High[i]+370*Point);
            ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrRed );
            }
         else if(Close[i]<iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)
            && Close[i+2]>iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i+2)
         ) {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], High[i], Time[i], High[i]+370*Point);
          ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrRed );
         }
          else if (Close[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i) 
           && i>0 && RSI2[i-1]>80
          ) {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], Low[i], Time[i], Low[i]-370*Point);
         ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrGreen );
      }
      ObjectSet("TitusX"+IntegerToString(i), OBJPROP_WIDTH, 6 );
      ObjectSet("TitusX"+IntegerToString(i), OBJPROP_STYLE, 1 );
      ObjectSetInteger(0,"TitusX"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
}


if (orange[i+2]==true && orange[i+1]==true && orange[i]==false && orange[i+5]==false && Close[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) ){
        if (iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3)>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)-iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+3))
            {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], High[i], Time[i], High[i]+370*Point);
            ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrRed );
            }
         else if(Close[i]<iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)
         && Close[i+2]>iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i+2)
         ) {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], High[i], Time[i], High[i]+370*Point);
            ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrRed );
          }
          else {ObjectCreate(0,"TitusX"+IntegerToString(i),OBJ_TREND, 0, Time[i], Low[i], Time[i], Low[i]-370*Point);
         ObjectSet("TitusX"+IntegerToString(i), OBJPROP_COLOR, clrGreen );
      }
      ObjectSet("TitusX"+IntegerToString(i), OBJPROP_WIDTH, 6 );
      ObjectSet("TitusX"+IntegerToString(i), OBJPROP_STYLE, 1 );
      ObjectSetInteger(0,"TitusX"+IntegerToString(i), OBJPROP_RAY_RIGHT, false );
}





  if (counter>-1) counter++;
      if (( (ExtATRBuffer[i+7]<1.8 && ExtATRBuffer[i+6]<1.8  && ExtATRBuffer[i+5]<1.8 && ExtATRBuffer[i+4]<1.8 && ExtATRBuffer[i+3]<1.8 && ExtATRBuffer[i+2]<1.8 && ExtATRBuffer[i+1]>1.8 && ExtATRBuffer[i]<1.8) ||    
      (ExtATRBuffer[i+9]>1.1 && ExtATRBuffer[i+8]>1.1 && ExtATRBuffer[i+7]>1.1 && ExtATRBuffer[i+6]>1.1 && ExtATRBuffer[i+5]>1.1 && ExtATRBuffer[i+9]<2.1 && ExtATRBuffer[i+8]<2.1 && ExtATRBuffer[i+7]<2.1 && ExtATRBuffer[i+6]<2.1 && ExtATRBuffer[i+5]<2.1 && ExtATRBuffer[i+4]<2.1 && ExtATRBuffer[i+3]<2.1 && ExtATRBuffer[i+1]>2.1 && ExtATRBuffer[i]<2.1) ||
      (ExtATRBuffer[i+9]>1.1 && ExtATRBuffer[i+8]>1.1 && ExtATRBuffer[i+7]>1.1 && ExtATRBuffer[i+6]>1.1 && ExtATRBuffer[i+5]>1.1 && ExtATRBuffer[i+7]<2.4 && ExtATRBuffer[i+5]<2.4 && ExtATRBuffer[i+3]<2.4 && ExtATRBuffer[i+1]>2.4 && ExtATRBuffer[i]<2.4) ||  
       (ExtATRBuffer[i+5]<3 && ExtATRBuffer[i+3]<3 && ExtATRBuffer[i+1]>3 && ExtATRBuffer[i]<3) ||  (ExtATRBuffer[i+5]<3.6 && ExtATRBuffer[i+3]<3.6 && ExtATRBuffer[i+1]>3.6 && ExtATRBuffer[i]<3.6) ||  
       (ExtATRBuffer[i+5]<3.9 && ExtATRBuffer[i+3]<3.9 && ExtATRBuffer[i+1]>3.9 && ExtATRBuffer[i]<3.9) ||  
       (ExtATRBuffer[i+9]>1.1 && ExtATRBuffer[i+8]>1.1 && ExtATRBuffer[i+7]>1.1 && ExtATRBuffer[i+6]>1.1 && ExtATRBuffer[i+5]>1.1 && ExtATRBuffer[i+7]<valuetomonitor && ExtATRBuffer[i+5]<valuetomonitor && ExtATRBuffer[i+3]<valuetomonitor && ExtATRBuffer[i+1]>valuetomonitor && ExtATRBuffer[i]<valuetomonitor) ||  
       (ExtATRBuffer[i+3]<4.5 && ExtATRBuffer[i+1]>4.5 && ExtATRBuffer[i]<4.5) ||  (ExtATRBuffer[i+3]<5 && ExtATRBuffer[i+1]>5 && ExtATRBuffer[i]<5)) && ExtATRBuffer[i]>1.7 ) {
           
           
           if ((i<80 && Period()==240) || (Period()<240)){
             ObjectCreate("Crushi"+i,OBJ_TEXT, indicator_window, Time[i+2], ExtATRBuffer[i]);
            ObjectCreate("Crush"+i,OBJ_TEXT, indicator_window, Time[i+2], ExtATRBuffer[i]);
           ObjectCreate("Crushy"+i,OBJ_TEXT, indicator_window, Time[i+2], ExtATRBuffer[i]-1);
             ObjectCreate("Crushd"+i,OBJ_TEXT, indicator_window, Time[i+2], ExtATRBuffer[i]-1);
              
       
       if (Close[i]<iLo4[i] )  {ObjectSetText("Crushi"+i, "Vol Crush > ", 21, "Impact", clrWhite); ObjectSetText("Crush"+i, "Vol Crush -> ", 19, "Impact", clrNavy); ObjectSetText("Crushy"+i,DoubleToStr(NormalizeDouble(iHi4[i],4),4), 21, "Impact", clrWhite); ObjectSetText("Crushd"+i, DoubleToStr(NormalizeDouble(iHi4[i],4),4), 19, "Impact", clrNavy);   }
       
       else if (Close[i]>iHi4[i] ) { ObjectSetText("Crushi"+i, "Vol Crush > ", 21, "Impact", clrWhite); ObjectSetText("Crush"+i, "Vol Crush -> ", 19, "Impact", clrNavy);  ObjectSetText("Crushy"+i, DoubleToStr(NormalizeDouble(iLo4[i],4),4), 21, "Impact", clrWhite); ObjectSetText("Crushd"+i, DoubleToStr(NormalizeDouble(iLo4[i],4),4), 19, "Impact", clrNavy);  }
         
      }}      

      
      
           if (counter>0 && counter<4){
            if (ExtATRBuffer[i]<=2.5 || ExtATRBuffer[i]==EMPTY_VALUE) ObjectCreate("Countess"+i,OBJ_TEXT, indicator_window, Time[i], ExtATRBuffer[i+3]+.25);
            else ObjectCreate("Countess"+i,OBJ_TEXT, indicator_window, Time[i], 3.2);
               if (counter==3) ObjectSetText("Countess"+i, IntegerToString(counter,1,0), 19, "Arial Black", clrMagenta);
                 else ObjectSetText("Countess"+i, IntegerToString(counter,1,0), 19, "Arial Black", clrBlack);
               }
      
      
      if (counter==3 && Low[i+3]<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+3) && ((Low[i]>Low[i+3] && Low[i+1]>Low[i+3] && Low[i+2]>Low[i+3]) || (Low[i]>Low[i+4] && Low[i+1]>Low[i+4] && Low[i+2]>Low[i+4]))  ){
      //
     
        
        if (i>1) {
        
        j=i-1;
        
        while (j>0){
         if (Low[j]<iLow(symbol,240,iLowest(symbol,240,MODE_LOW,6,i+3))) break;
         j--;}
        
         if (j==0) {
               ObjectCreate("KAROLY"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+2], iLow(symbol,240,iLowest(symbol,240,MODE_LOW,6,i+3)) , Time[i], iLow(symbol,240,iLowest(symbol,240,MODE_LOW,6,i+3))-FSize/2*10*Point);
              ObjectSetInteger(0,"KAROLY"+DoubleToStr(i),OBJPROP_COLOR,indicator_color6);
        
        
         k=i+3;
         while (k<i+40){
            if (iFractals(symbol,240,MODE_LOWER,k) && Low[k]<iLow(symbol,240,iLowest(symbol,240,MODE_LOW,3,i))) break; 
            k++;
         }   
            
        
        if (k<i+40){
            ObjectCreate("Missingg"+i,OBJ_TEXT, indicator_window, Time[i+3], ExtATRBuffer[i+2]+.5);
        ObjectSetText("Missingg"+i, " Missing B: "+DoubleToStr(NormalizeDouble(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,7,i+1)),4),4), 16, "Arial Black", clrWhite);
        ObjectCreate("Missing"+i,OBJ_TEXT, indicator_window, Time[i+3], ExtATRBuffer[i+2]+.5);
        ObjectSetText("Missing"+i, "Missing B: "+DoubleToStr(NormalizeDouble(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,7,i+1)),4),4), 16, "Arial Black", clrBlack);
        
             ObjectDelete(0,"Trendex3_1"+DoubleToStr(k));
             ObjectCreate(0,"Trendex3_1"+DoubleToStr(k),OBJ_TREND,0,Time[k],Low[k],Time[iLowest(symbol,240,MODE_LOW,3,i)],iLow(symbol,240,iLowest(symbol,240,MODE_LOW,3,i)));
             ObjectSetInteger(0,"Trendex3_1"+DoubleToStr(k),OBJPROP_RAY_RIGHT,true);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_COLOR,indicator_color1);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_BACK,1);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_WIDTH,6); 
             ObjectDelete(0,"Trendex3_2"+DoubleToStr(k));
             ObjectCreate(0,"Trendex3_2"+DoubleToStr(k),OBJ_TREND,0,Time[k],Low[k],Time[iLowest(symbol,240,MODE_LOW,3,i)],iLow(symbol,240,iLowest(symbol,240,MODE_LOW,3,i)));
             ObjectSetInteger(0,"Trendex3_2"+DoubleToStr(k),OBJPROP_RAY_RIGHT,true);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_COLOR,indicator_color7);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_BACK,1);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_WIDTH,3); 
       
        }
        
        }
        }
      }
      
          if (counter==3 && High[i+3]>iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+3) && (( High[i]<High[i+3] && High[i+1]<High[i+3] && High[i+2]<High[i+3]) || (High[i]<High[i+4] && High[i+1]<High[i+4] && High[i+2]<High[i+4]))  ){
      //
         
        
        
         if (i>1) {
        
        j=i-1;
        
        while (j>0){
         if (High[j]>iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,6,i+3))) break;
         j--;}
        
         if (j==0) {
        
        
        ObjectCreate("KAROLY"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+2], iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,6,i+3)) , Time[i], iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,6,i+3))+FSize/2*10*Point);
         ObjectSetInteger(0,"KAROLY"+DoubleToStr(i),OBJPROP_COLOR,indicator_color6);
         
         
         k=i+3;
         while (k<i+40){
            if (iFractals(symbol,240,MODE_UPPER,k) && High[k]>iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,6,i+3))) break; 
            k++;
         }   
            
        
        if (k<i+40){
         ObjectCreate("Missingg"+i,OBJ_TEXT, indicator_window, Time[i+3], ExtATRBuffer[i+2]+.5);
        ObjectSetText("Missingg"+i, " Missing B: "+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,7,i+1)),4),4), 16, "Arial Black", clrWhite);
        ObjectCreate("Missing"+i,OBJ_TEXT, indicator_window, Time[i+3], ExtATRBuffer[i+2]+.5);
        ObjectSetText("Missing"+i, "Missing B: "+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,7,i+1)),4),4), 16, "Arial Black", clrBlack);
        
             ObjectDelete(0,"Trendex3_1"+DoubleToStr(k));
             ObjectCreate(0,"Trendex3_1"+DoubleToStr(k),OBJ_TREND,0,Time[k],Low[k],Time[iHighest(symbol,240,MODE_HIGH,3,i)],iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,3,i)));
             ObjectSetInteger(0,"Trendex3_1"+DoubleToStr(k),OBJPROP_RAY_RIGHT,true);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_COLOR,indicator_color5);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_BACK,1);
             ObjectSet("Trendex3_1"+DoubleToStr(k),OBJPROP_WIDTH,6); 
             ObjectDelete(0,"Trendex3_2"+DoubleToStr(k));
             ObjectCreate(0,"Trendex3_2"+DoubleToStr(k),OBJ_TREND,0,Time[k],Low[k],Time[iHighest(symbol,240,MODE_HIGH,3,i)],iHigh(symbol,240,iHighest(symbol,240,MODE_HIGH,3,i)));
             ObjectSetInteger(0,"Trendex3_2"+DoubleToStr(k),OBJPROP_RAY_RIGHT,true);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_COLOR,indicator_color7);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_BACK,1);
             ObjectSet("Trendex3_2"+DoubleToStr(k),OBJPROP_WIDTH,3); 
       
        } 
         
      } 
      
      }
     } 
    
      
}

double rou=0;
double rod=0;

if (Period()==30){
deletetxt1("Libec");

i=0;
while(i<10){
   if (High[i]-iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,i)>rou) rou=High[i]-iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,i);
   if (iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,i)-Low[i]>rod) rod=iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,i)-Low[i];
i++;
}

  ObjectCreate("Libec"+4,OBJ_LABEL,indicator_window, 0,0);
   ObjectSetText("Libec"+4, DoubleToStr(rou*10000,2)+" ("+DoubleToStr(iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,0)+rou,4)+")", 11, "Arial Black", DarkViolet);  
  ObjectSet("Libec"+4,OBJPROP_CORNER,2);
    ObjectSet("Libec"+4,OBJPROP_XDISTANCE,20);
  ObjectSet("Libec"+4,OBJPROP_YDISTANCE,67);
  if (rou>rod) ObjectSet("Libec"+4,OBJPROP_COLOR,clrDarkGreen);
  else if (rou<.0010) ObjectSet("Libec"+4,OBJPROP_COLOR,clrGray);
   else ObjectSet("Libec"+4,OBJPROP_COLOR,clrBlack);
  


  ObjectCreate("Libec"+5,OBJ_LABEL,indicator_window, 0,0);
   ObjectSetText("Libec"+5,DoubleToStr(rod*10000,2)+" ("+DoubleToStr(iMA(NULL,0,17,0,MODE_EMA, PRICE_MEDIAN,0)-rod,4)+")", 11, "Arial Black", DarkViolet);  
  ObjectSet("Libec"+5,OBJPROP_CORNER,2);
    ObjectSet("Libec"+5,OBJPROP_XDISTANCE,20);
  ObjectSet("Libec"+5,OBJPROP_YDISTANCE,47);
  if (rod>rou) ObjectSet("Libec"+5,OBJPROP_COLOR,clrCrimson); 
  else if (rod<.0010) ObjectSet("Libec"+5,OBJPROP_COLOR,clrGray);
   else ObjectSet("Libec"+5,OBJPROP_COLOR,clrBlack);

}


 ObjectCreate("Libec"+6,OBJ_LABEL,indicator_window, 2,0);
      ObjectSetText("Libec"+6,"Deployment on muted, capped side (30-x)",12,"Impact");
  ObjectSet("Libec"+6,OBJPROP_CORNER,1);
    ObjectSet("Libec"+6,OBJPROP_XDISTANCE,35);
  ObjectSet("Libec"+6,OBJPROP_YDISTANCE,87);
 ObjectSet("Libec"+6,OBJPROP_COLOR,clrTeal);

ObjectCreate("Libec"+7,OBJ_LABEL,indicator_window, 2,0);
      ObjectSetText("Libec"+7,"Adding on ZERO after D|",12,"Impact");
  ObjectSet("Libec"+7,OBJPROP_CORNER,1);
    ObjectSet("Libec"+7,OBJPROP_XDISTANCE,35);
  ObjectSet("Libec"+7,OBJPROP_YDISTANCE,107);
 ObjectSet("Libec"+7,OBJPROP_COLOR,clrTeal);


  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);
}  }

   double findAvg(int period, int shift) {
      double sum=0;
      for (int x=shift;x<(shift+period);x++) {     
         sum += High[x]-Low[x];
      }
      sum = sum/period;
      return (sum);
   }

W2 Down

Getting ourselves a way overdue W2.

The MA ribbon (W2 buy) is at 1.0341, the No Break Extension of the consolidation (fluctuation maximum away) is 1.0337. Pretty much there now. Weekly pivot at 1.0341.

There’s gonna be a powerful move coming out of this falling wedge.


Me, I’m Scratchy – I wrote it yesterday about an ex-coworker. The style is halfway between UB 40 and Level 42. Currently, I hold this one in the best 5 ever, which is something out of the 800+ songs I have. Seriously, listen in.

Capitulation Program

As it turns out I had the wrong flowchart.

Here’s a complete re-haul.

The steepest trap is a capitulation thrust, as people’s short term memory/fears will be keep on fading the return trapping themselves more and more.

If the pendulum swings outside the playfield a calibration~mean reversion gets kicked off.

The pendulum swings between the absolute limits.

Any wick that is 16 pips or longer towards the extreme print is a clue of squaring (i.e. the market maker dumping out excess load in line with the unfolding mean reversion).

Fading efforts of the return move to the 120SMA and the 207EMA would get run over. If these two levels get taken without a correction in between below the S30, the market may be in a parabolic mode, receiving constant charge at the upper BB, it can get as far as the FF level.

Next? The short squeeze provided some bull advantage, there is a chance to consolidate above the 80 line. If that happens, the likelihood that we saw the low for the year on the first trading day goes from very high to certain.

Since numerous hourly candles were completely outside the 30-sample BB, if a new leg were to start (drive), I would expect the price to come back to the 30 SMA at a minimum or optionally to the lower 30-sample BB, which is currently in the 1.025x range thanks to the volatility increasing push.

3rd F

As we discussed. The first F proves the presence of counter-directional volatility by blasting through the 100-pip stop.

The second F prompts a move that violates the 100-pip stop by a little.

The third F puts the price over the 100-pip stop for good after going beyond 1 and 2.

However, an F needs the ink to dry. The next 3 days would all have to stay above the low made. 2 more days to go. The #3 on the upside received 2 scares, one fell shy by 10, the other by 4.5 pips (on day 2 and day 3 namely).


#47 kicks off the new year