The OliveDrab is the subject.
The first hit is a fade, good for 50-57 pips. The second hit can be a slider, a Wave 3.
In plain English 15 pips outside the 60-sample BB HL2.


The current strength would imply a full 5-wave move – this is a Wave 2 up.
I left the continuation divergence plots in as an Xmas present.
#property copyright "Copyright © 2023, Macdulio"
#property link "forexfore.blog"
#property description "Bouncer"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color7 Crimson
#property indicator_color8 Yellow
#property indicator_color9 Tan
extern int lookback = 300;
extern bool plot_divergences = true;
extern int linethickness = 6;
extern int sample = 8;
extern int fontsize = 14;
double BBUP[],BBDM[];
double ATRA, ATRAVG[], RSI2[], stoch[];
datetime UpFractalTime_1,LowFractalTime_1,UpFractalTime_2,LowFractalTime_2,LowFractalTime_3,LowFractalTime_4, UFT2, LFT2;
int init()
{
SetIndexBuffer(0,BBUP);
SetIndexStyle(0,DRAW_LINE,4,3,clrOliveDrab);
SetIndexBuffer(1,BBDM);
SetIndexStyle(1,DRAW_LINE,4,3,clrOliveDrab);
return(0);
}
int start()
{
string symbol = Symbol();
int i,i2,j,j2;
ArrayResize(BBUP, Bars);
ArrayInitialize(BBUP, EMPTY_VALUE);
ArrayResize(BBDM, Bars);
ArrayInitialize(BBDM, EMPTY_VALUE);
ArrayResize(RSI2, Bars);
ArrayInitialize(RSI2, EMPTY_VALUE);
ArrayResize(stoch, Bars);
ArrayInitialize(stoch, EMPTY_VALUE);
//--------------------------------------------------------------------
ATRA = 0;
for (i=1; i<=3; i++){
ATRA = ATRA+iATR(NULL,1440,14,i);}
for (i=0; i<=160; i++){
ATRAVG[i] = ATRA/3; }
for(i=Bars-60; i>=0; i--){
stoch[i]=iStochastic(symbol,0,9,3,3,MODE_SMA,0,MODE_SIGNAL,i);
RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
}
for (i = lookback ; i >=0; i--) {
if (High[i]>iBands(symbol,30,60,2,0,PRICE_MEDIAN,MODE_UPPER,i)) BBUP[i]=iBands(symbol,30,60,2,0,PRICE_MEDIAN,MODE_UPPER,i)+150*Point;
if (Low[i]<iBands(symbol,30,60,2,0,PRICE_MEDIAN,MODE_LOWER,i)) BBDM[i]=iBands(symbol,30,60,2,0,PRICE_MEDIAN,MODE_LOWER,i)-150*Point;
}
if (plot_divergences) {
deletetxt1("lxr");
deletetxt1("BUNA3");
deletetxt1("LUNA3");
deletetxt1("GUNA");
deletetxt1("QUNA");
deletetxt1("PUNA3");
deletetxt1("PUNA4");
deletetxt1("HUNA3");
deletetxt1("DUNA3");
deletetxt1("jxr");
deletetxt1("_UNA3");
deletetxt1("ZUNA3");
deletetxt1("Real");
deletetxt1("lxr");
deletetxt1("lxl");
deletetxt1("Hei");
deletetxt1("ouna");
deletetxt1("Ellipse");
j2=1;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+16){
if (RSI2[j2]<RSI2[j] && iFractals(Symbol(),0,MODE_LOWER,j) ) break;
//&& Low[j2]>=Low[j]+10*Point
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && RSI2[j2]<RSI2[j] && Low[j2]>=Low[j]-10*Point ) break;
//&& Low[j2]>=Low[j]-10*Point
j2++;}
if (j2<500 && Low[j2]>=Low[j]-10*Point) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
if (j<500 && j<j2+16) {ObjectDelete(0,"BUNA3_2");
ObjectCreate(0,"BUNA3_2",OBJ_TREND,0,LowFractalTime_1,Low[j],LowFractalTime_2,Low[j2]);
ObjectSetInteger(0,"BUNA3_2",OBJPROP_RAY_RIGHT,false);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("BUNA3_2",OBJPROP_COLOR,clrTan);
else
ObjectSet("BUNA3_2",OBJPROP_COLOR,indicator_color9);
ObjectSet("BUNA3_2",OBJPROP_WIDTH, linethickness);
///first lower continuation divergence
if (Period()==60){
// ObjectCreate("BUNA3_3ffx",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("BUNA3_3ffx", " (Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("BUNA3_3ff",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("BUNA3_3ff","(Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrDarkRed);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("BUNA3_3ff",OBJPROP_COLOR,clrRed);
if (j2>2) {
ObjectCreate("Ellipset"+DoubleToStr(j), OBJ_TRIANGLE, 0, Time[j2-3], Low[j2]+90*Point, Time[j2-3], Low[j2]-420*Point, Time[j2], Low[j2]);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_STYLE,1);
}
}
LFT2 = LowFractalTime_2;
}
i2=1;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+16 ){
if ( RSI2[i2]>RSI2[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]<=High[i]-10*Point ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && RSI2[i2]>RSI2[i] && High[i2]<=High[i]-10*Point) break;
i2++;}
if (i2<500 && High[i2]<=High[i]-10*Point && RSI2[i2]>RSI2[i]) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
if (i<500 && i<i2+16) { ObjectDelete(0,"LUNA3_1");
ObjectCreate(0,"LUNA3_1",OBJ_TREND,0,UpFractalTime_1,High[i],UpFractalTime_2,High[i2]);
ObjectSetInteger(0,"LUNA3_1",OBJPROP_RAY_RIGHT,false);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("LUNA3_1",OBJPROP_COLOR,clrTan);
else ObjectSet("LUNA3_1",OBJPROP_COLOR,indicator_color9);
ObjectSet("LUNA3_1",OBJPROP_WIDTH, linethickness);
///first upper continuation divergence
if (Period()==60){
// ObjectCreate("LUNA3_1ffx",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("LUNA3_1ffx", " (Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("LUNA3_1ff",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("LUNA3_1ff", "(Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrDarkGreen);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("LUNA3_1ff",OBJPROP_COLOR,clrGreen);
if (i2>2) {
ObjectCreate("Ellipset"+DoubleToStr(i), OBJ_TRIANGLE, 0, Time[i2-3], High[i2]-90*Point, Time[i2-3], High[i2]+420*Point, Time[i2], High[i2]);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_STYLE,1);
}
}
UFT2=UpFractalTime_2;
}
int keepj=j;
int keepi=i;
j2=keepj;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+16){
if (RSI2[j2]<RSI2[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]>=Low[j]+10*Point) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && RSI2[j2]<RSI2[j] && Low[j2]>=Low[j]+10*Point) break;
j2++;}
if (j2<500 && Low[j2]>=Low[j]+10*Point) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
if (j<500 && j<j2+16) {ObjectDelete(0,"PUNA3_2");
ObjectCreate(0,"PUNA3_2",OBJ_TREND,0,LowFractalTime_1,Low[j],LowFractalTime_2,Low[j2]);
ObjectSetInteger(0,"PUNA3_2",OBJPROP_RAY_RIGHT,false);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA3_2",OBJPROP_COLOR,clrNONE);
else
ObjectSet("PUNA3_2",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA3_2",OBJPROP_WIDTH, linethickness);
///second lower continuation divergence
if (Period()==60){
// ObjectCreate("PUNA3_2ffx",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA3_2ffx", " (Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA3_2ff",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA3_2ff","(Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrDarkRed);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA3_2ff",OBJPROP_COLOR,clrRed);
if (j2>2) {
ObjectCreate("Ellipset"+DoubleToStr(j), OBJ_TRIANGLE, 0, Time[j2-3], Low[j2]+90*Point, Time[j2-3], Low[j2]-420*Point, Time[j2], Low[j2]);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_STYLE,1);
}
}
LFT2 = LowFractalTime_2;
}
//////////////////////////
i2=0;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+16 ){
if (RSI2[i2]>RSI2[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]<=High[i]-10*Point ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && RSI2[i2]>RSI2[i] && High[i2]<=High[i]-10*Point) break;
i2++;}
if (i2<500 && High[i2]<=High[i]-10*Point && RSI2[i2]>RSI2[i]) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
if (i<500 && i<i2+16 && RSI2[i2]>RSI2[i]) { ObjectDelete(0,"PUNA3_1");
ObjectCreate(0,"PUNA3_1",OBJ_TREND,0,UpFractalTime_1,High[i],UpFractalTime_2,High[i2]);
ObjectSetInteger(0,"PUNA3_1",OBJPROP_RAY_RIGHT,false);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA3_1",OBJPROP_COLOR,clrNONE);
else ObjectSet("PUNA3_1",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA3_1",OBJPROP_WIDTH, linethickness);
///second upper continuation divergence
if (Period()==60){
// ObjectCreate("PUNA3_1ffx",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA3_1ffx", " (Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA3_1ff",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA3_1ff", "(Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrDarkGreen);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA3_1ff",OBJPROP_COLOR,clrGreen);
if (i2>2) {
ObjectCreate("Ellipset"+DoubleToStr(i), OBJ_TRIANGLE, 0, Time[i2-3], High[i2]-90*Point, Time[i2-3], High[i2]+420*Point, Time[i2], High[i2]);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_STYLE,1);
}
}
UFT2=UpFractalTime_2;
}
keepj=j;
keepi=i;
j2=keepj;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+16){
if (RSI2[j2]<RSI2[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]>=Low[j]+10*Point) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && RSI2[j2]<RSI2[j] && Low[j2]>=Low[j]+10*Point) break;
j2++;}
if (j2<500 && Low[j2]>=Low[j]+10*Point) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
if (j<500 && j<j2+16) {ObjectDelete(0,"PUNA4_2");
ObjectCreate(0,"PUNA4_2",OBJ_TREND,0,LowFractalTime_1,Low[j],LowFractalTime_2,Low[j2]);
ObjectSetInteger(0,"PUNA4_2",OBJPROP_RAY_RIGHT,false);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA4_2",OBJPROP_COLOR,clrNONE);
else
ObjectSet("PUNA4_2",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA4_2",OBJPROP_WIDTH, linethickness);
///third lower continuation divergence
if (Period()==60){
// ObjectCreate("PUNA4_2ffx",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA4_2ffx", " (Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA4_2ff",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA4_2ff","(Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrDarkRed);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA4_2ff",OBJPROP_COLOR,clrRed);
if (j2>2) {
ObjectCreate("Ellipset"+DoubleToStr(j), OBJ_TRIANGLE, 0, Time[j2-3], Low[j2]+90*Point, Time[j2-3], Low[j2]-420*Point, Time[j2], Low[j2]);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_STYLE,1);
}
}
LFT2 = LowFractalTime_2;
}
i2=keepi;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+16 ){
if ( RSI2[i2]>RSI2[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]<=High[i]-10*Point ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && RSI2[i2]>RSI2[i] && High[i2]<=High[i]-10*Point) break;
i2++;}
if (i2<500 && High[i2]<=High[i]-10*Point) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
if (i<500 && i<i2+16) { ObjectDelete(0,"PUNA4_1");
ObjectCreate(0,"PUNA4_1",OBJ_TREND,0,UpFractalTime_1,High[i],UpFractalTime_2,High[i2]);
ObjectSetInteger(0,"PUNA4_1",OBJPROP_RAY_RIGHT,false);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA4_1",OBJPROP_COLOR,clrNONE);
else ObjectSet("PUNA4_1",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA4_1",OBJPROP_WIDTH, linethickness);
///third upper continuation divergence
if (Period()==60){
// ObjectCreate("PUNA4_1ffx",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA4_1ffx", " (Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA4_1ff",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA4_1ff", "(Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrDarkGreen);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA4_1ff",OBJPROP_COLOR,clrGreen);
if (i2>2) {
ObjectCreate("Ellipset"+DoubleToStr(i), OBJ_TRIANGLE, 0, Time[i2-3], High[i2]-90*Point, Time[i2-3], High[i2]+420*Point, Time[i2], High[i2]);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_STYLE,1);
}
}
UFT2=UpFractalTime_2;
}
keepj=j;
keepi=i;
j2=keepj;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+16){
if (RSI2[j2]<RSI2[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]>=Low[j]+10*Point) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && RSI2[j2]<RSI2[j] && Low[j2]>=Low[j]+10*Point) break;
j2++;}
if (j2<500 && Low[j2]>=Low[j]+10*Point) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
if (j<500 && j<j2+16) {ObjectDelete(0,"PUNA5_2");
ObjectCreate(0,"PUNA5_2",OBJ_TREND,0,LowFractalTime_1,Low[j],LowFractalTime_2,Low[j2]);
ObjectSetInteger(0,"PUNA5_2",OBJPROP_RAY_RIGHT,false);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA5_2",OBJPROP_COLOR,clrNONE);
else ObjectSet("PUNA5_2",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA5_2",OBJPROP_WIDTH, linethickness);
///fourth lower continuation divergence
if (Period()==60){
// ObjectCreate("PUNA5_2ffx",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA5_2ffx", " (Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA5_2ff",OBJ_TEXT, 0, Time[j2+3], Low[j2]+20*Point);
// ObjectSetText("PUNA5_2ff","(Min 16) Short:"+DoubleToStr(NormalizeDouble(Low[j2]-60*Point,4),4), 17, "Impact", clrDarkRed);
if (iLow(symbol,0,iLowest(symbol,0,MODE_LOW,j2-1,0))<Low[j2]) ObjectSet("PUNA5_2ff",OBJPROP_COLOR,clrRed);
if (j2>2) {
ObjectCreate("Ellipset"+DoubleToStr(j), OBJ_TRIANGLE, 0, Time[j2-3], Low[j2]+90*Point, Time[j2-3], Low[j2]-420*Point, Time[j2], Low[j2]);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(j),OBJPROP_STYLE,1);
}
}
LFT2 = LowFractalTime_2;
}
i2=keepi;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+16 ){
if ( RSI2[i2]>RSI2[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]<=High[i]-10*Point ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && RSI2[i2]>RSI2[i] && High[i2]<=High[i]-10*Point) break;
i2++;}
if (i2<500 && High[i2]<=High[i]-10*Point) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
if (i<500 && i<i2+16) { ObjectDelete(0,"PUNA5_1");
ObjectCreate(0,"PUNA5_1",OBJ_TREND,0,UpFractalTime_1,High[i],UpFractalTime_2,High[i2]);
ObjectSetInteger(0,"PUNA5_1",OBJPROP_RAY_RIGHT,false);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA5_1",OBJPROP_COLOR,clrNONE);
else ObjectSet("PUNA5_1",OBJPROP_COLOR,indicator_color9);
ObjectSet("PUNA5_1",OBJPROP_WIDTH, linethickness);
///fourth upper continuation divergence
if (Period()==60){
// ObjectCreate("PUNA5_1ffx",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA5_1ffx", " (Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrWhite);
// ObjectCreate("PUNA5_1ff",OBJ_TEXT, 0, Time[i2+3], High[i2]+120*Point);
// ObjectSetText("PUNA5_1ff", "(Min 16) Long: "+DoubleToStr(NormalizeDouble(High[i2]+60*Point,4),4), 17, "Impact", clrDarkGreen);
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,i2-1,0))>High[i2]) ObjectSet("PUNA5_1ff",OBJPROP_COLOR,clrGreen);
if (i2>3) {
ObjectCreate("Ellipset"+DoubleToStr(i), OBJ_TRIANGLE, 0, Time[i2-3], High[i2]-90*Point, Time[i2-3], High[i2]+420*Point, Time[i2], High[i2]);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_COLOR,clrGray);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_BACK,0);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_WIDTH,1);
ObjectSet("Ellipset"+DoubleToStr(i),OBJPROP_STYLE,1);
}
}
UFT2=UpFractalTime_2;
}
//////////////////////////
//////////////////////////
j2=0;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+26){
if (stoch[j2]>stoch[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]<=Low[j]-10*Point ) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && stoch[j2]>stoch[j] && Low[j2]<=Low[j]-10*Point ) break;
j2++;}
if (j2<500 && iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && Low[j2]<=Low[j]-10*Point ) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
i2=0;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+26 ){
if ( RSI2[i2]<RSI2[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]>=High[i]+10*Point ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && RSI2[i2]<RSI2[i] && High[i2]>=High[i]+10*Point ) break;
i2++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && i2<500 && High[i2]>=High[i]+10*Point && RSI2[i2]<RSI2[i]) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
int keepj2=j+1;
int keepi2=i+1;
j2=keepj2;
while (j2<500 ){
j=j2+3;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+26){
if (stoch[j2]>stoch[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]<=Low[j]-10*Point && !(j2<7 && Low[j2-6]>Low[j2])) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && stoch[j2]>stoch[j] && Low[j2]<=Low[j]-10*Point && !(j2<7 && Low[j2-6]>Low[j2])) break;
j2++;}
if (j2<500 && Low[j2]<=Low[j]-10*Point && !(j2<7 && Low[j2-6]>Low[j2])) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
i2=keepi2;
while (i2<500){
i=i2+3;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+26 ){
if ( stoch[i2]<stoch[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]>=High[i]+10*Point && !(i2<7 && High[i2-6]<High[i2])) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && stoch[i2]<stoch[i] && High[i2]>=High[i]+10*Point && !(i2<7 && High[i2-6]<High[i2])) break;
i2++;}
if (i2<500 && High[i2]>=High[i]+10*Point && !(i2<7 && High[i2-6]<High[i2])) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
///////////////////////////
j2=1;
while (j2<500 ){
j=j2+23;
if (iFractals(Symbol(),0,MODE_LOWER,j2))
while (j<j2+256){
if (stoch[j2]<stoch[j] && iFractals(Symbol(),0,MODE_LOWER,j) && Low[j2]>=Low[j]+10*Point && stoch[j2]<10) break;
j++;}
if (iFractals(Symbol(),0,MODE_LOWER,j) && iFractals(Symbol(),0,MODE_LOWER,j2) && stoch[j2]<stoch[j] && Low[j2]>=Low[j]+10*Point && stoch[j2]<10) break;
j2++;}
if (j2<500 && Low[j2]>=Low[j]+10*Point && stoch[j2]<10) {LowFractalTime_2=iTime(NULL, 0,j2); LowFractalTime_1=iTime(NULL, 0,j); }
if (j<500 && j<j2+256) {ObjectDelete(0,"ZUNA3_2");
ObjectCreate(0,"ZUNA3_2",OBJ_TREND,0,LowFractalTime_1,Low[j]-40* Point,LowFractalTime_2,Low[j2]-40* Point);
ObjectSetInteger(0,"ZUNA3_2",OBJPROP_RAY_RIGHT,false);
ObjectSet("ZUNA3_2",OBJPROP_COLOR,indicator_color7);
ObjectSet("ZUNA3_2",OBJPROP_WIDTH, linethickness);
LFT2 = LowFractalTime_2;
}
i2=1;
while (i2<500){
i=i2+23;
if (iFractals(Symbol(),0,MODE_UPPER,i2))
while (i<i2+256 ){
if ( stoch[i2]>stoch[i] && iFractals(Symbol(),0,MODE_UPPER,i) && High[i2]<=High[i]-10*Point && stoch[i2]>90 ) break;
i++;}
if (iFractals(Symbol(),0,MODE_UPPER,i) && iFractals(Symbol(),0,MODE_UPPER,i2) && stoch[i2]>stoch[i] && High[i2]<=High[i]-10*Point && stoch[i2]>90) break;
i2++;}
if (i2<500 && High[i2]<=High[i]-10*Point && stoch[i2]>90) { UpFractalTime_2=iTime(NULL, 0,i2); UpFractalTime_1=iTime(NULL, 0,i); }
if (i<500 && i<i2+256 && stoch[i2]>80) { ObjectDelete(0,"ZUNA3_1");
ObjectCreate(0,"ZUNA3_1",OBJ_TREND,0,UpFractalTime_1,High[i]+40* Point,UpFractalTime_2,High[i2]+40* Point);
ObjectSetInteger(0,"ZUNA3_1",OBJPROP_RAY_RIGHT,false);
ObjectSet("ZUNA3_1",OBJPROP_COLOR,indicator_color7);
ObjectSet("ZUNA3_1",OBJPROP_WIDTH, linethickness);
UFT2=UpFractalTime_2;
}
}
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);
} }