# Make or Break (MOB) Indicator for ThinkorSwim

#### Billy101

##### New member
Hi Guys,

Since this is my first post, before asking for some help I´d like to share a very useful toll (for me) to identify waves, on below link you´ll find thinkscript for Elliot Wave Oscillator with breakout bands as found on esignal, helps pretty well to identify wave 3 and wave 5.

Now I´d like to ask for some help from more experienced users, I came across with this code that seems to be MOB indicator (another esignal), I´m a newbie on thinkscrip so if some could give a hand will be much appreciated.

Awsome forum, look forward sharing trading ideas!

Thanks!

Rich (BB code):
``````_SECTION_BEGIN("MOB Simulation");
SetChartOptions(0,chartShowArrows|chartShowDates);

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, High %g, Low %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

//Plot Colored Candles :)
PlotOHLC(O ,H ,L ,C ,"Price",IIf(C>O,colorGreen,colorRed),styleCandle);

Offset = 5; //Recommended to use two sheets: one with 5 and another with 7, or maybe other offset value

Avgmov = Offset * MA (abs(ROC(C,1)) ,20);
per = LastValue(Avgmov) ;
numberOfBars = Cum(1);
Range = 0.01;
PS = TroughBars(L, per, 1) == 0;
Title = Title + StrFormat("AVGMOV %g|%g|%g
", Avgmov,per, numberOfBars);

xa = LastValue(ValueWhen (PS,numberOfBars,1)) ;//x from last trough
Ya = LastValue(ValueWhen (PS,L,1)) ;//y (Low) last trough

PR = PeakBars(H,per, 1) == 0;
xb = LastValue(ValueWhen (PR,numberOfBars,1)) ;//x from last peak
Yb = LastValue(ValueWhen (PR,H,1)) ;//y (High) last peak
Title = Title + StrFormat("PS %g|%g|%g|%g|%g|%g", PS,xa,ya,PR,xb,yb);

Trough_ReTest = abs((L/ya)-1) <Range;
Peak_ReTest = abs((H/yb)-1) <Range;
Trough_Cross = Cross(ya,C);
Peak_Cross = Cross(C,yb);

//UP = upSwing DN = downSwing
UP = xb>xa;//upSwing
DN = xa>xb;//DownSwing
RT23_6 = IIf(UP,yb-(yb- ya)*0.236, IIf(DN,ya+ (yb-ya)*0.236,-1e10) );
RT38_2 = IIf(UP,yb-(yb- ya)*0.382, IIf(DN,ya+ (yb-ya)*0.382,-1e10) );
RT50_0 = IIf(UP,yb-(yb- ya)*0.500, IIf(DN,ya+ (yb-ya)*0.500,-1e10) );
RT61_8 = IIf(UP,yb-(yb- ya)*0.618, IIf(DN,ya+ (yb-ya)*0.618,-1e10) );
RT78_6 = IIf(UP,yb-(yb- ya)*0.786, IIf(DN,ya+ (yb-ya)*0.786,-1e10) );

RT12_7 = IIf(UP,yb-(yb- ya)*1.27, IIf(DN,ya+ (yb-ya)*1.27,-1e10) );
RT16_1 = IIf(UP,yb-(yb- ya)*1.61, IIf(DN,ya+ (yb-ya)*1.61,-1e10) );

RT=
IIf(UP,-100* (yb-L)/(yb- ya),
100*(H-ya)/( yb-ya));//Retracement_ Value
InZone = C<yb & C>ya;//use it for filter to receive only signals that are in in the Retracement zone.
Sell = Peak_ReTest OR trough_Cross;
Filter = 1;
//Plot(C,"C",1, 64);
Plot(IIf(numberOfBars>xa, ya,-1e10) ,"Bottom" ,colorBrown, 1+8);
Plot(IIf(numberOfBars>xb, yb,-1e10) ,"Top",colorBrown,1+8);
xab = IIf(xb>xa,xb, xa);
//Retracements
Plot(IIf(numberOfBars>= xab+1,RT23_6,-1e10), "R2 23.6% Retr.",5,styleLine | styleNoTitle | styleDots);
Plot(IIf(numberOfBars>= xab+1,RT38_2,-1e10), "R1 38.2% Retr.",5,styleLine | styleNoTitle | styleDots);
Plot(IIf(numberOfBars>= xab+1,RT50_0,-1e10), "ZR 50.0% Retr.",colorBlue, styleLine | styleNoTitle | styleDots);
Plot(IIf(numberOfBars>= xab+1,RT61_8,-1e10), "S1 61.8% Retr.",colorDarkRed, styleLine | styleNoTitle | styleDots);
Plot(IIf(numberOfBars>= xab+1,RT78_6,-1e10), "S2 78.6% Retr.",colorDarkRed, styleLine | styleNoTitle |styleDots);

// Plot the MOB Cloud
Plot(IIf(numberOfBars>= xab+1,RT12_7,-1e10), "127% ext.",colorBrightGreen, styleNoTitle | styleNoLabel | styleLine);
Plot(IIf(numberOfBars>= xab+1,RT16_1,-1e10), "161% ext.",colorBrightGreen, styleNoTitle | styleNoLabel | styleLine);
CondA=IIf(numberOfBars>= xab+1,RT12_7,-1e10);
CondB=IIf(numberOfBars>= xab+1,RT16_1,-1e10);
PlotOHLC(Condb,Condb,Conda,Conda,"",ColorRGB(30,130,30),styleCloud, styleNoTitle | styleNoLabel);

GraphXSpace = 0.5;

//Plot(Gauss2ord(C,5),"M5",4,1);
//GraphXSpace = 1.5;
//Title = Name()+" per = "+WriteVal(per, 1.0) +" Close = "+WriteVal(C, 1.2)+ " ("+WriteVal( ROC(C,1), 1.2)+"%)" +" Current Correction = "+WriteVal(RT, 1.0)+"%";

//Plot( Volume,"V", ParamColor("Color", colorBlueGrey ), ParamStyle( "Style", stylehidden| styleOwnScale | styleThick, maskHistogram ), 2 );
_SECTION_END( );``````

Last edited by a moderator:

#### BenTen

Staff member
Staff
VIP
@Billy101 Thank you for the nice gesture. Where did you get the source code from and what does this MOB indicator do?

Last edited:

#### BenTen

Staff member
Staff
VIP
@Billy101 Awesome, thanks for the PDF as well. I edit your comment with a new link to the document instead of the Google one.

Last edited:

#### Bluephire1914

##### New member
2019 Donor
The script is not working - can you please link the TOS chart setup tos.mx?

Last edited:

#### Billy101

##### New member
Hi! @Bluephire1914 , the script posted is on Amibroker AFL code. I posted so maybe more experienced TOS users could cnvert it. I´m still working on it, not done yet.

Last edited:

#### ykd2018x

##### Member
2019 Donor
VIP
I read the whole pdf file, then copied the study saw its not working, pls make it so can try it, request to all coders here, thanks

Last edited:

#### Saylarr

##### Member
VIP
Hi, were you able to get it to work in TOS?

#### Ramesh16

##### Member
VIP
copy n paste does not work

#### Ramesh16

##### Member
VIP
Is some one successful using mob code??

#### JohnnieCakes

##### New member
VIP
Tried the copy and paste code and giving invalid statements before the saving of script.

##### Well-known member
VIP
Tried the copy and paste code and giving invalid statements before the saving of script.
The code in the first post is NOT Thinkscript it is from another trading platform altogether and would need to be converted to Thinkscript to be useful... That's why you are getting multiple errors...

#### JohnnieCakes

##### New member
VIP
The code in the first post is NOT Thinkscript it is from another trading platform altogether and would need to be converted to Thinkscript to be useful... That's why you are getting multiple errors...
rad-Thanks for the update and clarification. Hopefully, we can get someone to port it.