The Tease

The setup

The last 2 final divergences framed the price’s playfield for Friday.

Be conscious of this bracket.

The logic behind the look for a buy is that the E-414 band is above the E-712, but it is actually not true, the 712 is inside the 414 band. This is as neutral as it gets.

Although I have a serious negative bias here (88% short) I still must acknowledge the setup. (if you look closer, the upper red divergence and the second from the bottom blue divergence provided the exact high and low).

A violation of 1.1020 would be a major offense and must have a plan for it.

The last auto trading routine I made (Beam Around) opened a short at 1.0965 and targeted 1.0875.

The monthly config remains bearish.

Thursday was good with $1,212 cash, but Friday I chickened out from the longs and made only $340.

The lower BB is at 1.0740. I think a big break is coming, so don’t stand in its way. Price has disconnected from the yellow high voltage, but kept on touching the low voltage life support, the E-9 in red. E-50 is the next power source and the 30-sample BB after that.

The unqualified saga may not continue much longer.

In the meantime,

therapy

& entertainment

Unqualified Market

& how to play it.

 ///qualifier
if (ExtATRBuffer[i]<-80) q[i]=-1;
if (ExtATRBuffer2[i]>80) q[i]=1;

The unqualified market is a forest-free market. There is no 80+ pips 200-sample depth in either direction ~ no volatility choke on either side.

A qualified market has 14 out of 16 30-minute readings beyond absolute 80 (pips), an unqualified market has not (the default).

ObjectSetText(“Libec”+6, “Unqualified Market”, 41, “Arial Black”, Gray);
if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]>13) ObjectSetText(“Libec”+6, “Qualified Bull”, 41, “Arial Black”, LimeGreen);
else if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]<-13) ObjectSetText(“Libec”+6, “Qualified Bear”, 41, “Arial Black”, DeepPink);

This is a neutral market (no volatility edge), but of course there was a vector before the stall, and in the end a continuation coming out of this temporary balance is still more likely than an opposing vector.

The play is to fade. What? The first fade is F2++ to F3-, but from the second trade on it would become easy to do so on any platform: fade te first hourly close outside the 30-sample BB and target the opposite end of the BB.

If this was the first trade, F2++ would mean 1.0949 and F3- would mean 1.0967. The plus and the minus both worth 5 pips each.

Axel S – a rather old routine can be used here as well.

The hourly “Mean” is E-32 HL2 (yellow). The 28-pip displacements I call the “safety” lines. The 59-pip one I don’t think I have named at all.

The idea behind the 0.28 vs 2.8 is that these are codes I can use to auto target these lines (at market crops outside).

  

///// Crop 0.28 long (E32+28Pips)

if( OrderType()==OP_BUY && (OrderStopLoss()==0.28 || OrderTakeProfit()==2.8) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]>iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)+280*Point && Bid>OrderOpenPrice()+.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
Print("Cropper Closed LONG @ "+MarketInfo(OrderSymbol(), MODE_BID)+" for ", OrderProfit());}

///// Crop 2.8 short (E32-28Pips)

if( OrderType()==OP_SELL && (OrderStopLoss()==2.8 || OrderTakeProfit()==0.28) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]<iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)-280*Point && Ask<OrderOpenPrice()-.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
Print("Cropper Closed SHORT @ "+MarketInfo(OrderSymbol(), MODE_ASK)+" for ", OrderProfit());}

///// Crop 5.9 short (E32-59Pips)

if( OrderType()==OP_SELL && (OrderStopLoss()==5.9 || OrderTakeProfit()==0.59) && OrderMagicNumber()!=50 && OrderMagicNumber()!=51 && OrderMagicNumber()!=52 && OrderMagicNumber()!=53 && OrderMagicNumber()!=54 && OrderProfit()>0 &&
Close[0]<iMA(NULL,60,32,0,MODE_EMA, PRICE_MEDIAN,0)-590*Point && Ask<OrderOpenPrice()-.50*Point && OrderProfit()+OrderSwap()+OrderCommission()>0)
{OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
Print("Cropper Closed SHORT @ "+MarketInfo(OrderSymbol(), MODE_ASK)+" for ", OrderProfit());}

Future pop – I would put 3 likes on this one if I could.

Future, love, Faraday

Brutha, heaven can bait.

Future Legacy

Yeah, you feel it Baby?

Just like Marky Mark Wahlbergy Wahl, you better start thinking about a legacy.

Good Angulations

Writing a code that can turn 10k into a million plus in 4 years is a great feat, but you have to lube it up, juice it up and spice it up.

This test fell shy due to my broker having a 100 lots max limit.

I had to cap the calculated size just to be able to open.

Take a look at Cameron Hocus Focus. He knows he can’t trade for shit, but he always goes the extra mile to be in the latest, trendiest scams: he is on screen again offering “funded” trading accounts. That’s code for “give me your funds”. This is the low cost branch out on Forex scams.

Could not find a video, but the sales pitch of his started with “the Forex industry is dying.”

Good Bifurcations

My legacy would be passing on useful tools & thinking.

The powder boxes & the humps, i.e. the Karte Maplen is one example of this.

H3 resisted, re-inforcing the downtrend.

I was looking for a video about Sutherland telling the story of Wahlberg being next door, but the smell was coming over (he proudly claims genetical heretage in that interview), yet all I could find was this.

Good Strangulations

Luckily, there are those that care a great deal about their legacy.

Automatizacija

…age isn’t always a disadvantage. With more and more auto trading stuff appearing, I started tempering with the thought that I may end up throwing my hat in the ring.

Some back testing, and I’m already headed into unexpected directions.

The problem with automated trading is that you always end up with something overoptimized, as you want to present good results. In a bull market buys would tend to make money and sells in the bears. The core question remains the same: what is the current market? By the time you can identify it, you may be too late for the party. 

There is only one game, getting both disances right: the distance to the stop loss and the target (statistical edge), and you need the stop loss to be a whole lot closer due to trading costs, yet your probability needs to exceed a coinflip just to tread water.

Beam Around CRE>

Max draw down: 13.89%

14 years of indicator / EA programming is a master’s degree in automation.
I have written my first few million lines of MT4 code, and I picked a few of my latest and best filters to make a fully automated routine.
It was made for EUR/USD with raw/ flexible spread. You could try it on other pairs at your own risk, but the two decimals shift for Yens is not included.
You get to set the size, a blank-out server time (to exclude broker spread ballooning) and if you want the holding to be closed out on Friday if in gains before the close.
The program opens 1 or 2 positions per signal. The second would only be opened if the trigger candle’s high / low gets re-visited within 5 hours.
All opens are at market.
For figuring the size, factor in the possibility of a maximum 45-pips move agaist you.
Yet another option is to lock in better than break even (5 pips) when in 25+pips of gains. Trail stop at 1/5 th of the gains.
The target is 90-pips for the first position and 230 for the second.
There can be 2 directional holdings simultaneously at max.

More about the signals? Propietary combinations of oscillators, moving average displacements and sequences. It works with 30-minute data.

Ready To Go Wrong

Shark Spank!

This is how important the close outside the Money Flow Shy Of Level is.

It was settled 2 days ago. Nothing’s changed since then.

The Houly B-s go in pairs. So when one has printed, you would know that a deeper divergence is to follow resulting in the second B print.

…but now we’re about to reach the Railroad Tracks of the Municipals. See what the Snow Patrol thinks of ending this downtrend.

All this excitement!

…the Munis got run over.

Mistakes were made, but I collected the daily bread.

We can now gap down in peace.

Did your integrity get tested?

Damn, I wish I was a flower.

Sun & Rainfall

That’s the difference between extra deep oversold and just vanilla deep oversold.

Still writing filters after all these years, even if I run out of names at times.

The Gray’s Stochastic was much too low to be the bottom.

////Sun Beam / Money flow up persists
if (((stoch120[i]>21 && stoch120[ArrayMinimum(stoch120,80,i)]<3)
|| (i>2 && mfi[i]<40 && mfi[i]>35.5 && stoch120[i]<6 && Low[i-3]>Low[i])) && iFractals(symbol,0,MODE_LOWER,i) && Low[i]<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,120,i+1))

){
ObjectCreate("Pretty"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_COLOR,clrYellow );
if (stoch120[i]<1) ObjectSet("Pretty"+IntegerToString(i),OBJPROP_COLOR,clrGray);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_WIDTH,9);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_BACK,1);
}

The other thing that called the low was the B36 6 Cnt. That’s for the hourly

The candle low (falling between the 6 and the c) set off a counter. If price wass to return within the next 6 hours, a low would be made.

///RSI2 divergence dn

if (i>0 && RSI2[i]<RSI2[i+1] && RSI2[i-1]>RSI2[i] && RSI2[i]>3 && RSI2[i]<12 && iRSI(symbol,0,14,PRICE_MEDIAN,i)<30 && Low[i]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_MAIN,i)
&& RSI2[ArrayMinimum(RSI2,19,i+1)]<RSI2[i]
){
ObjectCreate("Talm"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]- 50*Point);
if (Low[i]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i))
{ObjectSetText("Talm"+DoubleToStr(i), "B36 6cnt", 42, "Impact", DeepPink);
b36[i]=true;
}
else ObjectSetText("Talm"+DoubleToStr(i), "B", 42, "Impact", DarkGreen);
if (b[i+3]==true || b[i+4]==true || b[i+5]==true || b[i+6]==true || b[i+7]==true || b[i+8]==true || b[i+9]==true || b[i+10]==true || b[i+11]==true || b[i+12]==true){
ObjectSetText("Talm"+DoubleToStr(i), " B-corr", 42, "Impact", DarkGreen);
if (b[i+8]==true || b[i+9]==true || b[i+10]==true || b[i+11]==true || b[i+12]==true)
ObjectSetText("Talm"+DoubleToStr(i), "B10", 42, "Impact", DarkGreen);
else {
ObjectCreate("Talmi"+DoubleToStr(i), OBJ_TEXT, 0, Time[i], Low[i]+ 650*Point);
ObjectSetText("Talmi"+DoubleToStr(i), "Sell"+DoubleToStr(NormalizeDouble(Low[i]+600*Point,4),4)+" 4 liq brk", 22, "Impact", Blue);
}}
b[i]=true;
}

The militia sold the market down further at the Lower Guard rail. Actually, I have eliminated the “progression” print today due to the Bollinger width being below 25 pips. Haven’t transferred it into this browser yet.

 ////upside progression
if (redcount[i+1]==redcount[i+7] && iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)>250*Point &&
Close[i+1]>iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+1)+4*Point && Close[i]<iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-10*Point){
ObjectCreate("120BPM"+IntegerToString(i),OBJ_TREND,0, Time[i+1], 0.8, Time[i+1], Close[i+1]);
ObjectSet("120BPM"+IntegerToString(i),OBJPROP_COLOR,clrCoral);
ObjectSet("120BPM"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
dirlev[i]=Close[i+1];
//upside regression
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i+1))<iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,36,i+3))-20*Point
&& iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_UPPER,i)-iBands(symbol,30,30,2,0,PRICE_MEDIAN,MODE_LOWER,i)>380*Point
) {ObjectSet("120BPM"+IntegerToString(i),OBJPROP_COLOR,clrGray);
dir[i]=-1;
if (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i+1))-iLow(symbol,0,iLowest(symbol,0,MODE_LOW,36,i+3))>640*Point) greencount[i]=0;
else if (greencount[i]>0 && greencount[i+1]==greencount[i+2] && greencount[i+2]==greencount[i+3] && greencount[i+3]==greencount[i+4] && greencount[i+4]==greencount[i+5] && greencount[i+5]==greencount[i+6]) greencount[i]++;
ObjectCreate("120BPMc"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], Low[i+1]-60*Point);
ObjectSetText("120BPMc"+IntegerToString(i), greencount[i], 42, "Impact", clrWhite);
dirlev[i]=Close[i+1];
if (greencount[i]==0){
j=i-4;
while (j>0){
if (High[j]>Close[i+1]) break;
j--;}
if (j<0) j=0;
if (Close[i+1]>Open[i+1]) ObjectCreate("120BPMg"+IntegerToString(i),OBJ_TREND,0, Time[i+1], Close[i+1], Time[j], Close[i+1]);
else {ObjectCreate("120BPMg"+IntegerToString(i),OBJ_TREND,0, Time[i+2], Open[i+1], Time[j], Open[i+1]);
dirlev[i]=Open[i+1];
}
ObjectSet("120BPMg"+IntegerToString(i),OBJPROP_COLOR,clrGold);

ObjectSet("120BPMg"+IntegerToString(i),OBJPROP_RAY_RIGHT,false);
ObjectSet("120BPMg"+IntegerToString(i),OBJPROP_WIDTH,7);
ObjectDelete("Resistance");
ObjectCreate("Resistance",OBJ_LABEL,2, 0,0);
ObjectSet("Resistance",OBJPROP_CORNER,1);
ObjectSet("Resistance",OBJPROP_XDISTANCE,0);
ObjectSet("Resistance",OBJPROP_YDISTANCE,40);
ObjectSet("Resistance",OBJPROP_COLOR,clrCrimson);
ObjectSetText("Resistance","LAST RESISTANCE = "+DoubleToStr(NormalizeDouble(High[i+1],4),4),18,"Arial Black");
dirlev[i]=High[i+1];
}
}

The powder box goes untouched. A lot to home write about, I know.

$282 on closed out trades for accountability. Holdings currently at 4.95 : 6.1 short / long. Need to add longs – tried to avoid the Wednesday Triple swap tag for Dollar shorts.

Concept Hall

And I wonder who you are, and I wonder what you want.

The concept of grasping a concept.

Concept #1

A parabolic market is targeting the W3 close end to mid point. Parabolic = 14 out of the last 16 candles closed below on the 30-minute 30-sample SMA.

W3 is the orange box, 3-day ATR measured from the last consilolidation mean plus 10-30%.

Concept #2

The Money flow droop works like this: if the highighted reversal zone gets exceeded, that means the arrival of new money after the measuring leg was settled, i.e.: go 2x short at 1.0984, cover most of the holdings at 1.0948.

Concept #3

A powder box (4H) is a potential reversal zone. The shaded one ranks higher, as it is outside the 100-pip displacement.

The 14x candle count has started and the market has to now prove upside volatility.

I would expect to find resistance stating 62.5 pips up from the lowest low in this move / at the Upper Guard Rail / starting the upper 30-sample Bollinger Band, and continue lower from there.

The market is closing on the lows today. I was trading longs only all day, and this turned out to be not a problem to post a normal daily average. I am 6:5 long to short here.

This is a tremendous song>

Labeling* Suggestions

You have the software, here’s some tips on how to interpret and compliment the data on screen.

The 14-count is a “show me counter directional volatility” part. If price comes back inside the Guard Rails, you would see more movement in that direction, however a re-test of the powder box (Lower Low / Higher High) is a possibility unless the higher low / lower high is printed within the 14 count.

The acceleration can be seen by the Humps (H) going outside the channel on the upside, tagging nothing, tagging the 1st resistance line and sniffing the 2nd resistance line on the 3rd try.

I would plot the Higher Low with a triangle and the H3 for the break out level.

On the second image the 14 count did not prove volatility, and also you get a fresh count by breaking the high. H2 proved volatiliy (working out of a hollow box, which is a divergence, but not necessarily a terminal end, especially not in a corrective structure). Going below the Guards supplied with the 3 humps. The H1 was an automatic plot, H2, H3 I had to fill in (hence the font difference).

After the back test, there were 3 humps again, and the H2 was rather shy around the previous high, but there was clearly a return back below the Guard, so the count stands.

Happy 2024!

* In US English, it’s ‘labeling’ (one ‘l’). In UK English, it’s ‘labelling’ (double ‘l’).

Don’t Call It A Fun Fact

The last subject of the year is smart & funny comcepts.

I’ve got inner city mama on the hook, so you know this is gonna be a bit of an ego trip.

Here are 3 different ways I could call the reversal zone.

#1 – By the way of the Rabbit – energy signals placed the zone between 1.1121 and 1.1151. The high was 1.11393

Energy Trading is a framework invented by me, and is replicable, since it is code based. “Smart Money Concepts” are a bunch of unverifiable linguistic stunts vomited into a bucket.

#2 The Money Flow Droop highlighted the 1.1130-1.1144 zone

#3 the bonus software / powder boxes highighted the zone starting 1.1124. The powder boxes only receive shading outside the bumper lines which are at at 20-sample delay and a 100-pip displacement.

Once price comes off the box, a 14-sample counter is started. This “incubation” is to prove the available volatiliy. This time it made it back inside the E-52 EMA Band’s surrounding Guard Rails. More dowside is confirmed.

A capitulation move is often a 100 or so extra pips move to knock somebody out of their holdings.

The Final Divergence near the top was a Crown Royale.

This plot came in handy at calling the end of the Wave 4 as well.

As Dickens once said, all the chickens come home to defrost.

People are preoccupied with all the wrong things. To me everything starts with a binary code.

Wishing a Scammer Free New Year to you.

//+------------------------------------------------------------------+
//| Projected Distance 240 |
//| aka Powder Boxes |
//| by Macdulio |
//| |
//+------------------------------------------------------------------+

#include <stdlib.mqh>

#property copyright "Copyright © 2018, Macdulio"
#property link "https://forexfore.blog"
#property description "V1.0"
#property description "Projected Distance 240"
#property description ""
#property description "Extension / Beat Possibilities"
#property description "Plotted for figuring Termminal Move"
#property description "Targets."


#property indicator_chart_window
#property indicator_buffers 14
extern int lookback = 250;
extern bool plot_projections = false;
extern bool plot_engulfing=false;
double ATRA;
double ATRAVG[], RSI2[];
double upperbumper[], lowerbumper[];
double guardrailu[],guardraild[];
double HighBuffer[];
double LowBuffer[];
double HighBuffer2[];
double LowBuffer2[];
int ucount[],dcount[];
double gp60[],gp100[],gp138[],gm60[],gm100[],gm138[];
double FSize=32;
double FMax = FSize*6/5;
string symbol = Symbol();
int last_encounter_u, last_encounter_d;
int init()
{

IndicatorBuffers(8);

SetIndexBuffer(0,HighBuffer);
SetIndexBuffer(1,LowBuffer);
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,4,Green);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,4,Green);
SetIndexBuffer(2,HighBuffer2);
SetIndexBuffer(3,LowBuffer2);
SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,4,Crimson);
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,4,Crimson);
SetIndexBuffer(4,lowerbumper);
SetIndexStyle(4,DRAW_LINE,2,5,clrChartreuse);
SetIndexBuffer(5,upperbumper);
SetIndexStyle(5,DRAW_LINE,2,5,clrCoral);

SetIndexBuffer(6,guardrailu);
SetIndexStyle(6,DRAW_LINE,2,2,clrChartreuse);
SetIndexBuffer(7,guardraild);
SetIndexStyle(7,DRAW_LINE,2,2,clrCoral);

SetIndexBuffer(8,gp60);
SetIndexStyle(8,DRAW_LINE,2,1,clrDarkGreen);
SetIndexBuffer(9,gm60);
SetIndexStyle(9,DRAW_LINE,2,1,clrCrimson);

SetIndexBuffer(10,gp100);
SetIndexStyle(10,DRAW_LINE,2,1,clrDarkGreen);
SetIndexBuffer(11,gm100);
SetIndexStyle(11,DRAW_LINE,2,1,clrCrimson);


SetIndexBuffer(12,gp138);
SetIndexStyle(12,DRAW_LINE,2,1,clrDarkGreen);
SetIndexBuffer(13,gm138);
SetIndexStyle(13,DRAW_LINE,2,1,clrCrimson);




ArrayResize(ATRAVG, 103);
ArrayInitialize(ATRAVG, 0);


ArrayResize(HighBuffer, Bars);
ArrayInitialize(HighBuffer, EMPTY_VALUE);
ArrayResize(LowBuffer, Bars);
ArrayInitialize(LowBuffer, EMPTY_VALUE);

ArrayResize(HighBuffer2, Bars);
ArrayInitialize(HighBuffer2, EMPTY_VALUE);
ArrayResize(LowBuffer2, Bars);
ArrayInitialize(LowBuffer2, EMPTY_VALUE);

ArrayResize(upperbumper, Bars);
ArrayInitialize(upperbumper, EMPTY_VALUE);
ArrayResize(lowerbumper, Bars);
ArrayInitialize(lowerbumper, EMPTY_VALUE);
ArrayResize(guardrailu, Bars);
ArrayInitialize(guardrailu, EMPTY_VALUE);
ArrayResize(guardraild, Bars);
ArrayInitialize(guardraild, EMPTY_VALUE);
ArrayResize(gp60, Bars);
ArrayInitialize(gp60, EMPTY_VALUE);
ArrayResize(gm60, Bars);
ArrayInitialize(gm60, EMPTY_VALUE);
ArrayResize(gp100, Bars);
ArrayInitialize(gp100, EMPTY_VALUE);
ArrayResize(gm100, Bars);
ArrayInitialize(gm100, EMPTY_VALUE);
ArrayResize(gp138, Bars);
ArrayInitialize(gp138, EMPTY_VALUE);
ArrayResize(gm138, Bars);
ArrayInitialize(gm138, EMPTY_VALUE);
ArrayResize(RSI2, Bars);
ArrayInitialize(RSI2, 0);

ArrayResize(ucount, Bars);
ArrayInitialize(ucount, 0);

ArrayResize(dcount, Bars);
ArrayInitialize(dcount, 0);

return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int j;

deletetxt1("HOCUS");

ATRA = 0;
for (int i=1; i<=3; i++){
ATRA = ATRA+iATR(NULL,1440,14,i);}

for (i=0; i<=120; i++){
ATRAVG[i] = ATRA/3; }


deletetxt1("Projected");
deletetxt1("EPERJES");
deletetxt1("KAROLY");
deletetxt1("EGULF");
deletetxt1("LOTUS");
deletetxt1("Counter");

for(i=lookback; i>=0; i--) {
LowBuffer[i]=EMPTY_VALUE;
HighBuffer[i]=EMPTY_VALUE;
LowBuffer2[i]=EMPTY_VALUE;
HighBuffer2[i]=EMPTY_VALUE;
upperbumper[i]=upperbumper[i+1];
lowerbumper[i]=lowerbumper[i+1];

if (ucount[i+1]!=0 && ucount[i+1]<=14) ucount[i]=ucount[i+1]+1; else ucount[i]=0;
if (dcount[i+1]!=0 && dcount[i+1]<=14) dcount[i]=dcount[i+1]+1; else dcount[i]=0;


guardrailu[i] = iMA(symbol,0,52,0,MODE_EMA, PRICE_HIGH,i)+FMax*10*Point;

if (Close[i]>guardrailu[i]) {
gp60[i]=guardrailu[i]+600*Point;
gp100[i]=guardrailu[i]+1000*Point;
}

if (Close[i]>gp60[i]) {
gp138[i]=guardrailu[i]+1380*Point;
}


guardraild[i] = iMA(symbol,0,52,0,MODE_EMA, PRICE_LOW,i)-FMax*10*Point;


if (Close[i]<guardraild[i]) {
gm60[i]=guardraild[i]-600*Point;
gm100[i]=guardraild[i]-1000*Point;
}

if (Close[i]<gm60[i] && gm60[i]!=EMPTY_VALUE) {
gm138[i]=guardraild[i]-1380*Point;
}


if (High[i+20]>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,200,i+21))) upperbumper[i]=High[i+20]+1000*Point;
if (Low[i+20]<iLow(symbol,0,iLowest(symbol,0,MODE_LOW,200,i+21))) lowerbumper[i]=Low[i+20]-1000*Point;

if (Period()==240){

/// insta toffee up pink

if (i>0 && High[i]>upperbumper[i] && iRSI(symbol,0,2,PRICE_MEDIAN,i)>99){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrDeepPink);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);

ObjectCreate("LOTUSb"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], High[i]+640*Point, Time[i-1], High[i]+840*Point);
ObjectSetInteger(0,"LOTUSb"+IntegerToString(i),OBJPROP_COLOR,clrGreen);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_WIDTH,5);


ObjectCreate("LOTUSc"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], High[i], Time[i-1], High[i]+640*Point);
ObjectSetInteger(0,"LOTUSc"+IntegerToString(i),OBJPROP_COLOR,clrDodgerBlue);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_BACK,1);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_WIDTH,5);
ucount[i]=1;
}

/// insta toffee up magenta

if (i>0 && guardrailu[i+1]!=EMPTY_VALUE && High[i]>guardrailu[i] && iMFI(symbol,0,14,i)>iMFI(symbol,0,14,i-1) && iMFI(symbol,0,14,i)>iMFI(symbol,0,14,i+1) && iMFI(symbol,0,14,i)>75 && iMFI(symbol,0,14,i)<85 && iRSI(symbol,0,2,PRICE_MEDIAN,i)>99.5
&& iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,2,i))>iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,20,i+3))
){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrMagenta);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);

ObjectCreate("LOTUSb"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Close[i]+640*Point, Time[i-1], Close[i]+840*Point);
ObjectSetInteger(0,"LOTUSb"+IntegerToString(i),OBJPROP_COLOR,clrGreen);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_WIDTH,5);


ObjectCreate("LOTUSc"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Close[i], Time[i-1], Close[i]+640*Point);
ObjectSetInteger(0,"LOTUSc"+IntegerToString(i),OBJPROP_COLOR,clrDodgerBlue);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_WIDTH,5);
ucount[i]=1;
}


/// hump 1 up

if (High[i]>upperbumper[i] && iRSI(symbol,0,2,PRICE_MEDIAN,i)>90 && iRSI(symbol,0,2,PRICE_MEDIAN,i)<95){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrSalmon);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);
if (!(High[i+1]>upperbumper[i+1] && iRSI(symbol,0,2,PRICE_MEDIAN,i+1)>90 && iRSI(symbol,0,2,PRICE_MEDIAN,i+1)<95)){
ObjectCreate("LOTUSS"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], High[i]+130*Point);
ObjectSetText("LOTUSS"+IntegerToString(i), "H1", 26, "Impact", Blue);}
}
/// hump 1 dn

if (i>0 && Low[i]<guardraild[i] && iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i-1) && iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i+1) && iMFI(symbol,0,14,i)<25 && iRSI(symbol,0,2,PRICE_MEDIAN,i)>1.5 && iRSI(symbol,0,2,PRICE_MEDIAN,i)<3){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrLime);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);
if (!(Low[i+1]<guardraild[i+1] && iMFI(symbol,0,14,i+1)<iMFI(symbol,0,14,i) && iMFI(symbol,0,14,i+1)<iMFI(symbol,0,14,i) && iMFI(symbol,0,14,i+1)<25 && iRSI(symbol,0,2,PRICE_MEDIAN,i+1)>1.5 && iRSI(symbol,0,2,PRICE_MEDIAN,i+1)<3)){
ObjectCreate("LOTUSS"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], Low[i]-130*Point);
ObjectSetText("LOTUSS"+IntegerToString(i), "H1", 36, "Impact", Blue);}
}

/// insta toffee dn magenta

if (i>0 && Low[i]<guardraild[i] && iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i-1) && iMFI(symbol,0,14,i)<iMFI(symbol,0,14,i+1) && iMFI(symbol,0,14,i)<25 && iMFI(symbol,0,14,i)>12 && iRSI(symbol,0,2,PRICE_MEDIAN,i)<.5){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrMagenta);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);

ObjectCreate("LOTUSb"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Close[i]-640*Point, Time[i-1], Close[i]-840*Point);
ObjectSetInteger(0,"LOTUSb"+IntegerToString(i),OBJPROP_COLOR,clrRed);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_WIDTH,5);

ObjectCreate("LOTUSc"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Close[i], Time[i-1], Close[i]-640*Point);
ObjectSetInteger(0,"LOTUSc"+IntegerToString(i),OBJPROP_COLOR,clrDodgerBlue);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_WIDTH,5);

dcount[i]=1;
}


/// insta toffee dn pink

if (i>0 && Low[i]<guardraild[i] && Low[i]<lowerbumper[i] && iRSI(symbol,0,2,PRICE_MEDIAN,i+1)<1 && iRSI(symbol,0,2,PRICE_MEDIAN,i)<1 && iRSI(symbol,0,2,PRICE_MEDIAN,i-1)>iRSI(symbol,0,2,PRICE_MEDIAN,i)){
ObjectCreate("LOTUS"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_COLOR,clrDeepPink);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_WIDTH,3);
ObjectSet("LOTUS"+IntegerToString(i),OBJPROP_BACK,1);


ObjectCreate("LOTUSb"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Low[i]-640*Point, Time[i-1], Low[i]-840*Point);
ObjectSetInteger(0,"LOTUSb"+IntegerToString(i),OBJPROP_COLOR,clrRed);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_BACK,0);
ObjectSet("LOTUSb"+IntegerToString(i),OBJPROP_WIDTH,5);

ObjectCreate("LOTUSc"+IntegerToString(i), OBJ_RECTANGLE, 0, Time[i+3], Low[i], Time[i-1], Low[i]-640*Point);
ObjectSetInteger(0,"LOTUSc"+IntegerToString(i),OBJPROP_COLOR,clrDodgerBlue);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_BACK,1);
ObjectSet("LOTUSc"+IntegerToString(i),OBJPROP_WIDTH,5);
dcount[i]=1;
}

if (dcount[i]>0 && dcount[i]<=14){
ObjectCreate("Counterd"+IntegerToString(i), OBJ_TEXT, 0, Time[i], Low[i]-40*Point);
ObjectSetText("Counterd"+IntegerToString(i), IntegerToString(dcount[i]), 11, "Impact", Maroon);
if (dcount[i]==14) ObjectSetText("Counterd"+IntegerToString(i), IntegerToString(dcount[i]), 21, "Impact", Blue);
}
if (ucount[i]>0 && ucount[i]<=14){
ObjectCreate("Counteru"+IntegerToString(i), OBJ_TEXT, 0, Time[i], High[i]+90*Point);
ObjectSetText("Counteru"+IntegerToString(i), IntegerToString(ucount[i]), 11, "Impact", Maroon);
if (ucount[i]==14) ObjectSetText("Counteru"+IntegerToString(i), IntegerToString(ucount[i]), 21, "Impact", Blue);
}

}


if (plot_projections){

if (plot_engulfing){

if (Open[i]>=Close[i+1]-20*Point && Close[i+1]>Open[i+1] && Close[i]<Open[i+1] && Low[i]<Low[i+1]){
ObjectCreate("EGULF"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], (High[i]+Low[i])/2+150*Point);
ObjectSetText("EGULF"+IntegerToString(i), " E", 46, "Impact", clrFireBrick);
ObjectSet("EGULF"+IntegerToString(i),OBJPROP_BACK,1);
}

if (Open[i]<=Close[i+1]+20*Point && Close[i+1]<Open[i+1] && Close[i]>Open[i+1] && High[i]>High[i+1]){
ObjectCreate("EGULF"+IntegerToString(i), OBJ_TEXT, 0, Time[i+1], (High[i]+Low[i])/2+150*Point);
ObjectSetText("EGULF"+IntegerToString(i), " E", 46, "Impact", clrDarkGreen);
ObjectSet("EGULF"+IntegerToString(i),OBJPROP_BACK,1);
}
}

////upside projection


if (Period()==5 && i<30 && iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)>FSize*27*Point && iHigh(NULL,240,i+1)>iHigh(NULL,240,i+3) && iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5>iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i)+FMax*5*Point && !(iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1))){
LowBuffer[i*48]=iHigh(NULL,240,i+1);
HighBuffer[i*48]=iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5;
}

else
if (Period()==60 && iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)>FSize*27*Point && iHigh(NULL,240,i+1)>iHigh(NULL,240,i+3) && iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5>iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i)+FMax*5*Point && !(iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1))) {
LowBuffer[i*4]=iHigh(NULL,240,i+1);
HighBuffer[i*4]=iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5;}

else
if (Period()>60 && iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)>FSize*27*Point && iHigh(NULL,240,i+1)>iHigh(NULL,240,i+3) && iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5>iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i)+FMax*5*Point && !(iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1))) {
if (Period()==240){ LowBuffer[i]=iHigh(NULL,240,i+1);
HighBuffer[i]=iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5;}

ObjectCreate("ProjectedXLR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5+20*Point);
ObjectSetText("ProjectedXLR"+IntegerToString(i), " "+DoubleToStr(NormalizeDouble(iHigh(NULL,240,i+1)+((iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)))*.5,4),4), 16, "Arial Black", clrBlack);

ObjectCreate("ProjectedXR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5+20*Point);
ObjectSetText("ProjectedXR"+IntegerToString(i), DoubleToStr(NormalizeDouble(iHigh(NULL,240,i+1)+((iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)))*.5,4),4), 16, "Arial Black", clrCrimson);
if (iHigh(NULL,240,i)-iLow(NULL,240,iLowest(NULL,240,MODE_LOW,50,i))<1800*Point) ObjectSetText("ProjectedXR"+IntegerToString(i), DoubleToStr(NormalizeDouble(iHigh(NULL,240,i+1)+((iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)))*.5,4),4), 16, "Arial Black", clrGray);


if (HighBuffer[i+2]==EMPTY_VALUE && HighBuffer[i+1]!=EMPTY_VALUE && HighBuffer[i]<HighBuffer[i+1]) {
ObjectCreate("ProjectedXCR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5-400*Point+20*Point);
ObjectSetText("ProjectedXCR"+IntegerToString(i), " Sq. Exit: "+DoubleToStr(NormalizeDouble(iHigh(NULL,240,i+1)+((iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)))*.5-400*Point,4),4), 16, "Impact", clrBlack);

ObjectCreate("ProjectedXDR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iHigh(NULL,240,i+1)+(iHigh(NULL,240,i+1)-iLow(NULL,240,i+3))*.5-400*Point+20*Point);
ObjectSetText("ProjectedXDR"+IntegerToString(i), "Sq. Exit: "+DoubleToStr(NormalizeDouble(iHigh(NULL,240,i+1)+((iHigh(NULL,240,i+1)-iLow(NULL,240,i+3)))*.5-400*Point,4),4), 16, "Impact", clrDodgerBlue);

}

if (Period()>60 && i>0){
j=i-1;
while (j>=0){
if (iHigh(symbol,0,j)>HighBuffer[i] && iClose(symbol,0,j)<HighBuffer[i]) break;
j--;
}
if (iHigh(symbol,0,j)>HighBuffer[i] && iClose(symbol,0,j)<HighBuffer[i] && HighBuffer[i]>iMA(NULL,0,52,0,MODE_EMA, PRICE_HIGH,i)+FMax*5*Point) {

if (i<1000){
ObjectCreate(0,"Projected"+i,OBJ_TREND,0,Time[i],HighBuffer[i],Time[j],HighBuffer[i]);
ObjectSetInteger(0,"Projected"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projected"+i,OBJPROP_COLOR,clrRed);
ObjectSet("Projected"+i,OBJPROP_WIDTH,3);
ObjectSet("Projected"+i,OBJPROP_BACK,1);
last_encounter_u = j;
}

if (i<40){
ObjectCreate("Projected"+IntegerToString(j), OBJ_TEXT, 0, Time[j+2], HighBuffer[i]+20*Point);
ObjectSetText("Projected"+IntegerToString(j), "X-Fill!", 16, "Arial Black", clrCrimson);

}


}

else if (j<0){


ObjectCreate(0,"Projected"+i,OBJ_TREND,0,Time[5],HighBuffer[i],Time[0],HighBuffer[i]);
ObjectSetInteger(0,"Projected"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projected"+i,OBJPROP_COLOR,clrPurple);
ObjectSet("Projected"+i,OBJPROP_WIDTH,3);
ObjectSet("Projected"+i,OBJPROP_BACK,1);

if (i<140 && j>=0){
ObjectCreate("Projectedx"+IntegerToString(i), OBJ_TEXT, 0, Time[13], HighBuffer[i]+80*Point);
ObjectSetText("Projectedx"+IntegerToString(i), "UnFilled: "+DoubleToStr(HighBuffer[i],4), 16, "Arial Black", clrMagenta);}
}

}

}



//downside projection


if (Period()==5 && i<30 && iHigh(NULL,240,i+3)-iLow(NULL,240,i+1)>FSize*27*Point && iLow(NULL,240,i+1)<iLow(NULL,240,i+3) && iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5<iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i)-FMax*5.5*Point && !(iClose(symbol,240,i+1)>iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1) && iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1)) ){
LowBuffer2[i*48]=iLow(NULL,240,i+1);
HighBuffer2[i*48]=iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5;

}


else if (Period()==60 && iHigh(NULL,240,i+3)-iLow(NULL,240,i+1)>FSize*27*Point && iLow(NULL,240,i+1)<iLow(NULL,240,i+3) && iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5<iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i)-FMax*5.5*Point && !(iClose(symbol,240,i+1)>iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1) && iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1)) && iLow(NULL,240,iLowest(NULL,0,MODE_LOW,3,i))<iLow(NULL,240,iLowest(NULL,0,MODE_LOW,9,i+3))-250*Point){
LowBuffer2[i*4]=iLow(NULL,240,i+1);
HighBuffer2[i*4]=iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5; }



else if (Period()>60 && iHigh(NULL,240,i+3)-iLow(NULL,240,i+1)>FSize*27*Point && iLow(NULL,240,i+1)<iLow(NULL,240,i+3) && iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5<iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i)-FMax*5.5*Point && !(iClose(symbol,240,i+1)>iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1) && iLow(symbol,240,i+1)<iMA(NULL,240,52,0,MODE_EMA, PRICE_MEDIAN,i+1)) && iLow(NULL,240,iLowest(NULL,0,MODE_LOW,3,i))<iLow(NULL,240,iLowest(NULL,0,MODE_LOW,9,i+3))-250*Point){
if (Period()==240){ LowBuffer2[i]=iLow(NULL,240,i+1);
HighBuffer2[i]=iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5; }


ObjectCreate("ProjectedXLR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5+50*Point);
ObjectSetText("ProjectedXLR"+IntegerToString(i), " "+DoubleToStr(NormalizeDouble(iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5,4),4), 16, "Arial Black", clrBlack);
ObjectCreate("ProjectedXR"+IntegerToString(i), OBJ_TEXT, 0, Time[i+2], iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5+50*Point);
ObjectSetText("ProjectedXR"+IntegerToString(i), DoubleToStr(NormalizeDouble(iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5,4),4), 16, "Arial Black", clrDarkGreen);
if (iHigh(NULL,240,iHighest(NULL,240,MODE_HIGH,50,i))-iLow(NULL,240,i)<1700*Point) ObjectSetText("ProjectedXR"+IntegerToString(i), DoubleToStr(NormalizeDouble(iLow(NULL,240,i+1)-(iHigh(NULL,240,i+3)-iLow(NULL,240,i+1))*.5,4),4), 16, "Arial Black", clrGray);

if (Period()>60 && i>0){
j=i-1;
while (j>=0){
if (iLow(symbol,0,j)<HighBuffer2[i] && iHigh(symbol,0,j)>HighBuffer2[i]) break;
j--;
}
if (iLow(symbol,0,j)<HighBuffer2[i] && iHigh(symbol,0,j)>HighBuffer2[i] && HighBuffer2[i]<iMA(NULL,0,52,0,MODE_EMA, PRICE_LOW,i)-FMax*5*Point) {

if (i<1000){
ObjectCreate(0,"Projectedx"+i,OBJ_TREND,0,Time[i],HighBuffer2[i],Time[j],HighBuffer2[i]);
ObjectSetInteger(0,"Projectedx"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projectedx"+i,OBJPROP_COLOR,clrDarkGreen);
ObjectSet("Projectedx"+i,OBJPROP_WIDTH,3);
ObjectSet("Projectedx"+i,OBJPROP_BACK,1);
last_encounter_d = j;
}


if (i<40){
ObjectCreate("Projected"+IntegerToString(j), OBJ_TEXT, 0, Time[j+2], HighBuffer2[i]-10*Point);
ObjectSetText("Projected"+IntegerToString(j), "X-Fill!", 16, "Arial Black", clrDarkGreen);

}
}

else if (j<0){
ObjectCreate(0,"Projectedx"+i,OBJ_TREND,0,Time[5],HighBuffer2[i],Time[0],HighBuffer2[i]);
ObjectSetInteger(0,"Projectedx"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projectedx"+i,OBJPROP_COLOR,clrBlue);
ObjectSet("Projectedx"+i,OBJPROP_WIDTH,3);
ObjectSet("Projectedx"+i,OBJPROP_BACK,1);


if (i<140 && j>=0){
ObjectCreate("Projectedy"+IntegerToString(i), OBJ_TEXT, 0, Time[13], HighBuffer2[i]+50*Point);
ObjectSetText("Projectedy"+IntegerToString(i), "UnFilled: "+DoubleToStr(HighBuffer2[i],4), 16, "Arial Black", clrPurple);}
}
}

}

if (Period()==240 && HighBuffer[i+9]!=EMPTY_VALUE && i<50 && High[i+8]<HighBuffer[i+9] && High[i+7]<HighBuffer[i+9] && High[i+6]<HighBuffer[i+9] && High[i+5]<HighBuffer[i+9] && High[i+4]<HighBuffer[i+9] && High[i+3]<HighBuffer[i+9] && High[i+2]<HighBuffer[i+9] && High[i+1]<HighBuffer[i+9]) {

if (i>1) {

j=i-1;

while (j>=0){
if (High[j]>HighBuffer[i+9]) break;
j--;}

if (j<0) {

ObjectCreate("EPERJES"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+2], HighBuffer[i+9], Time[i], HighBuffer[i+9]+FSize/2*10*Point);
ObjectSetInteger(0,"EPERJES"+DoubleToStr(i),OBJPROP_COLOR,clrOrange);
}}}

if (Period()==240 && HighBuffer2[i+9]!=EMPTY_VALUE && i<50 && Low[i+8]>HighBuffer2[i+9] && Low[i+7]>HighBuffer2[i+9] && Low[i+6]>HighBuffer2[i+9] && Low[i+5]>HighBuffer2[i+9] && Low[i+4]>HighBuffer2[i+9] && Low[i+3]>HighBuffer2[i+9] && Low[i+2]>HighBuffer2[i+9] && Low[i+1]>HighBuffer2[i+9]) {

if (i>1) {

j=i-1;

while (j>0){
if (Low[j]<HighBuffer2[i+9]) break;
j--;}

if (j==0) {
ObjectCreate("EPERJES"+DoubleToStr(i), OBJ_RECTANGLE, 0, Time[i+2], HighBuffer2[i+9], Time[i], HighBuffer2[i+9]-FSize/2*10*Point);
ObjectSetInteger(0,"EPERJES"+DoubleToStr(i),OBJPROP_COLOR,clrOrange);
}}}

}
}


deletetxt1("KAROLY");

if (last_encounter_u>8 && last_encounter_u<last_encounter_d){
ObjectCreate("EPERJES", OBJ_TEXT, 0, Time[25], Close[0]+250*Point);
ObjectSetText("EPERJES", "Play Short Below: "+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,last_encounter_u-8)),4),4), 16, "Arial Black", clrCrimson);


ObjectCreate("KAROLY", OBJ_TEXT, 0, Time[25], Close[0]+150*Point);
ObjectSetText("KAROLY", "Play Long From: "+DoubleToStr(NormalizeDouble(iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,8,last_encounter_u-8))+60*Point,4),4), 16, "Arial Black", clrPurple);


}


if (last_encounter_d>8 && last_encounter_u>last_encounter_d){
ObjectCreate("EPERJES", OBJ_TEXT, 0, Time[25], Close[0]+250*Point);
ObjectSetText("EPERJES", "Play Long Above: "+DoubleToStr(NormalizeDouble(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,last_encounter_d-8)),4),4), 16, "Arial Black", clrDarkGreen);

ObjectCreate("KAROLY", OBJ_TEXT, 0, Time[25], Close[0]+150*Point);
ObjectSetText("KAROLY", "Play Short From: "+DoubleToStr(NormalizeDouble(iLow(symbol,0,iLowest(symbol,0,MODE_LOW,8,last_encounter_d-8))-60*Point,4),4), 16, "Arial Black", clrPurple);


}

if (last_encounter_u>8){

ObjectCreate("EPERJESRACK"+i, OBJ_RECTANGLE, 0, Time[last_encounter_u], Close[last_encounter_u], Time[last_encounter_u-8], iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,9,last_encounter_u-8)));
ObjectSet("EPERJESRACK"+i,OBJPROP_BACK,1);
if (Close[0]<iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,9,last_encounter_u-8))+60*Point) ObjectSetInteger(0,"EPERJESRACK"+i,OBJPROP_COLOR,clrCrimson);
else ObjectSetInteger(0,"EPERJESRACK"+i,OBJPROP_COLOR,clrGreen);
}


if (last_encounter_d>8){
ObjectCreate("EPERJESBACK"+i, OBJ_RECTANGLE, 0, Time[last_encounter_d], Close[last_encounter_d], Time[last_encounter_d-8], iLow(symbol,0,iLowest(symbol,0,MODE_LOW,9,last_encounter_d-8)));
ObjectSet("EPERJESBACK"+i,OBJPROP_BACK,1);

if (Close[0]>iLow(symbol,0,iLowest(symbol,0,MODE_LOW,9,last_encounter_d-8))-60*Point) ObjectSetInteger(0,"EPERJESBACK"+i,OBJPROP_COLOR,clrGreen);
else ObjectSetInteger(0,"EPERJESBACK"+i,OBJPROP_COLOR,clrCrimson);


}


for (i = 1200 ; i >= 0; i--){
RSI2[i]=iRSI(symbol,0,2,PRICE_MEDIAN,i);
}

for (i = 1200 ; i >= 0; i--){
if (i>0
/// && RSI2[i-1]<=RSI2[i]
&& High[i+1]>High[i+2]
&& RSI2[i+2]<99.9
&& RSI2[i+2]>96.2
&& RSI2[i+3]<99.8
&& RSI2[i+5]<93.5
&& High[i]>guardrailu[i]+100*Point
&& (Close[i]<High[i]-100*Point || Close[i-1]<High[i-1]-100*Point)
&& (RSI2[i-1]>99 || RSI2[i-1]<67)
&& (High[i]<guardrailu[i]+400*Point || High[i]>guardrailu[i]+680*Point)
&& ((iMFI(symbol,0,14,i+2)<65 && iMFI(symbol,0,14,i+2)>51.5) || iMFI(symbol,0,14,i)>83 )
&& RSI2[i+2]<99.8
/// && RSI2[i+1]>=RSI2[i+2]
&& RSI2[i]>65
&& RSI2[i]>99
// && RSI2[i-1]<77
){
ObjectCreate("HOCUS"+IntegerToString(i),OBJ_VLINE,1, Time[i], 0);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_COLOR,clrYellow);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_WIDTH,12);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_BACK,1);
if (i>0 && RSI2[i]>98 ){
ObjectCreate("LOTUSS"+IntegerToString(i), OBJ_TEXT, 1, Time[i+2], 60);
ObjectSetText("LOTUSS"+IntegerToString(i), "H3?", 36, "Impact", Blue);
}}

if (i>0 && RSI2[i-1]>RSI2[i] && Low[i+1]<guardraild[i+1] && RSI2[i]>2 &&
((RSI2[i]<RSI2[i+1] && RSI2[i+1]>.5 && RSI2[i+1]<3.5 && RSI2[i+2]<4.5)
|| (RSI2[i]>RSI2[i+1] && RSI2[i+1]>.5 && RSI2[i+1]<3.5 && RSI2[i+2]>3.5 && RSI2[i+2]<7
&& iMFI(symbol,0,14,i+1)<45
&& iMFI(symbol,0,14,i+1)>25 ))
&& iLow(symbol,0,iLowest(symbol,0,MODE_LOW,6,i))< iLow(symbol,0,iLowest(symbol,0,MODE_LOW,10,i+7))
)


{
ObjectCreate("HOCUS"+IntegerToString(i),OBJ_VLINE,1, Time[i+1], 0);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_COLOR,clrGold);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_WIDTH,12);
ObjectSet("HOCUS"+IntegerToString(i),OBJPROP_BACK,1);
}
}

if (Period()<240){
for(i=lookback; i>=0; i--) {
if (i>0 && HighBuffer[i]!=EMPTY_VALUE ){

j=i-1;
while (j>=0){
if (High[j]>HighBuffer[i] && Low[j]<HighBuffer[i] && HighBuffer[i]!=EMPTY_VALUE) break;
j--;
}
if (High[j]>HighBuffer[i] && Low[j]<HighBuffer[i] && HighBuffer[i]!=EMPTY_VALUE) {

ObjectCreate(0,"Projected"+i,OBJ_TREND,0,Time[i],HighBuffer[i],Time[j],HighBuffer[i]);
ObjectSetInteger(0,"Projected"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projected"+i,OBJPROP_COLOR,clrRed);
ObjectSet("Projected"+i,OBJPROP_WIDTH,3);
ObjectSet("Projected"+i,OBJPROP_BACK,1);

ObjectCreate("Projected"+IntegerToString(j), OBJ_TEXT, 0, Time[j+2], HighBuffer[i]+20*Point);
ObjectSetText("Projected"+IntegerToString(j), "X-Fill! 40+pips counter", 16, "Arial Black", clrCrimson);


}

else if (j<0 && HighBuffer[i]!=EMPTY_VALUE){

ObjectCreate(0,"Projected"+i,OBJ_TREND,0,Time[5],HighBuffer[i],Time[0],HighBuffer[i]);
ObjectSetInteger(0,"Projected"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projected"+i,OBJPROP_COLOR,clrPurple);
ObjectSet("Projected"+i,OBJPROP_WIDTH,3);
ObjectSet("Projected"+i,OBJPROP_BACK,1);

if (j>=0){
ObjectCreate("Projectedx"+IntegerToString(i), OBJ_TEXT, 0, Time[13], HighBuffer[i]+80*Point);
ObjectSetText("Projectedx"+IntegerToString(i), "UnFilled: "+DoubleToStr(HighBuffer[i],4), 16, "Arial Black", clrMagenta);}
}

}

if (i>0 && HighBuffer2[i]!=EMPTY_VALUE){

j=i-1;
while (j>=0){
if (Low[j]<HighBuffer2[i] && High[j]>HighBuffer2[i] && HighBuffer2[i]!=EMPTY_VALUE) break;
j--;
}
if (Low[j]<HighBuffer2[i] && High[j]>HighBuffer2[i] && HighBuffer2[i]!=EMPTY_VALUE) {

ObjectCreate(0,"Projectedx"+i,OBJ_TREND,0,Time[i],HighBuffer2[i],Time[j],HighBuffer2[i]);
ObjectSetInteger(0,"Projectedx"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projectedx"+i,OBJPROP_COLOR,clrDarkGreen);
ObjectSet("Projectedx"+i,OBJPROP_WIDTH,3);
ObjectSet("Projectedx"+i,OBJPROP_BACK,1);


ObjectCreate("Projected"+IntegerToString(j), OBJ_TEXT, 0, Time[j+2], HighBuffer2[i]-10*Point);
ObjectSetText("Projected"+IntegerToString(j), "X-Fill! 40+pips counter", 16, "Arial Black", clrDarkGreen);
}

else if (j<0 && HighBuffer2[i]!=EMPTY_VALUE){
ObjectCreate(0,"Projected"+i,OBJ_TREND,0,Time[5],HighBuffer2[i],Time[j],HighBuffer2[i]);
ObjectSetInteger(0,"Projected"+i,OBJPROP_RAY_RIGHT,false);
ObjectSet("Projected"+i,OBJPROP_COLOR,clrBlue);
ObjectSet("Projected"+i,OBJPROP_WIDTH,3);
ObjectSet("Projected"+i,OBJPROP_BACK,1);


if (j>=0){
ObjectCreate("Projectedy"+IntegerToString(i), OBJ_TEXT, 0, Time[13], HighBuffer2[i]+50*Point);
ObjectSetText("Projectedy"+IntegerToString(i), "UnFilled: "+DoubleToStr(HighBuffer2[i],4), 16, "Arial Black", clrPurple);}
}
}

}
}




ObjectCreate("Projected", OBJ_TEXT, 0, Time[13], (iHigh(symbol,0,iHighest(symbol,0,MODE_HIGH,30,0))+iLow(symbol,0,iLowest(symbol,0,MODE_LOW,30,0)))/2);
ObjectSetText("Projected", "Q: "+DoubleToStr(NormalizeDouble(ATRAVG[1]*10000,4),1), 16, "Arial Black", clrPurple);

deletetxt1("ENVELOPE");
deletetxt1("MINIATAURE");



deletetxt1("KLOPF");

if (iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)>iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)){
ObjectCreate("KLOPF1", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)+265*Point);
ObjectSetText("KLOPF1", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)+220*Point,4),4)+" MA SELL", 12, "Arial Black", Black);
ObjectCreate("KLOPF2", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)-200*Point);
ObjectSetText("KLOPF2", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)-220*Point,4),4)+" MA BUY", 12, "Arial Black", Black);
}
else {
ObjectCreate("KLOPF1", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)+265*Point);
ObjectSetText("KLOPF1", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)+220*Point,4),4)+" MA SELL", 12, "Arial Black", Black);
ObjectCreate("KLOPF2", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)-200*Point);
ObjectSetText("KLOPF2", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)-220*Point,4),4)+" MA BUY", 12, "Arial Black", Black);
}



if (gp100[i]!=EMPTY_VALUE){
ObjectCreate("KLOPF3", OBJ_TEXT, 0, Time[0], gp100[0]+265*Point);
ObjectSetText("KLOPF3", " "+DoubleToStr(NormalizeDouble(gp100[0]+50*Point,4),4)+" H3 SELL", 12, "Arial Black", Black);
// ObjectCreate("KLOPF4", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)-200*Point);
// ObjectSetText("KLOPF4", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,17,0,MODE_EMA, PRICE_MEDIAN,0)-220*Point,4),4)+" MA BUY", 12, "Arial Black", Black);
}
else if (gm100[i]!=EMPTY_VALUE){
ObjectCreate("KLOPF3", OBJ_TEXT, 0, Time[0], gm100[0]+265*Point);
ObjectSetText("KLOPF3", " "+DoubleToStr(NormalizeDouble(gm100[0]-50*Point,4),4)+" H3 BUY", 12, "Arial Black", Black);
// ObjectCreate("KLOPF4", OBJ_TEXT, 0, Time[0], iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)-200*Point);
// ObjectSetText("KLOPF4", " "+DoubleToStr(NormalizeDouble(iMA(Symbol(),0,11,0,MODE_EMA, PRICE_MEDIAN,0)-220*Point,4),4)+" MA BUY", 12, "Arial Black", Black);
}


ObjectCreate("MINIATAURE"+15,OBJ_LABEL,2, 2,0);
ObjectSetText("MINIATAURE"+15,"Insta Toffee (14th bar) -> Corr / Deep Corr",21,"Impact");
ObjectSet("MINIATAURE"+15,OBJPROP_CORNER,2);
ObjectSet("MINIATAURE"+15,OBJPROP_XDISTANCE,35);
ObjectSet("MINIATAURE"+15,OBJPROP_YDISTANCE,57);
ObjectSet("MINIATAURE"+15,OBJPROP_COLOR,clrDeepPink);

ObjectCreate("MINIATAURE"+16,OBJ_LABEL,2, 2,0);
ObjectSetText("MINIATAURE"+16,"H2 -> +1 LINE BACK",21,"Impact");
ObjectSet("MINIATAURE"+16,OBJPROP_CORNER,2);
ObjectSet("MINIATAURE"+16,OBJPROP_XDISTANCE,35);
ObjectSet("MINIATAURE"+16,OBJPROP_YDISTANCE,87);
ObjectSet("MINIATAURE"+16,OBJPROP_COLOR,clrDeepPink);


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

Rock Paper Volatility

Typical. I come up with a top notch signal and the first live call turns out to be an exception. Here’s the missing maual, Murphy.

After the lift call button is pressed, the game of rock, paper, volatility is played.

Duration: 3hrs. The bears win and the lift call gets carried out with the call button representing a peak.

However if the volatility shows up first, price would not get too far on the downside / embedding shall persist and the next BB breach would be a continiation entry.

///lift button dn 
if (i>0 && stoch120[i]>94 && stoch120[i]>=stoch120[i+1] && stoch120[i]>stoch120[i-1]
&& (((High[i]>iBands(symbol,30,240,2,0,PRICE_MEDIAN,MODE_UPPER,i)+180*Point && mfi[i]>70))
|| (mfi[i]>79 && stoch120[i]>96 &&
( High[i]<iBands(symbol,30,240,2,0,PRICE_MEDIAN,MODE_UPPER,i)-100*Point || High[i]>iBands(symbol,30,240,2,0,PRICE_MEDIAN,MODE_UPPER,i)+100*Point)
))
&& (High[i]<iBands(symbol,30,60,2,0,PRICE_MEDIAN,MODE_UPPER,i)+150*Point || (High[i]>iBands(symbol,30,240,2,0,PRICE_MEDIAN,MODE_UPPER,i)+400*Point && High[i]<iBands(symbol,30,240,2,0,PRICE_MEDIAN,MODE_UPPER,i)+450*Point)) ){
if (High[i-1]>High[i])ObjectCreate("Pretty"+IntegerToString(i),OBJ_VLINE,0, Time[i-1], 0);
else ObjectCreate("Pretty"+IntegerToString(i),OBJ_VLINE,0, Time[i], 0);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_COLOR,clrOrange );
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_WIDTH,9);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
ObjectSet("Pretty"+IntegerToString(i),OBJPROP_BACK,1);
}

An F-1 market ends in a reversal is started by two closes on the other side of the S30, confirmed by a 40+ pip counter volatility print if these two do not coincide. This would lead to an almost neutral, F1 market.
Target W3 ATR near end.

I bet you don’t believe that a parabolic move’s ending point can be projected in any way. It can be. It is measured from the last consolidation level and uses the 3-day ATR 10-30 percent. You can have this number figured for the day, scaling out is advised. Sell some at 1.1113, more at 1.1120 etc.

Touching down on the lower BB is a zeroing, a reset / start of new leg (yellow hoop). An F0 market may end in a Flash Gordon (momentum divergence).

As the market spins up, it changes character from F0 to F-1 (F-1: 14 out of the last 16 candles closed above/below the S-30). If you look at the image above, the market can be called qualified if one side prints values beyond 80 pips (200 sample distance of current price).

 ///F qualifier
if (ExtATRBuffer[i]<-80) q[i]=-1;
if (ExtATRBuffer2[i]>80) q[i]=1;

///C qualifier
if (Close[i]<iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)) c[i]=-1;
if (Close[i]>iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)) c[i]=1;

...

ObjectCreate("Libec"+6,OBJ_LABEL,3, 0,0);
ObjectSetText("Libec"+6, "Unqualified Market", 41, "Arial Black", Gray);
if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]>13) ObjectSetText("Libec"+6, "Qualified Bull", 41, "Arial Black", LimeGreen);
if (q[0]+q[1]+q[2]+q[3]+q[4]+q[5]+q[6]+q[7]+q[8]+q[9]+q[10]+q[11]+q[12]+q[13]+q[14]+q[15]<-13) ObjectSetText("Libec"+6, "Qualified Bear", 41, "Arial Black", DeepPink);
ObjectSet("Libec"+6,OBJPROP_CORNER,3);
ObjectSet("Libec"+6,OBJPROP_XDISTANCE,20);
ObjectSet("Libec"+6,OBJPROP_YDISTANCE,67);
ObjectSet("Libec"+6,OBJPROP_BACK,1);

There are a lot of ways you can use the color scale (for the No. 1 plots). They are “hot green / red” if the price is beyond the 8EMO (and 14 out of the last 16 closes fall on one side of the S-30). Blue is a close back inside the 8EMO, but outside the the S-30. Black is a close back at the other side of the S-30. For instance, the continuation buys above are starting the black print. You may want to dump a little bit on the 3rd Green block – see ATR projection above for a winning combo.



if (q[i]==1 || q[i]==-1) {
///F0 market
if (q[i]==1 && Close[i+2]>iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_LOWER,i+2)) {ObjectCreate("CLOT"+IntegerToString(i),OBJ_TEXT, 3, Time[i], 24.5); ObjectSetText("CLOT"+IntegerToString(i), CharToStr(108), 24, "WingDings", clrSpringGreen);}
if (q[i]==-1 && Close[i+2]<iBands(symbol,0,30,2,0,PRICE_MEDIAN,MODE_UPPER,i+2)){ObjectCreate("CLOT"+IntegerToString(i),OBJ_TEXT, 3, Time[i], 14.5); ObjectSetText("CLOT"+IntegerToString(i), CharToStr(108), 24, "WingDings", clrRed);}
/// F-1
if (q[i]==1 && c[i]+c[i+1]+c[i+2]+c[i+3]+c[i+4]+c[i+5]+c[i+6]+c[i+7]+c[i+8]+c[i+9]+c[i+10]+c[i+11]+c[i+12]+c[i+13]+c[i+14]+c[i+15]>13) {ObjectCreate("CLOTS"+IntegerToString(i),OBJ_TEXT, 3, Time[i], 75.5); ObjectSetText("CLOTS"+IntegerToString(i), CharToStr(140), 24, "WingDings", clrSpringGreen); if (Close[i]<iMA(symbol,0,8,0,MODE_EMA,PRICE_OPEN,i)) ObjectSet("CLOTS"+IntegerToString(i), OBJPROP_COLOR, Blue); if (Close[i]<iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)) ObjectSet("CLOTS"+IntegerToString(i), OBJPROP_COLOR, Black); }
if (q[i]==-1 && c[i]+c[i+1]+c[i+2]+c[i+3]+c[i+4]+c[i+5]+c[i+6]+c[i+7]+c[i+8]+c[i+9]+c[i+10]+c[i+11]+c[i+12]+c[i+13]+c[i+14]+c[i+15]<-13) {ObjectCreate("CLOTS"+IntegerToString(i),OBJ_TEXT, 3, Time[i], -55.5); ObjectSetText("CLOTS"+IntegerToString(i), CharToStr(140), 24, "WingDings", clrRed); if (Close[i]>iMA(symbol,0,8,0,MODE_EMA,PRICE_OPEN,i)) ObjectSet("CLOTS"+IntegerToString(i), OBJPROP_COLOR, Blue); if (Close[i]>iMA(symbol,0,30,0,MODE_SMA,PRICE_MEDIAN,i)) ObjectSet("CLOTS"+IntegerToString(i), OBJPROP_COLOR, Black);}
}

Chicane has a song called Middledistance Runner. It is good to know that there are other smartasses out there.

The Guy made a full time carrer of scamming. Not sure that he would die of natural causes.

I’m exploring Aztec Records stuff lately.