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