x0 Time Out

I adddd 1 filter to the x0, which is 40 hours of failing to get ti the upper Safety Line (2.8).

It looks to me that the market is about to fail the purple trendline just below the 2.8.

I’ll try to scale into a full hedge by 1.0685 and double down on the shorts at 1.0610 targeting 1.0565.

It is quite possible that the bow has 3 more days to go, as the Embedding prevails.

Other: I have dusted off an older poem of mine and tried Suno for the first time.

My Autumn + AI music

Take A Bow

I might be pioneering something here – wouldn’t be the first time.

A connection between stochastic embedding, a counter and statistics – can tell you with great probability if price is in a bow, so you get to fade the move starting F1++ to an F3- for an LL, HH or an LL/HH attempt.

The count is usually 3 or 6. That’s your stats. 8 or larger = show must go on.

Filtering away

for(i=200; i>=0; i--){

if (bupcounter>0) bupcounter++;
if (bdncounter>0) bdncounter++;

///counter starts  
   if (Low[i+2]>Low[i+1] && Low[i+1]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i+1)-FMax*2.8*10*Point && Low[i]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)-FMax*2.8*10*Point )
   bupcounter=1;
 
   if ((High[i+1]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i+1)+FMax*2.8*10*Point || High[i+2]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i+2)+FMax*2.8*10*Point  || High[i+3]>iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i+3)+FMax*2.8*10*Point)
   &&
   High[i+2]<High[i+1] && High[i]<High[i+1]+20*Point && High[i]<iMA(symbol,0,9,0,MODE_EMA, PRICE_MEDIAN,i)+FMax*2.8*10*Point )
   bdncounter=1;

//stochastic lost
   if (!(iStochastic(symbol,1440,18,3,3,MODE_SMA,0,MODE_SIGNAL,i+2)<26 && iStochastic(symbol,1440,18,3,3,MODE_SMA,0,MODE_MAIN,i+2)<26)) 
   bupcounter=0;   

   if (!(iStochastic(symbol,1440,18,3,3,MODE_SMA,0,MODE_SIGNAL,i)>73 && iStochastic(symbol,1440,18,3,3,MODE_SMA,0,MODE_MAIN,i)>73)) 
   bdncounter=0;

///x-sample NL / NH reset

   if (i>0 && Low[i-1]>Low[i] && bupcounter>=3 && Low[i+1]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,i+1))) bupcounter=0;    

   if (i>0 && High[i-1]<High[i] && bdncounter>=3 && High[i+1]==iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,3,i+1))) bdncounter=0;    
   

if (bupcounter>0){   
   ObjectCreate("Punto"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+310*Point); 
   ObjectSetText("Punto"+IntegerToString(i), IntegerToString(bupcounter), 21, "Impact", Purple);
}

if (bdncounter>0){   
   ObjectCreate("Punto"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-70*Point); 
   ObjectSetText("Punto"+IntegerToString(i), IntegerToString(bdncounter), 21, "Impact", Purple);
}

Yea, no wouldn’t try to short this til the S-356 at least.

…the development can’t stop, won’t stop.

Limited Time Coffer

The market is in a weak uptrend right now, but if it does not get to the upper Safety Line within 48 hours, it will flip back into a strong downtrend.

It’s got till 12AM GMT. If the Safety will be popped by then, the uptrend shall remain in place without a time limit.

I’m telling you this to show that time, time outs are a crucial part of changes.

The vertical green was the first hour.

Once the Safety is popped the stumbling point is 34 pips higher from where the encounter would take place. 1.0694 is a good likelihood. The ultimate resistance is the hourly S-356, and Full Discharges around it would be a death sentence for bulls. The only way to clear that obstacle would be price coming back below the Safety line in a regressive manner (i.e. a volatility keel back) – at about 10% odds.

The S-356 is going to be at 1.0750 soon. A left shoulder could print in its neighbourhood (the thick part of the brown) and two more tries could follow with a dip in between that would miss the lower Safety line by 5-10 pips.

Ounces Of Nuances #3

They brought some broken furniture from the multi faith room today. A female coworker asked: what did they do to this? To which I responded: they prayed the shit out of it.

First a little practical application of Nick Rhodes.

When a withe stochastic value prints below 5 in the magenta box, thag is unsustainble. Since they daily stochastic has not embedded yet, by the daily close the stochastic reading must be higher.

i.e..:

In the white you accumulate.

In the blue you can start to cover.

I wrote the filter for the x0 flip back down, but to be fair I do not know why it works so well. There should be 100 #2 prints in the array, yet I’m sure it is not the case when it flips.

if (fd[i+1]==2 && fd[i+1]==fd[i+2]==fd[i+3]==fd[i+4]==fd[i+5]==fd[i+6]==fd[i+7]==fd[i+8]==fd[i+9]==fd[i+10]
               ==fd[i+11]==fd[i+12]==fd[i+13]==fd[i+14]==fd[i+15]==fd[i+16]==fd[i+17]==fd[i+18]==fd[i+19]==fd[i+20]
               ==fd[i+21]==fd[i+22]==fd[i+23]==fd[i+24]==fd[i+25]==fd[i+26]==fd[i+27]==fd[i+28]==fd[i+29]==fd[i+30]
               ==fd[i+31]==fd[i+32]==fd[i+33]==fd[i+34]==fd[i+35]==fd[i+36]==fd[i+37]==fd[i+38]==fd[i+39]==fd[i+40]
               ==fd[i+41]==fd[i+42]==fd[i+43]==fd[i+44]==fd[i+45]==fd[i+46]==fd[i+47]==fd[i+48]==fd[i+49]==fd[i+50]
               ==fd[i+51]==fd[i+52]==fd[i+53]==fd[i+54]==fd[i+55]==fd[i+56]==fd[i+57]==fd[i+58]==fd[i+59]==fd[i+60]
               ==fd[i+61]==fd[i+62]==fd[i+63]==fd[i+64]==fd[i+65]==fd[i+66]==fd[i+67]==fd[i+68]==fd[i+69]==fd[i+70]
               ==fd[i+71]==fd[i+72]==fd[i+73]==fd[i+74]==fd[i+75]==fd[i+76]==fd[i+77]==fd[i+78]==fd[i+79]==fd[i+80]
               ==fd[i+81]==fd[i+82]==fd[i+83]==fd[i+84]==fd[i+85]==fd[i+86]==fd[i+87]==fd[i+88]==fd[i+89]==fd[i+90]
               ==fd[i+91]==fd[i+92]==fd[i+93]==fd[i+94]==fd[i+95]==fd[i+96]==fd[i+97]==fd[i+98]==fd[i+99]==fd[i+100]
              ) { 
               fd[i]=0; dir[i]=-1;
               ObjectCreate("Tall"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-40*Point); 
                     ObjectSetText("Tall"+IntegerToString(i), "x"+IntegerToString(fd[i]), 26, "Impact", Cyan);
               }
 

The last subtle total eclipse is the move up of the bumper line.

As a reminder, it is a 4H 200-sample low / high displacement by 100 pips. Most tradeable lows / highs print outside this line, and they get a shaded powder box. I have been talking about the market having to go below 1.06 – and the reason was the bumper line, but it just moved up a bit and crossed the last 4H candle. 1.0613 happens to be the weekly S2 as well.

Since we are getting a well formed bottom, I would expect the market to come back beyond the Daily E-9, into the mud before the S-356 (hourly).

The width being 30.8 is greater than 27 pips, therefore the shaded area appears as a resistance zone, and most likely the continuation point would land in it before the H2 leg down.

Stylishly, Bon Jovi’s Keep The Multifaith for closing.

I took this picture during an eclipse. I was driving through California, did not know it was going to happen. Everybody pulled over, the temperature dropped like 20 degrees.

This one was another eclipse with double shadows @ my workplace in Berkeley.

What’s Gonna Work?

No one knows what will happen next.

Hoewer, here are my clues.

I thought we would see a Big Bow Wow, 3-7 days long and make a lower low then.

We ended up getting a Little Bow Wow, a 3x failure at Crack 4 / F1 (yellows).

My preferred route here would be a liquidity break up that is 1 or 2 days long max (93-110 pips up).

…before a lower low with a Big Bow Wow.

This is just a new Measuring leg. The Municipal channel would be an excellent place to go short.

Currently descending below the trendline at 1.0714.

There was a partial, a full discharge and a Point of No Return has printed as well. A serious stumbling block.

This looks like a support to me. Next weekly level down would be 1.0547.

We could touch the lower guard rail at 1.0715 or a bit beyond, but stay below the E9 (Green River) before turning back down.

The slower the move up would be, the lower this could tag on the downside. Probably a 3.5-4x stretch to set up the divergence.

This is Hump 2, there will be a Hump 3.

The level of interest yet again & rap references.

Weekly S3 is at 1.0527

Bring The Bow Back

Two things.

One is the coda at the end of a complex wave.

The yellow bows, that usually result in a higher high / lower low after a bow with F2 to F3– counter directional volatility at the peak of the arch are to toll on the ringer.

The second thing is the divergence I talked about is relative to the consolidation mean (as opposed to the E-9) to spot a reversal. This is difficult to measure for a number of reasons: due to the change in the 3-day ATR which is one factor, and also the multi timeframe nature of looking for the consolidation mean on a 15 min metric and charting on the 1 hour.

I went with red ovals (14 pips VS 11 pips) and as a bonus added a diamond substitute for the consolidation tying them together.

An F2 bow back could bend price to 1.0682+ before making the lower low around 1.06.

Prep-Scholes

aka Quantomas.

You’re living in potholes, you’ve got to come to know the truth. This is not it, then what is it?

Here’s where Veri Confusium makes a connection between Jim Simons and the Black-Scholes model.

To my knowledge the Medallion Fund does not engage in a lot of options trading.

The Black-Scholes model was so good, that when Jelcin decided on not paying back the debt, LTCM was loosing hundreds of millions of dollars per day.

Jim Simons is a Mathematician known for the invention of the Chern-Simons forms that deal with 3D geometric shapes.

He recruited an army of PHDs and successfully implemented Markov models to grnerate 66% average yearly returns trading various markets.

Achilles Dent / Macdulio / Gábor Szentes is a poet with some programming skills.

He successfully invented and applied his own market models, coded automated rouitnes that could generate 358,000% plus returns in a 2-year span. No one ever gave a hoot about him.

I believe that the right associations worth more -even in trading – than all the algebra in the world. No other conclusions.

Turbo charging your future

My Municipal Trader / Longs Only run from 10/22 to today with allowance up to 2000 lots:

…down to fluoride-free toothpaste now.

The questions that I have to be facing right now headed down the path of hybrid trading are:

– how much better spread would I get with a PRO ECN account

– how do I make my Windows 11 Home restart proof, or do I have to burden my old Windows 7 Pro comp with having to run the two auto trading routines on top of the trail stop / targeter EA as well as 3 different hedger routines?

I have been waiting for this day to close out all positions since the first of November. Yesterday I made a mistake and today I escalated the problem, so now I’m stuck for however much longer. On the plus side I managed to pay off two personal loans and two credit cards and put aside holiday budget for 2024 thanks to this year’s good trading results.

Volatility Unhinged

What happens when evrn the gray volatility box gets exceeded?

Well, the above image shows already the divergent leg, but there was an even larger beat with the first, measuring leg. Below are the two locations where CI went fishing barring from a consolidation.

The reversal divergence is setting up using the distance from the last consolidation mean, and my ruler is there to help.

The start of the gray box is the 3-day ATR times 1.3, the end of the box is 20 pips lower.

Between the two legs there was a crack 4 (F1 pullback), so I would expect the next break to achieve a crack 5 (F2 – 62 pips up from the nrw swing low) at a minimum, arrow again. S2 would hold by the close.

Back testing the prior channel

Did I say 4-4.5x stretch from the mean next?

Bingo.

The Weekly S2 is at 1.0633

…RSI enough to turn.

…4.25x strongest stretch.

CounterForce 52 Hijacked

CF52 has lost its original identity, so I got to repurpose it for wave tracking for the daily chart.

You know, as E.W. always talks about the 6th and the 7th wave for a impulse move. Just kidding, never does that.

In the previous example when a liquidity break’s TO leg was violated / topped, it was by 14 pips or so (for futrure stop loss displacement).

Today’s beat was 8 pips or so.

I think you will see 3 Fs on the downside next. Why? Because the up move has zero-ed the counter (I have a way to check this).

I don’t know what to say about Michael Silva’s bookmap 5300 calls gathering SPX print, other than that the Dollar is set to rally, and SPX may or may not decide to pay these people.

Curious what that wave structure up was? Here it is in red. An ABC. A correction. Does that help a little with the direction of progression?


Listen to Teir-A-formation by Fabien Royer on #SoundCloud
https://on.soundcloud.com/m5hhn

Listen to Silicon Heaven by Allister Brimble on #SoundCloud
https://on.soundcloud.com/GCnZ6


#property copyright "Copyright © 2022, Macdulio" 
#property link      "https://forexfore.blog" 
#property description "V1.0"
#property description "Counter Force 52"
#property description "4-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 = 4;
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[];

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);
   
  // SetIndexBuffer(5,squeeze);
 //  SetIndexStyle(5,DRAW_ARROW,EMPTY,18,indicator_color5);
//SetIndexBuffer(1,squeeze);
//   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,4,indicator_color5);

 //  SetIndexArrow(5,100);
  // SetIndexEmptyValue(5,0.0);
   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);  
    
   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");

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);
      }
     
      
      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);
      }
      
       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);
      }
 
 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;
// if (ExtATRBuffer[i]<-61 && ExtATRBuffer[i]>-68) ExtATRBuffer4[i]=ExtATRBuffer[i];
 //else if (ExtATRBuffer2[i]>61 && ExtATRBuffer2[i]<68) ExtATRBuffer4[i]=ExtATRBuffer2[i]; 
 if (ExtATRBuffer[i]<-91) ExtATRBuffer3[i]=ExtATRBuffer[i];
 else if (ExtATRBuffer2[i]>91) ExtATRBuffer3[i]=ExtATRBuffer2[i]; 
 

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;

//Print("tens=",tens);
//Print("ones=",ones);


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;

//if (Close[0]>plus[0] && buy[1]) jointstring=jointstring+CharToStr(66);
//else if (Close[0]>plus[0] && sell[1]) jointstring=jointstring+CharToStr(73);

//if (Close[0]<minus[0] && sell[1]) jointstring=jointstring+CharToStr(66);
//else if (Close[0]<minus[0] && buy[1]) jointstring=jointstring+CharToStr(73);

  //    ObjectCreate("AverD", OBJ_TEXT, indicator_window, Time[16], 1); 

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>30)  ObjectSetText("AverD",jointstring,40,"Wingdings",Yellow);  
if (twodigits>58)  ObjectSetText("AverD",jointstring,40,"Wingdings",DeepPink);  

    

deletetxt1("Crush");  
deletetxt1("Leap");  
deletetxt1("Frog"); 
deletetxt1("Countess");
deletetxt1("Missing");
deletetxt1("KAROLY");
  
int counter = 9;  
  
for(i=lookback; i>=0; i--){   
  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 (ExtATRBuffer[i]-ExtATRBuffer[i+4]>1 && !(ExtATRBuffer[i+1]-ExtATRBuffer[i+5]>1) && Period()!=240){   
    //        ObjectCreate("Leap"+i,OBJ_TEXT, indicator_window, Time[i], ExtATRBuffer[i]-0.5);
    //        ObjectSetText("Leap"+i, "+1", 19, "Impact", clrWhite);  
    //  }
     
    //   if (ExtATRBuffer[i+4]-ExtATRBuffer[i]>1 && !(ExtATRBuffer[i+5]-ExtATRBuffer[i+1]>1 ) && Period()!=240){   
   //         ObjectCreate("Leap"+i,OBJ_TEXT, indicator_window, Time[i], ExtATRBuffer[i+4]-0.5);
   //         ObjectSetText("Leap"+i, "-1", 19, "Impact", clrWhite);  
   //   } 
      
      
 //     if (Period()==240 
      
      //&& ExtATRBuffer[i+4]>ExtATRBuffer[i+3]-1 
 //    && ExtATRBuffer[i+5]<ExtATRBuffer[i+3] && ((ExtATRBuffer[i+6]<ExtATRBuffer[i+3] 
 //     && ExtATRBuffer[i+7]<ExtATRBuffer[i+3] && ExtATRBuffer[i+8]<ExtATRBuffer[i+3]
      
  //    )  ||   (ExtATRBuffer[i+7]==EMPTY_VALUE || ExtATRBuffer[i+6]==EMPTY_VALUE || ExtATRBuffer[i+8]==EMPTY_VALUE ))
    //  
 //     && ExtATRBuffer[i+4]<ExtATRBuffer[i+3] && ExtATRBuffer[i+3]>ExtATRBuffer[i+2] && ExtATRBuffer[i+2]>ExtATRBuffer[i+1] && ExtATRBuffer[i+1]>ExtATRBuffer[i] && ExtATRBuffer[i+2]>1 &&  ExtATRBuffer[i+1]>1 && ExtATRBuffer[i+3]!=EMPTY_VALUE && ExtATRBuffer[i+2]!=EMPTY_VALUE && ExtATRBuffer[i+1]!=EMPTY_VALUE && ExtATRBuffer[i]!=EMPTY_VALUE){
      
          
          
    //       if (ExtATRBuffer[i+3]-ExtATRBuffer[i]>1.6) { ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+3],ExtATRBuffer[i+3]+0.8,Time[i],ExtATRBuffer[i]+0.8); ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color5);}
   //      else {ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+3],ExtATRBuffer[i+3]+0.2,Time[i],ExtATRBuffer[i]+0.2);
   //        ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color4);  counter=0;}
    //       ObjectSetInteger(0,"Frog"+i,OBJPROP_RAY_RIGHT,false);
    //     ObjectSet("Frog"+i,OBJPROP_WIDTH,8); 
     //    ObjectSet("Frog"+i,OBJPROP_BACK,1); 
         
       
  //    }
      
      
  //    else  if (Period()==240 
          
  //    && ExtATRBuffer[i+6]<ExtATRBuffer[i+3] 
      //&& ExtATRBuffer[i+5]<ExtATRBuffer[i+3] 
  //     && ExtATRBuffer[i+7]<ExtATRBuffer[i+3] && ExtATRBuffer[i+8]<ExtATRBuffer[i+3]
      
 //     && ExtATRBuffer[i+4]>ExtATRBuffer[i+1] && 
 //     ExtATRBuffer[i+2]>ExtATRBuffer[i+1] && ExtATRBuffer[i+1]>ExtATRBuffer[i] && ExtATRBuffer[i+2]>1 &&  ExtATRBuffer[i+1]>1 && ExtATRBuffer[i+3]!=EMPTY_VALUE && ExtATRBuffer[i+2]!=EMPTY_VALUE && ExtATRBuffer[i+1]!=EMPTY_VALUE && ExtATRBuffer[i]!=EMPTY_VALUE && ExtATRBuffer[i+4]!=EMPTY_VALUE){
      
          
          
       //   if (ExtATRBuffer[i+4]-ExtATRBuffer[i]>1.5) {   ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+4],ExtATRBuffer[i+4]+0.8,Time[i],ExtATRBuffer[i]+0.8); ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color5);}
       //   else {ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+4],ExtATRBuffer[i+4]+0.2,Time[i],ExtATRBuffer[i]+0.2);
        //   ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color4);  counter=0;}
      //     ObjectSetInteger(0,"Frog"+i,OBJPROP_RAY_RIGHT,false);
      //  ObjectSet("Frog"+i,OBJPROP_WIDTH,8); 
     //    ObjectSet("Frog"+i,OBJPROP_BACK,1); 
     
    //  counter=0;
   //   } 
      
      
   //    else   if (Period()==240 
      
      //&& ExtATRBuffer[i+4]>ExtATRBuffer[i+3]-1 
   //   && ExtATRBuffer[i]<3.1
      //&& ExtATRBuffer[i]>1.6
      
  //    && ExtATRBuffer[i+5]<ExtATRBuffer[i+3] && ((ExtATRBuffer[i+6]<ExtATRBuffer[i+3] && ExtATRBuffer[i+7]<ExtATRBuffer[i+3] && ExtATRBuffer[i+8]<ExtATRBuffer[i+3])  ||   (ExtATRBuffer[i+7]==EMPTY_VALUE || ExtATRBuffer[i+6]==EMPTY_VALUE || ExtATRBuffer[i+8]==EMPTY_VALUE ))
      
  //    && ExtATRBuffer[i+2]>ExtATRBuffer[i+1] && ExtATRBuffer[i+1]>ExtATRBuffer[i] && ExtATRBuffer[i+2]>1 &&  ExtATRBuffer[i+1]>1 && ExtATRBuffer[i+3]!=EMPTY_VALUE && ExtATRBuffer[i+2]!=EMPTY_VALUE && ExtATRBuffer[i+1]!=EMPTY_VALUE && ExtATRBuffer[i]!=EMPTY_VALUE){
      
        
          
   //        if (ExtATRBuffer[i+2]-ExtATRBuffer[i]>1.8)  {ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+2],ExtATRBuffer[i+2]+0.8,Time[i],ExtATRBuffer[i]+0.8); ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color5);}
 //       else {  ObjectCreate(0,"Frog"+i,OBJ_TREND,indicator_window,Time[i+2],ExtATRBuffer[i+2]+0.2,Time[i],ExtATRBuffer[i]+0.2);
    //       ObjectSet("Frog"+i,OBJPROP_COLOR,indicator_color4);  counter=0;}
      //     ObjectSetInteger(0,"Frog"+i,OBJPROP_RAY_RIGHT,false);
     //    ObjectSet("Frog"+i,OBJPROP_WIDTH,8); 
     //    ObjectSet("Frog"+i,OBJPROP_BACK,1); 
      
  //    counter = 0;
  //    }
      
      
           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,1, 0,0);
// ObjectSetText("Libec"+6, "W2", 41, "Arial Black", Violet);  
// ObjectSet("Libec"+6,OBJPROP_CORNER,3);
// ObjectSet("Libec"+6,OBJPROP_XDISTANCE,20);
// ObjectSet("Libec"+6,OBJPROP_YDISTANCE,67);
// ObjectSet("Libec"+6,OBJPROP_BACK,1);


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

Answer This?

A liquidity break is a round-trip ticket.

Let’s mark up first the To legs with a thick line. They must exceed 93 pips in length.

What can be said about the From legs? They engulf the entire To trip and do so within 2 days.



////looking for liquidity breaks "/\"
if (i>2 && Low[i]<Low[i+1] && Low[i]<Low[i+3] && Low[i]<Low[i-1])
{
  j=i-2;  
  if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j))-Low[i]>930*Point  && High[j-1]<High[j]){ 
         ObjectCreate("Liquidityx"+i,OBJ_TREND,0,Time[i],Low[i],Time[iHighest(symbol,0,MODE_HIGH,2,j)],iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j)));
         ObjectSetInteger(0,"Liquidityx"+i,OBJPROP_RAY_RIGHT,false);
         ObjectSet("Liquidityx"+i,OBJPROP_COLOR,clrMediumSlateBlue);
         ObjectSet("Liquidityx"+i,OBJPROP_WIDTH,9); 
         ObjectSet("Liquidityx"+i,OBJPROP_BACK,1); 
         
  
   if ((j>=1 && Low[j-1]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,j-1))) || (j>=2 && Low[j-2]==iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,j-2)))){ 
     if (j>=1) k=j-1;    
         if (Low[k+1]<Low[i]) ObjectCreate("Liquidityy"+j,OBJ_TREND,0,Time[iHighest(symbol,0,MODE_HIGH,2,j)],iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j)),Time[iLowest(symbol,0,MODE_LOW,2,k+1)],iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,k)));
         else ObjectCreate("Liquidityy"+j,OBJ_TREND,0,Time[iHighest(symbol,0,MODE_HIGH,2,j)],iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,j)),Time[iLowest(symbol,0,MODE_LOW,2,k)],iLow(symbol,0,iLowest(symbol,0,MODE_LOW,5,k)));
         ObjectSetInteger(0,"Liquidityy"+j,OBJPROP_RAY_RIGHT,false);
         ObjectSet("Liquidityy"+j,OBJPROP_COLOR,clrMediumSlateBlue);
         ObjectSet("Liquidityy"+j,OBJPROP_WIDTH,6); 
         ObjectSet("Liquidityy"+j,OBJPROP_BACK,1); 
         }
         
    }     
}

What is the point of all this?

First of all, the liquidity break hammers out a swing point that is a safe shileld for a stop loss.

Normally a liquidity break is a refresher for the next leg down, a trap if you will. 3 of these and the low is uttely close (38 pips in the example above past the starting point of the last liqudity break).

At the same time, you know that the market is struggling to make headway if the breaks are overlapping. In the first example, after the second liquidity round trip, there was only an additional 27 pips left to be had on the downside from the low new lower low.