+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

FHB Advanced Trading System

The FHB Advanced Trading System in Amibroker AFL integrates multiple indicators and strategies to provide a comprehensive approach to trading. This system employs a combination of technical indicators, possibly including Bollinger Bands, stochastic oscillators, moving averages, and trend-based indicators, aiming to offer a holistic view of the market conditions. Traders can use this system to create customized strategies tailored to their preferences and risk tolerance.

///prepared by Vinod k. iyer
pShowtradeLines = ParamToggle("Show 1000 H/L Lines", "No|Yes", 1);
pShowRangeLines = ParamToggle("Show Day H/L Lines", "No|Yes", 0);
SetChartOptions(0,chartShowArrows|chartShowDates|chartWrapTitle|chartHideQuoteMarker);
Limit=Param(" Trade Till (Hour)(Min)(Sec)",153000,103000,153000,100);
since=(TimeNum() >= 095959 AND TimeNum()<= Limit) AND (DateNum()==LastValue(DateNum()));
since1=(TimeNum() >= 090000 AND TimeNum()<= Limit) AND (DateNum()==LastValue(DateNum()));
autoHL = ParamToggle("AUTO 1st Hr H/L?", "No|Yes", 1);
FHHL=Param(" Manual High Value",0,0,10000,0.01);
FLLL=Param(" Manual Low Value",0,0,10000,0.01);


inv=Param("INVEST CAPITAL", 25000,1000, 1000000, 500 );

PlotOHLC(Open,High,Low,Close,"", IIf(CCI(14) > ((Ref(CCI(14),-1)+Ref(CCI(14),-2))/2),colorAqua,colorBrown) , styleCandle|styleThick);
_SECTION_BEGIN("Volume");
Plot( Volume, _DEFAULT_NAME(), IIf( C > O, ParamColor("Up Color", colorGreen ), ParamColor("Down Color", colorRed ) ), ParamStyle( "Style", styleHistogram | styleOwnScale | styleThick | styleNoLabel, maskHistogram ), 2 );

_SECTION_END();

TimeFrameSet(in1Minute);

FH_Range = (TimeNum() >= 090000 AND TimeNum()<= 100000) AND (DateNum()==LastValue(DateNum()));
FH_Prices = High * FH_Range;
FH_Marker = BarsSince(FH_Range>0);

//Find number of bars in 60 minutes 
Num_Bars = 3600 / Interval(1); 

isAll = True;
isRth = TimeNum() >= 084500 AND TimeNum() <= 100000;
isdRth = TimeNum() >= 084500 AND TimeNum() <= 160000;
aRthL = IIf(isRth, L, 1000000);

aRthH = IIf(isdRth, H, Null);
aRthLd = IIf(isdRth, L, 1000000);
DayH = TimeFrameCompress( aRthH, inDaily, compressHigh );
DayH = TimeFrameExpand( DayH, inDaily, expandFirst );
DayL = TimeFrameCompress( aRthLd, inDaily, compressLow );
DayL = TimeFrameExpand( DayL, inDaily, expandFirst );


FHH1 = Ref(HHV(High*FH_Range,Num_Bars),-FH_Marker);
FHL1 = TimeFrameCompress( aRthL, inDaily, compressLow );
FHL1 = TimeFrameExpand( FHL1, inDaily, expandFirst );

FHH=IIf(autoHL==1,FHH1,FHHL);
FHL=IIf(autoHL==1,FHL1,FLLL);

btp=fhh+((fhh-fhl)*75/100);
stp=fhl-((fhh-fhl)*75/100);
TimeFrameRestore();
//line plot basics
Bars = BarsSince(TimeNum() >= 084500 AND TimeNum() < 100000) ;// AND DateNum()==LastValue(DateNum());
x0 = BarCount-LastValue(Bars);
x1 = BarCount-1;
DayHline=LineArray(x0,LastValue(DayH),x1,LastValue (DayH),0);
DayLline=LineArray(x0,LastValue(DayL),x1,LastValue (DayL),0);
FHH_Line = LineArray(x0,LastValue(FHH),x1,LastValue(FHH),0);
FHL_Line = LineArray(x0,LastValue(FHL),x1,LastValue(FHL),0);
btpline=LineArray(x0,LastValue(btp),x1,LastValue(btp),0);
stpline=LineArray(x0,LastValue(stp),x1,LastValue(stp),0);
perc=(fhh-fhl);
rrr=IIf((since & perc<=(fhl*1.5/100)),perc,0);

Plot(IIf(pShowRangeLines,DayHline,Null),"",colorYellow,styleLine|styleNoRescale);
Plot(IIf(pShowRangeLines,DayLline,Null),"",colorYellow,styleLine|styleNoRescale);
Plot(IIf(pShowtradeLines,FHH_Line,Null),"1000H",IIf(FH_Range==1,Null,colorBrightGreen),styleDots|styleNoRescale);
Plot(IIf(pShowtradeLines,FHL_Line,Null),"1000L",IIf(FH_Range==1,Null,colorRed),styleDots|styleNoRescale);
Plot(IIf(pShowtradeLines,btpLine,Null),"sell",IIf( FH_Range==1,Null,colorBrightGreen),styleDashed|styleNoRescale);
Plot(IIf(pShowtradeLines,stpLine,Null),"cover",IIf (FH_Range==1,Null,colorRed),styleDashed|styleNoRescale);

dy=ParamToggle("NR calc for", "RT SCAN|EOD SCAN", 0);

//nr7 / nr1 /nr8
TimeFrameSet(inDaily);
High1=IIf(O>H,O,H);
Low1=IIf(OO;
R=CO | C==O));
Reds=Cum(Red);
Greens=Cum(Green);
redr=IIf(red,O-C,0);
greenr=IIf(green,C-O,0);
Candles=Cum(red + green);
Os=Sum(redr,Candles);
ws=Sum(greenr,Candles);
_SECTION_BEGIN("Volatility");
periods= Param("Periods", 10, 2, 100 );
function ChaikinVolatility( periods )
{
return ROC( EMA( High - Low, periods ), periods );
}
_SECTION_END();
TimeFrameSet(in5Minute);
//TimeFrameSet(in5Minute);
since5=(TimeNum() >= 090000 AND TimeNum()<= 153000) AND (DateNum()==LastValue(DateNum()));
Candles5=(since5 & (CO | C==O));
Candles51=Cum(Candles5);
HaClose0 =EMA((O+H+L+C)/4,3); 
HaOpen0 = AMA( Ref( HaClose0, -1 ), 0.5 ); 
HaHigh0 = Max( H, Max( HaClose0, HaOpen0 ) ); 
HaLow0 = Min( L, Min( HaClose0, HaOpen0 ) ); 
CondB=Haopen0Haclose0;
TimeFrameRestore();


_SECTION_BEGIN("2");
//Compress= Param("Compression",3,0.20,100,0.10); 
TimeFrameSet(in15Minute);
since15=(TimeNum() >= 090000 AND TimeNum()<= 153000) AND (DateNum()==LastValue(DateNum()));
Candles15=(since15 & (CO | C==O));
Candles115=Cum(Candles15);
HaClose1 =EMA((O+H+L+C)/4,3); 
HaOpen1 = AMA( Ref( HaClose1, -1 ), 0.5 ); 
HaHigh1 = Max( H, Max( HaClose1, HaOpen1 ) ); 
HaLow1 = Min( L, Min( HaClose1, HaOpen1 ) ); 
CondB1=Haopen1 < Haclose1;CONDS1=Haopen1 >Haclose1;
TimeFrameRestore();

_SECTION_BEGIN("3");
//Compress= Param("Compression",6,0.20,100,0.10); 
TimeFrameSet(in15Minute*2);
since2=(TimeNum() >= 090000 AND TimeNum()<= 153000) AND (DateNum()==LastValue(DateNum()));
Candles2=(since2 & (CO | C==O));
Candles12=Cum(Candles2);
HaClose2 =EMA((O+H+L+C)/4,3); 
HaOpen2 = AMA( Ref( HaClose2, -1 ), 0.5 ); 
HaHigh2 = Max( H, Max( HaClose2, HaOpen2 ) ); 
HaLow2 = Min( L, Min( HaClose2, HaOpen2 ) ); 
CondB2=Haopen2 < Haclose2;CONDS2=Haopen2 > Haclose2;
TimeFrameRestore();


_SECTION_BEGIN("4");
//Compress= Param("Compression",12,0.20,100,0.10); 
TimeFrameSet(inHourly);
since3=(TimeNum() >= 090000 AND TimeNum()<= 153000) AND (DateNum()==LastValue(DateNum()));
Candles3=(since3 & (CO | C==O));
Candles13=Cum(Candles3);
HaClose3 =EMA((O+H+L+C)/4,3); 
HaOpen3 = AMA( Ref( HaClose3, -1 ), 0.5 ); 
HaHigh3 = Max( H, Max( HaClose3, HaOpen3) ); 
HaLow3 = Min( L, Min( HaClose3, HaOpen3 ) ); 
CondB3=Haopen3 < Haclose3;CONDS3=Haopen3 > Haclose3;
TimeFrameRestore();

Title= EncodeColor(colorWhite)+ Date() + " Tick = " + EncodeColor(5) + Interval()+
EncodeColor(55)+ " Open: "+ EncodeColor(colorWhite)+ WriteVal(O,format=1.2) + 
EncodeColor(55)+ " High: "+ EncodeColor(colorWhite) + WriteVal(H,format=1.2) +
EncodeColor(55)+ " Low: "+ EncodeColor(colorWhite)+ WriteVal(L,format=1.2) + 
EncodeColor(55)+ " Close: "+ WriteIf(C> Chg,EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(C,format=1.2)+ 
EncodeColor(55)+ " Change: "+ WriteIf(C> Chg,EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(ROC(C,1),format=1.2)+ "%"+

EncodeColor(55)+ " Volume: "+ EncodeColor(colorWhite)+ WriteVal(V,1)+EncodeColor(colorYellow) + " Lotsize: "+WriteVal(Lotsize,1)+" Lotsize/2: "+WriteVal((Lotsize/3)*2,1)+" Lotsize/3: "+WriteVal(Lotsize/3,1)+ WriteIf(rrr, " Range% "+(rrr)+" ","")+"\n"+
EncodeColor(colorYellow)+
Comm2=("heikin 5m : ")+
WriteIf(LastValue(Condb),EncodeColor(colorBrightGreen)+"+Up",
WriteIf(LastValue(Conds),EncodeColor(colorRed)+"-Down",EncodeColor(colorLightYellow)+"< Flat >"))+"\n"+
EncodeColor(colorYellow)+

Comm2=("heikin 15m : ")+
WriteIf(LastValue(Condb1),EncodeColor(colorBrightGreen)+"+Up",
WriteIf(LastValue(Conds1),EncodeColor(colorRed)+"-Down",EncodeColor(colorLightYellow)+"< Flat >"))+"\n"+
EncodeColor(colorYellow)+

Comm2=("heikin 30m : ")+
WriteIf(LastValue(Condb2),EncodeColor(colorBrightGreen)+"+Up",
WriteIf(LastValue(Conds2),EncodeColor(colorRed)+"-Down",EncodeColor(colorLightYellow)+"< Flat >"))+"\n"+
EncodeColor(colorYellow)+

Comm2=("heikin 1Hr : ")+
WriteIf(LastValue(Condb3),EncodeColor(colorBrightGreen)+"+Up",
WriteIf(LastValue(Conds3),EncodeColor(colorRed)+"-Down",EncodeColor(colorLightYellow)+"< Flat >"))+"\n"+


Comm2=("Trend: ")+
WriteIf(Greens>Reds,EncodeColor(colorBrightGreen)+ "+Up",
WriteIf(Reds>Greens,EncodeColor(colorRed)+"-Down",EncodeColor(colorLightYellow)+"< Flat >"))+"\n"+
EncodeColor(colorRed) +
WriteIf(Reds, "Reds: "+(reds)+" ","")+"\n"+
EncodeColor(colorBrightGreen) +
WriteIf(Greens, "Greens: "+(greens)+" ","")+"\n"+
EncodeColor(colorRed) +
Comm2=("Red Range: ")+
WriteVal(Os, 1.2)+"\n"+
EncodeColor(colorBrightGreen) +
Comm2=("Green Range: ")+
WriteVal(Ws, 1.2)+"\n"+
EncodeColor(colorRed) +
WriteIf(ChaikinVolatility( periods )<0, "Chaikin: "+(ChaikinVolatility( periods )
)+" ","")+"\n"+
EncodeColor(colorBrightGreen) +
WriteIf(ChaikinVolatility( periods )>0
, "Chaikin: "+(ChaikinVolatility( periods ))+" ","");
//patterns

_SECTION_BEGIN("Pattern Alerts");
SRbS = ParamToggle("S/R broken","Off,On",1);
SRcS = ParamToggle("S/R confirmed","Off,On",1);
PjabS = ParamToggle("Price just above/below","Off,On",1);
_SECTION_END();

_SECTION_BEGIN("Pattern Parameters");
PlotP1P2 = ParamToggle("Plot P1/P2 Shapes","Off,On",0);
P1Shape = Param("P1 Shape Typ",35,0,50,1);//default 35
P2Shape = Param("P2 Shape Typ",37,0,50,1);//default 37
Parallellinesswitch = ParamToggle("Plot Parallel Lines","Off,On",0);
DisRange = Param("Plot Parallel Lines Trigger",300,0,1000,20);

_SECTION_BEGIN("Pattern Styles");
Style_SL= ParamStyle("Support",styleLine+styleThick,maskDefault)+styleNoRescale;
Style_RL= ParamStyle("Resistance",styleLine+styleThick,maskDefault)+styleNoRescale;
Style_PHL= ParamStyle("Parallel Support",styleLine+styleDashed,maskDefault)+styleNoRescale;
Style_PLL= ParamStyle("Parallel Resistance",styleLine+styleDashed,maskDefault)+styleNoRescale;
_SECTION_END();


_SECTION_BEGIN("Pattern Selection");
AscTs = ParamToggle("Ascending Triangle","Off,On",1);
DscTs = ParamToggle("Descending Triangle","Off,On",1);
STs = ParamToggle("Symmetrically Triangle","Off,On",1);
ETs = ParamToggle("Expanding Triangle","Off,On",1);
RWs = ParamToggle("Rising Wedge","Off,On",1);
FWs = ParamToggle("Falling Wedge","Off,On",1);
UTs = ParamToggle("Up Trend","Off,On",1);
DTs = ParamToggle("Down Trend","Off,On",1);
Ranges = ParamToggle("Range","Off,On",1);
NonDefinedPatterns = ParamToggle("Not defined Patterns","Off,On",1);
_SECTION_END();
//calcs
HH = HHV(H,20);
LL = LLV(L,20);
Mid = LL+((HH-LL)/2);
Div = 100-(HH/(0.01*Mid));
Per = LastValue(abs(Div));
Hp1 = Ref(H,-1);Hp2 = Ref(H,-2);Hp3 = Ref(H,-3);Hp4 = Ref(H,-4);Hp5 = Ref(H,-5);Hp6 = Ref(H,-6);
Lp1 = Ref(L,-1);Lp2 = Ref(L,-2);Lp3 = Ref(L,-3);Lp4 = Ref(L,-4);Lp5 = Ref(L,-5);Lp6 = Ref(L,-6);
Hf1 = Ref(H,1);Hf2 = Ref(H,2);Hf3 = Ref(H,3);Hf4 = Ref(H,4);Hf5 = Ref(H,5);Hf6 = Ref(H,6);
Lf1 = Ref(L,1);Lf2 = Ref(L,2);Lf3 = Ref(L,3);Lf4 = Ref(L,4);Lf5 = Ref(L,5);Lf6 = Ref(L,6);
x = Cum(1);
divx = LastValue(x)-x;

//Tops
A = H;
Top1 = A > Hf2 & A > Hf1 & A > Hp1 & A > Hp2 & divx>2;
Top2 = A > Hf3 & A > Hf2 & A ==Hf1 & A > Hp1 & A > Hp2 & divx>3 ;
Top3 = A > Hf4 & A > Hf3 & A ==Hf2 & A >=Hf1 & A > Hp1 & A > Hp2 & divx>4;
Top4 = A > Hf5 & A > Hf4 & A ==Hf3 & A >=Hf2 & A >=Hf1 & A > Hp1 & A > Hp2 & divx>5;
Top5 = A > Hf6 & A > Hf5 & A ==Hf4 & A >=Hf3 & A ==Hf2 & A >=Hf1 & A > Hp1 & A >Hp2 & divx>6;
Top = Top1 OR Top2 OR Top3 OR Top4 OR Top5;
TopHigh = ValueWhen(Top,H);
TopX = ValueWhen(Top,X);

//Valleys
A = L;
Valley1 = A < Lf2 & A <= Lf1 & A <= Lp1 & A < Lp2 & divx>2;
Valley2 = A < Lf3 & A < Lf2 & A == Lf1 & A < Lp1 & A < Lp2 & divx>3;
Valley3 = A < Lf4 & A < Lf3 & A == Lf2 & A <= Lf1 & A < Lp1 & A < Lp2 & divx>4;
Valley4 = A < Lf5 & A < Lf4 & A == Lf3 & A <= Lf2 & A <= Lf1 & A < Lp1 & A < Lp2 & divx>5;
Valley5 = A < Lf6 & A < Lf5 & A == Lf4 & A <= Lf3 & A == Lf2 & A <= Lf1 & A < Lp1 & A < Lp2 & divx>6;
Valley = Valley1 OR Valley2 OR Valley3 OR Valley4 OR Valley4 OR Valley5;
ValleyLow = ValueWhen(Valley,L);
ValleyX = ValueWhen(Valley,X);
x = Cum(1);
xb = LastValue(ValueWhen(Valley,x,1));
xa = LastValue(ValueWhen(Valley,x,2));
yb = LastValue(ValueWhen(Valley,L,1));
Ya = LastValue(ValueWhen(Valley,L,2));
xab_log = log(yb/yA)/(xb-xa);
SL = exp((x-xb)*xab_log)*yb;
RocSL = ROC(SL,1);
xd = LastValue(ValueWhen(top,x,1));
xc = LastValue(ValueWhen(top,x,2));
yd = LastValue(ValueWhen(top,H,1));
Yc = LastValue(ValueWhen(top,H,2));
xcd_log = log(yd/yc)/(xd-xc);
RL = exp((x-xd)*xcd_log)*yd;
RocRL = ROC(RL,1);

//LPL
Low_Value = LastValue(Ref(LLV(L,xd-xc),-(x-xd)));
x2 = LastValue(ValueWhen(L==Low_Value & x>xc & x5,exp((x-x2)*xcd_log)*Low_Value,-1e10);

//HPL
Hi_Value = LastValue(Ref(HHV(H,xb-xa),-(x-xb)));
x3 = LastValue(ValueWhen(H==Hi_Value & x>xa & x5,exp((x-x3)*xab_log)*Hi_Value,-1e10);

//Channels
AvgRoc = abs(MA(ROC(C,1),100));
Threshold_parallel = 15;
Threshold_Trend = 0.001*per;
SLabs = SL-Ref(SL,-1); RLabs = RL-Ref(RL,-1);
ROC2SL = (SLabs/C)*100; ROC2RL = (RLabs/C)*100;
RSL = ROC2SL > Threshold_Trend; FlatSL = abs(ROC2SL) < Threshold_Trend; FSL = ROC2SL < -Threshold_Trend;
RRL = ROC2RL > Threshold_Trend; FlatRL = abs(ROC2RL) < Threshold_Trend; FRL = ROC2RL < -Threshold_Trend;
parallel= abs(((RocSL/RocRL)-1)*100)4 & xd-xc >4; //x-min.distance - optional
AscT= FlatRL & RSL;// & xaSL;//& xaSL;//& xaRocRL & SL>RL AND NOT parallel;// & Xm;
FW = FSL & FRL & RocRLXB;
Sup_pricejustabove = LSL & X>XB;
Sup_confirmed = L<=SL & C>SL & X>XB;

//Resistance line signals
Res_break = Cross(C,RL) & X>XD;
Res_pricejustbelow = H>RL-Distance & HXD;
Res_confirmed = H>=RL & CXD;

//Parallel lower line signals
PLL_break = Cross(PLL,C);
PLL_pricejustabove = LPLL;
PLL_confirmed = L<=PLL & C>PLL;

//Parallel higher line signals
PHL_break = Cross(C,PHL);
PHL_pricejustbelow = H>PHL-Distance & H=PHL & C=xa & SL>RaL & SL=xa & RaL==0 & NOT AnZ,SL,-1e10));
RL_plot = IIf(x>=xc & RL>RaL & RL=xc & RaL==0 & NOT AnZ,RL,-1e10));
PLL_plot = IIf(x-x2>=0 & abs(LastValue(L/PLL)-1) RaL & PLL=0 & RaL==0 & PLLd & abs(LastValue(L/PLL)-1) =0 & abs(LastValue(H/PHL)-1) RaL & PHL=0 & RaL==0 & PHLd & abs(LastValue(H/PHL)-1) BEGIN-1,SL,-1e10);
TRR = IIf(x>BEGIN-1,RL,-1e10);
trr = IIf(trr>0,trr,Null);
yVal=IIf(trs > trr,trr,trs);
yval = IIf(yval>0,yval,Null);
GraphZOrder = 0;
if(Version()>4.75){
//PlotOHLC(0,trr,yval,0,"",Shadowcolor,styleCloud+st yleNoLabel);
}
/*
///////////End Ploting Part////////////
DefinedPatterns = AscT | DscT | ST | ET | RW | FW | UT | DT;
Filter = BarIndex()==LastValue(BarIndex()) AND NOT GroupID()==253;
Filter = Filter AND
(AscT AND AscTs)| (DscT AND DscTs)| (ST AND STs)|
(ET AND ETs)| (RW AND RWs)| (FW AND FWs)|
(UT AND UTs)| (DT AND DTs)|(Rangeee AND Ranges)|
(SupSignals AND NonDefinedPatterns AND NOT DefinedPatterns)|
(ResSignals AND NonDefinedPatterns AND NOT DefinedPatterns);
// | PLLSignals | PHLSignals | Trade Variables
*/
//Shapes
if(PlotP1P2){
PlotShapes(IIf(x==xa & NOT AnZ,P1Shape,shapeNone),Color_SL,0,SL,-13 );
PlotShapes(IIf(x==xc & NOT AnZ,P1Shape,shapeNone),Color_RL,0,H,13 );
}
//end pattern
/////////////////////////////////////////////////////////////////
_SECTION_END();

_SECTION_END(); 

Open chat
1
Hi, how can I help you?