Before Trump 2.0

A liquidity break has finished (red line). A lower low is guaranteed. The Bollinger Bands are starting to compress (volatility will trend down – green vertical marker).

The market maker is a net short here. The thick red was the squaring of long holdings.

The week is closing more than 91 pips up, so technically a swing low is in place until the low gets taken out again.

Suggestion? Follow the market maker’s hand.

//squaring shorts - going  up - BB #2
if (Close[i]<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) && Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)
)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], Low[i] , Time[i], Low[i]-60*Point);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrGreen);
             if (i>0){
                     ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, iLow(symbol,0,iLowest(symbol,0,MODE_LOW,2,i-1)));
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);}
}


//squaring shorts - going  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);
              if (Low[i]<Low[i+1]){
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, Low[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);}              
}


//squaring shorts - up - lower BB
if (Close[i]-Low[i]>80*Point && Open[i]-Low[i]>80*Point
   && ((Low[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2) && 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) && Low[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2))&& Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i))
)
{
 ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+1], Close[i]-100*Point , Time[i], Close[i]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrGreen);
              if (Low[i]<Low[i+1]){
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, Close[i]-60*Point);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);}              
}


//squaring shorts - going  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);
              ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, Low[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
}


//squaring longs - going  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);
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, High[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
}

//squaring longs - going down - BB miss
if (High[i]-Close[i]>60*Point && High[i]-Open[i]>60*Point 
&& High[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i) 
&& High[i+1]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1) 
&& High[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-100*Point 
&& High[i+1]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)-100*Point 
&& Low[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+3)-100*Point

//&& 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]);
             
              if (i>0 && High[i-1]>High[i]) 
              {ObjectDelete("KAROLYIII"+DoubleToStr(i));
              ObjectCreate("KAROLYIII"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i], Low[i-1] , Time[i-1], Open[i-1]);
              ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrGreen);
              ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, Low[i-1]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
              }
              else {
               ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrRed);
               if (Low[i+3]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i+3)) ObjectSetInteger(0,"KAROLYIII"+DoubleToStr(i),OBJPROP_COLOR,clrMaroon);
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, High[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
                     }
}



//squaring longs - going  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);
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, High[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);

}



//squaring longs - going  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);
               ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, High[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
}

Left or right?
Stage or fright?
...
(There's a Junipero cherry for everyone!)

(There's a Junipero cherry for everyone!)
...

...
More geld than Marian

More domesticated than a Martian

Tramp stamp, Trump assassination

Afternoons in homophobia

(But what can you do
when you are
big in Upton On Avon?)

But what can you do
When you are Hooked on Alphaville
But what can you do
Doped to the max

How can anyone live in Germany?

(There's a Junipero cherry for everyone)

(There's a Junipero cherry for everyone)

Walking in the rain...

Dancing on the ceiling...

What a feeling...

And right after

A big breakfast at Tiffany's

My Ivory Flower,

(There's a Junipero cherry for everyone)

(There's a Junipero cherry somewhere)

Up

The filters I wrote pick up this 3-hour selling as a short squaring.

This is a fluctuation maximum (46 pips) from one side to the other side without moving the consolidation range. This move could be a Wave 2 down or a Wave B down. Either way, more upside beyond the high that was made today looks to be in the cards.

//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);
              ObjectCreate("Pipper"+IntegerToString(i), OBJ_HLINE, 0,  0, Low[i]);
                     ObjectSetInteger(0,"Pipper"+IntegerToString(i),OBJPROP_COLOR,clrGoldenrod);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_BACK,1);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
                     ObjectSet("Pipper"+IntegerToString(i),OBJPROP_WIDTH,5);
}

As for the CPI I knew that the Market Makers were wrong, see the green squarings prior, and also there were 3 false starts on the MFI/RSI2 combo, so I told my coworker that the upside was “prepped”, and this was going to rally.

Buy 6 pips below the black candle’s close (1.0280) and add more if it moves lower for up to 16 pips.

The next three reactive lines are at 1.0381 and 1.04045 and 1.04337. Any of these could & should see a 25-pip counter move at least, but trail to be prudent.

Next Level

The difficulty is trading the USD currently.

The F3 got voided again, this time by making a lower low.

The current F has no hope of being upgraded to an F3 since it registered deep oversold on the Daily RSI2.

if (i>0 && Low[i]<Low[i-1] && 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); 

Meanwhile, the BB width is still expanding. There should be a move back up to the 100-pip stop next.

The orange plotted line splits the difference between the 8 and 16 EMAs.

The idea is to sell it if the market is in a channeling mode like it was for 2 days.

(iMA(symbol,0,8,0,MODE_EMA,PRICE_MEDIAN,i)+iMA(symbol,0,16,0,MODE_EMA,PRICE_MEDIAN,i))/2

The 2-hour thrust down took the price to the support level relative to the consolidation mean, 37 pips away (a no-break extension).

The next move should be a lift and square: a candle breaking above the 30 SMA and a consecutive candle with a 16+ pips wick on the bottom of it. Wherever that candle closes, 6-16 below would be the hot area to go long.

I expect to see a liquidity break, a rally at least 2 days long which would tackle the upper BB30 three times in a row. The 9-day EMA seems totally attainable in the coming days.

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