/
//source http://www.traderji.com/amibroker/24404-help-amibroker-forumla-afl-saintjis-going-60min-flow-practice-2.html
// Written by Abhay (aad on www.traderji.com)
// Previous version 1.0 on 28.07.2008.
// Current Version 1.1 on 31.07.2008.
///////////////////////////////////////////////////////////
///// Major changes done from previous version 1.0 : //////
// The method of pivot definition is changed.
// Now it does not use zig() or related functions anywhere.
// Stoploss line error, that it moves in both directions after a position is taken,
// is removed. Now stoploss lines are unidirectional.
// To protect profit on long positions, SELL is triggered either when trailing buy stop
// is hit OR when previous lower pivot is cracked. Fresh long position will be initiated
// if uptrend continues after previous high pivot is cracked.
///////////////////////////////////////////////////////////
// This is simple YET powerful pivot based trading system.
// Used only for intraday. Not suitable for EOD data.
// Designed for continuous trading. i.e. short=sell and cover=buy
// When long, watch crack of close in green line ONLY. Ignore red line.
// When short, watch crack of close in red line ONLY. Ignore green line.
// You will have to tweak the parameters as per your trading style.
// Warning : I have tried to develop this method from Saint's Pivot Based System (www.traderji.com)
// However, it is very well possible that its performance is not as per actual system
// suggested by Saint due to programming errors and inadequate knowledge level at my end.
// Warning : Traders are advised to trade on their own, knowing very well that it is their money.
_SECTION_BEGIN("Simple Pivot based Trading System");
// User defined parameters.
GraphXSpace = 10; //defines how much extra space should be added above and below graph line (in percent).
dist = 0.25*ATR(10);
Capital=Param("Total capital",100000,10000,1000000,1000);
drawdown=Param("Max. loss per trade as % of Capital", 1.0,0.5,25.0,0.1);
room=Param("Room for S/L as % of Pivot value",0.001,0.0,0.02,0.001);
// Now calculate pivots. Method courtesy : Kenneth (www.traderji.com)
PH= ValueWhen(
(Ref(H,-2) > Ref(H, -4)) AND
(Ref(H,-2) > Ref(H, -3)) AND
(Ref(H,-2) > Ref(H, -1)) AND
(Ref(H,-2) > H), Ref(H,-2));
PL= ValueWhen(
(Ref(L,-2) <= Ref(L, -4)) AND
(Ref(L,-2) <= Ref(L, -3)) AND
(Ref(L,-2) <= Ref(L, -1)) AND
(Ref(L,-2) <= L), Ref(L,-2));
// filter lines
phfilter=PH+(room*PH);
plfilter=PL-(room*PL);
//Uncomment following code if you wish to see the pivot lines.
//Plot(Ref(PH,2), "UpPivot", ParamColor("UpPivot Color",colorRed), styleDashed);
//Plot(Ref(PL,2), "DownPivot",ParamColor("DownPivot Color",colorGreen), styleDashed);
Plot(Ref(Phfilter,2), "Upfilter", ParamColor("upfilter Color",colorRed), styleLine);
Plot(Ref(Plfilter,2), "Downfilter",ParamColor("dnfilter Color",colorGreen), styleLine);
//Plot(Ref(UpFractal,2), "Up Fractal", ParamColor("Up Fractal Color",colorRed),8);
//Plot(Ref(DownFractal,2), "Down Fractal",ParamColor("Down Fractal Color",colorGreen),8);
for (a=4;a= H[a-4]) AND
(H[a-2] >= H[a-3]) AND
(H[a-2] >= H[a-1]) AND
(H[a-2] >= H[a]))
//PlotText("PH \n"+H[a-2], a-2, H[a-2], colorGreen);
if ((L[a-2] <= L[a-4]) AND
(L[a-2] <= L[a-3]) AND
(L[a-2] <= L[a-1]) AND
(L[a-2] <= L[a]))
//PlotText("PL \n"+L[a-2], a-2, L[a-2]-dist[a-2], colorRed)
;
}
Hi1 = H[a-2];
Lo1 = L[a-2 ];
//Condition for Buy : Enter when Close crosses latest pivot High.
Buy = C> (PH+(room*PH));
initialStopBuy=Ref(PL,2)-(Ref(PL,2)*room/100);
trailStopBuy=IIf(C>PH,Ref(initialStopBuy,-1),initialStopBuy);
newStopBuy=trailStopBuy;
BuyLimitCapital=int(Capital/C);
SLbuy=round(C-initialStopBuy);
BuyLimitSL=int((Capital*drawdown)/(100*SLbuy));
//Condition for sell : Exit when previous pivot low is cracked.
Sell = C< (PL-(room*PL));
Buy = ExRem(Buy,Sell);
Sell= ExRem(Sell,Buy);
Short = Sell;
Cover = Buy;
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short);
shape = Buy * shapeUpArrow + Sell * shapeDownArrow;
PlotShapes( shape, IIf( Buy, colorGreen, colorRed ),0, IIf( Buy, Low, High ) );
_SECTION_END();
// ichamuku line
SL = ( HHV( H, 26 ) + LLV( L, 26) )/2;
TL = ( HHV( H, 9 ) + LLV( L, 9 ) )/2;
//Plot(SL,"SL",colorWhite,styleThick); // standard, base, or kijun-sen line
//Plot(TL,"TL",colorYellow,styleThick); // turning, conversion, or tenkan-sen line
//=======price
Color_buy = IIf(Close > SL AND Close > TL,colorBlue,IIf(Close < SL AND Close < TL,colorRed,colorYellow));
PlotOHLC( Open, High, Low, Close, "", Color_buy, styleBar+styleThick );
upper_band = IIf (MA( High, 25 )> EMA(Close,89),MA( High, 25 ), EMA(Close,89));
Lower_band = IIf (MA( Low, 25 )< EMA(Close,89),MA( Low, 25 ), EMA(Close,89));
EMA89 = EMA(Close,89);
pe = Param("high low period",3,50,2,1);
His = HHV(H,pe);
Lows = LLV(L,pe);
range = round((H - L)*10)/10;
Title =
EncodeColor(colorWhite)+ "LINKON'S PIVOT TRADING SYSTEM" + " - " + Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
" - " + Date() +" - "+" Range : "+range
+"\n"
+EncodeColor(colorBrightGreen)+" PH :"+PHfilter
+"\n"
+EncodeColor(colorRed)+" PL : "+Plfilter
+"\n"
+EncodeColor(colorWhite)+"Op : "+O
+"\n"
+EncodeColor(colorBrightGreen)+"Hi : "+H
+"\n"
+EncodeColor(colorWhite)+"Cl : "+C
+"\n"
+EncodeColor(colorRed)+"Lo : "+L
+"\n"
;