Skip to main content

OHLC Strategy for Amibroker (AFL)

anki1007 about 9 years ago Amibroker (AFL)

  • Rating:
    2 / 5 (Votes 6)
  • Tags:
    amibroker, exploration, open, high

This afl scan the list of Open=High and Open=Low which is updated with Automatic TGT, SL and previous volume and todays volume with some other indicators value. This works good for intraday trading before 10:30 AM.

Indicator / Formula

Copy & Paste Friendly
_SECTION_BEGIN("Open == High AND Open == Low Morning Exploration");

DOpen = TimeFrameGetPrice( "O", inDaily, 0 ); // gives you Todays Open price. 
DHigh = TimeFrameGetPrice( "H", inDaily, 0 ); // gives you Todays High price.
DLow = TimeFrameGetPrice( "L", inDaily, 0 ); // gives you Todays High price.
PClose = TimeFrameGetPrice( "C", inDaily, -1 ); // gives you Previous Day Close price.
YVol = TimeFrameGetPrice( "Volume", inDaily, -1 ); // gives you Previous Day Volume.

Buy = Open == Low;
 

Sell = Open == High;
 

Noise = High > Close; 
Noise = Low <= Close;

newday = Day() !=  Ref(Day(),-1); //check for the start of the day

opencond = newday AND (DOpen == DHigh OR DOpen == DLow); 

Filter = opencond ;


colorstatus = IIf(newday AND DOpen == DHigh,colorRed,IIf(newday AND DOpen == DLow,colorGreen,Null));


AddColumn(IIf(newday AND DOpen == DHigh,DHigh,Null),"Open==High",1.2,colorWhite,colorstatus);

AddColumn(IIf(newday AND DOpen == DLow,DLow,Null),"Open == Low",1.2,colorWhite,colorstatus);



Sunil= ((1.5 * (Open-Close)) > (High-Low));
VDiff = (Volume/YVol);
ATP = (Open + High)/2;
Pivot = (PClose+Open+ATP)/3;

Target1OeqL = Open - (Open * 0.01);
Target2OeqL = Open - (Open * 0.015);

Target1OeqH = Open + (Open * 0.01);
Target2OeqH = Open + (Open * 0.015);

SL4OeqH = Open + (Open * 0.003);
SL4OeqL = Open - (Open * 0.003);

AddColumn(PClose, "Pclose");
AddColumn(Open,"Open");
AddColumn(High,"High");
AddColumn(Low,"Low");
AddColumn(IIf(Target1OeqL AND DOpen == DHigh,Target1OeqL,Target1OeqH),"Target1",1.2,colorWhite,colorstatus); 
AddColumn(IIf(Target2OeqL AND DOpen == DHigh,Target2OeqL,Target2OeqH),"Target2",1.2,colorWhite,colorstatus); 
AddColumn(IIf(SL4OeqH AND DOpen == DHigh,SL4OeqH,SL4OeqL),"StopLoss",1.2,colorWhite,colorstatus); 
AddColumn( ATP, "ATP");
AddColumn(Pivot,"Pivot");
AddColumn( EMA(C,20),"EMA10");
AddColumn(Volume,"Volume",1.0);
AddColumn(YVol ,"YVol",1.0);
AddColumn(VDiff ,"VDiff");
AddColumn( RSI(14), "RSI" ); 

_SECTION_END();

1 comments

1. saachin
almost 9 years ago
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

_SECTION_BEGIN("Brk Line");
H1 = TimeFrameGetPrice("H",inDaily,-1);
H2 = TimeFrameGetPrice("H",inDaily,-2);
H3 = TimeFrameGetPrice("H",inDaily,-3);
H4 = TimeFrameGetPrice("H",inDaily,-4);
H5 = TimeFrameGetPrice("H",inDaily,-5);
H6 = TimeFrameGetPrice("H",inDaily,-6);
H7 = TimeFrameGetPrice("H",inDaily,-7);

L1 = TimeFrameGetPrice("L",inDaily,-1);
L2 = TimeFrameGetPrice("L",inDaily,-2);
L3 = TimeFrameGetPrice("L",inDaily,-3);
L4 = TimeFrameGetPrice("L",inDaily,-4);
L5 = TimeFrameGetPrice("L",inDaily,-5);
L6 = TimeFrameGetPrice("L",inDaily,-6);
L7 = TimeFrameGetPrice("L",inDaily,-7);

du = Max(Max(Max(Max(Max(Max(H1,H2),H3),H4),H5),H6),H7);
dl = Min(Min(Min(Min(Min(Min(L1,L2),L3),L4),L5),L6),L7);

x = BarIndex();
x1 = (BarCount -1);
xL = SelectedValue(ValueWhen((Day()!=Ref(Day(),-1)),x,1));
yy = Status( "pxchartheight" ) ;

Plot(LineArray(xL,SelectedValue(du),x1,SelectedValue(du),1),"Up",colorBlue,styleThick|styleNoRescale);
Plot(LineArray(xL,SelectedValue(dl),x1,SelectedValue(dl),1),"Down",colorRed,styleThick|styleNoRescale);
_SECTION_END();

_SECTION_BEGIN("Hadley");
//Headley Band
length=Param("Length",20,0,10000000);
ub=(High*(1+2*((((High-Low)/((High+Low)/2))*1000)*0.001)));
su=MA(ub, length );
Lb=(Low*(1-2*((((High-Low)/((High+Low)/2))*1000)*0.001)));
sl=MA(Lb, length );
Plot(su, "HU", colorBlue,styleThick);
Plot(sl, "HL", colorBlue,styleThick);
//Plot((su+sl)/2, "", colorBlue);
_SECTION_END();

_SECTION_BEGIN("EMA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END();


_SECTION_BEGIN("Explore");
pds= Param("Period",7,1,1000000);
du = HHV(Ref(H,-1),pds);
dl = LLV(Ref(L,-1),pds);
Cond1 = Cross(C,du);
Cond3 = Cross(dl,C);

Filter = Cond1 OR Cond3 ;
AddColumn(IIf(Cond1,1,Null),"B1",1.2);
AddColumn(IIf(Cond3,1,Null),"S1",1.2);
_SECTION_END();

Leave Comment

Please login here to leave a comment.