_SECTION_BEGIN("Indicator price rsi levels");
// RSI Levels - appplied to Price Chart shows how far
// tomorrow's closing price has to move in order for
// the RSI to cross the 70, 50 & 30 levels.
pd = Param("Periods",13,5,144,1);
pds = 2*pd-1;// (Adjustment for Wilders MA)
aa = Close-Ref(Close,-1);
uu = EMA(Max(0,aa),pds);
dd= EMA((Max(0,0-aa)),pds);
rf = IIf(C>2,1000,10000);
c1 = Param("Upper Level",70,50,90,1);
qq1 =100/(100-c1)-1;
ff1 = qq1*dd-uu;
ff2 = ff1/qq1;
f1 = Max(ff1,ff2);
UL = Close + f1*(pds-1)/2;
UL = IIf(UL>C,floor(UL*rf),ceil(UL*rf))/rf;
c2 = Param("Equilibrium",50,50,50,0);
qq2 =100/(100-c2)-1;// [=1]
ff = dd-uu;
MM = Close + ff*(pds-1)/2;
MM = IIf(MM>C,floor(MM*rf),ceil(MM*rf))/rf;
c3 = Param("Lower Level",30,10,50,1);
qq3 =100/(100-c3)-1;
ff1 = qq3*dd-uu;
ff2 = ff1/qq3;
f3 = Min(ff1,ff2);
LL = Close + f3*(pds-1)/2;
LL = IIf(LL>C,floor(LL*rf),ceil(LL*rf))/rf;
band = Param("band width",4,0,15,0.25);
mmu = MM+band;
mmd = MM-band;
//Plot(UL,"",29,1);
//Plot(MM,"MM",29,32);
Plot(MMU,"MU",colorYellow,32);
Plot(MMD,"MD",colorYellow,32);
//Plot(LL,"",29,1);
Cbr = IIf (Close > MMU AND Open > MMU, colorBlue, IIf(Close < MMD AND Open < MMD,colorRed,colorYellow));
//Cbr = IIf(UL<C,colorBlue,IIf(LL>C,colorRed,IIf(MM>C,colorPink,colorAqua)));
PlotOHLC(O,H,L,C,"",cbr,styleCandle);
X=Cross( C,LL);
Y=Cross(UL,C);
Buy1= X ;
Sell1= Y ;
PlotShapes(shapeUpArrow*Buy1,colorBlue,0,L,-15);
PlotShapes(shapeDownArrow*Sell1,colorBlue,0,H,-15);
Filter=Buy1 OR Sell1 ;
AddTextColumn(FullName(),"Name");
AddColumn(Buy1,"Buy");
AddColumn(Sell1,"sell");
Title = Name() + " - RSI(" + WriteVal(pd,0.0) + ") - Close=" + WriteVal(Close,0.3) + " UL=" + WriteVal(UL,0.4) + " MM=" + WriteVal(MM,0.4) + " LL=" + WriteVal(LL,0.4);
_SECTION_END();
"plotted pivots \n
Plotted the avarage as a bars \n
";
//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.0005,0,0.02,0.0001);
// 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+styleNoLabel);
Plot(Ref(PL,2), "DownPivot",ParamColor("DownPivot Color",colorGreen), styleDashed+styleNoLabel);
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<BarCount;a++)
{
if ((H[a-2] >= 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", 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", a-2, L[a-2]-dist[a-2], colorRed);
}*/
//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();
_SECTION_BEGIN("average as a bar");
/*
Heikin-Ashi(Koma-Ashi) with Moving Average Type
*/
SetChartOptions(2, chartWrapTitle);
// Calculate Moving Average
MAPeriod = Param("MA Period", 15, 1, 100);
MAOpen = EMA(Open, MAPeriod);
MAHigh = EMA(High, MAPeriod);
MALow = EMA(Low, MAPeriod);
MAClose = EMA(Close, MAPeriod);
HaClose = (MAOpen + MAHigh + MALow + MAClose) / 4;
HaOpen = AMA(Ref(HaClose, -1), 0.5);
// for graph collapse
for(i = 0; i <= MAPeriod; i++) HaClose[i] = Null;
/*
// same
// HaOpen = (Ref(HaOpen, -1) + Ref(HaClose, -1)) / 2;
HaOpen[ 0 ] = HaClose[ 0 ];
for(i = 1; i < BarCount; i++) {
HaOpen[i] = (HaOpen[i - 1] + HaClose[i - 1]) / 2;
}
*/
HaHigh = Max(MAHigh, Max(HaClose, HaOpen));
HaLow = Min(MALow, Min(HaClose, HaOpen));
// outs comments
"BarIndex = " + BarIndex();
"Open = " + Open;
"High = " + High;
"Low = " + Low;
"Close = "+ Close;
"HaOpen = " + HaOpen;
"HaHigh = " + HaHigh;
"HaLow = " + HaLow;
"HaClose = "+ HaClose;
// Plot graphs
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} HaOpen %g, HaHigh %g,
HaLow %g, HaClose %g (%.1f%%) {{VALUES}}",
HaOpen, HaHigh, HaLow, HaClose, SelectedValue(ROC( HaClose, 1))));
PlotOHLC(HaOpen, HaHigh, HaLow, HaClose, _DEFAULT_NAME(), ParamColor("Color",
colorGrey40), styleCandle);
_SECTION_END();