+91-0000000000

}

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

FHB Advanced

FHB Advanced in Amibroker AFL is an evolved version of the basic FHB system. It possibly includes enhancements in indicator parameters, strategy rules, or additional features aimed at refining trading signals for improved accuracy and efficiency.

///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+styleNoLabel);
}
/*
///////////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?