Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
TDL & HA & TGL for Amibroker (AFL)
Trendlines both Support and Resistance with Buy and Sell signals.
It is a compilation based on initial authors work.
Screenshots
Indicator / Formula
//TRENDLINES
//SUPPORT
x = Cum(1);
//perchg = 0.03*LastValue( Highest( ROC( Low, 50 ) ));
k= Param("k",0.03,0,1,0.001,0) ;
ROCper= Param("ROCper",34,3,100,1,0) ;
perchg = k*LastValue( Highest( ROC( Low, ROCper ) ));
startvalue = LastValue( Trough( Low, perchg, 1 ) );
endvalue1 = LastValue( Trough( Low, perchg, 2 ) );
startbar = LastValue( ValueWhen( Low == startvalue, x, 1 ) );
endbar = LastValue( ValueWhen( Low == endvalue1, x, 1 ) );
Aa = (endvalue1-startvalue)/(endbar-startbar);
b = startvalue;
trendline = Aa * ( x - startbar ) + b;
Plot( IIf( x >= endbar, trendline, Null ), "\nSupport", colorBlue,styleLine+styleThick );
//---------------------------------------------------------------------------------------------------
//RESISTANCE
x = Cum(1);
//perchgH = 0.03*LastValue( Highest ( ROC( High , 50 ) ));
perchgH = k*LastValue( Highest ( ROC( High , ROCper ) ));
startvalueH = LastValue( Peak ( High , perchgH, 1 ) );
endvalue1H = LastValue( Peak ( High , perchgH, 2 ) );
startbarH = LastValue( ValueWhen( High == startvalueH, x, 1 ) );
endbarH = LastValue( ValueWhen( High == endvalue1H, x, 1 ) );
AaH = (endvalue1H-startvalueH)/(endbarH-startbarH);
bH = startvalueH;
trendlineH = AaH * ( x - startbarH ) + bH;
Plot( IIf( x >= endbarH, trendlineH, Null ), "\nResistance", colorRed,styleLine+styleThick );
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//Plot( Close, "Price", colorBlue, styleCandle );
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HEIKIN ASHI EXACT FORMULA BEGIN DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
_SECTION_BEGIN("HA Looping ( no AMA() )");
//SetChartOptions(0,chartShowArrows|chartShowDates);
///////////////////////////////////////////////////////////
//
// Heikin Ashi - Calculated Properly with no use of AMA
//
// JF Derzi, December 2012
//
//
HaClose[0] = (Open[0]+High[0]+Low[0]+Close[0]) / 4;
HaOpen[0] = (HaClose[0] + Open[0]) / 2;
HaHigh[0] = Max( High[0], Max( HaClose[0], HaOpen[0] ) );
HaLow[0] = Min( Low[0], Min( HaClose[0], HaOpen[0] ) );
for (i=1; i<BarCount; i++)
{
HaClose[i] = (Open[i]+High[i]+Low[i]+Close[i]) / 4;
Haopen[i] = (HaClose[i-1] + HaOpen[i-1]) / 2; // Here is the problem when using Arrays: Haopen always uses its own previous value
HaHigh[i] = Max( High[i], Max( HaClose[i], HaOpen[i] ) );
Halow[i] = Min( Low[i], Min( HaClose[i], HaOpen[i] ) );
}
//PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "HA", colorBlack, styleCandle );
barcolorha = IIf(HaClose>=HaOpen,colorGreen,colorRed);
SetBarFillColor(IIf(HaClose>=HaOpen,colorBrightGreen,colorOrange));
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, "\nHeikinAshiDerzi", barcolorha, styleCandle );
//Title = Name()+" "+Date()+" Heikin Ashi -- HaOpen:"+NumToStr(HaOpen,1.2,True)+" / HaHigh:"+NumToStr(HaHigh,1.2,True)+
// " / HaLow:"+NumToStr(Halow,1.2,True)+" HaClose:"+NumToStr(Haclose,1.2, True);
_SECTION_END();
HAup= HaClose>=HaOpen ;
haDelta= HaClose-HaOpen ;
MAhaDelta= MA(haDelta,3) ;
haDeltaUpMA= haDelta>MA(haDelta,3) ;
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHEIKIN ASHI EXACT FORMULA END DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
//PRICE
_SECTION_BEGIN("Price");
//SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%)Vol " +
WriteVal( V, 1.0 ) + " {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
//Plot( C, "", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
//barcolorc= IIf(C>O AND C>Ref(C,-1), colorBlue,
// IIf(C<O AND C<Ref(C,-1), colorRed, colorTan)); //MODEL MODEL MODEL 3 CULORI
//SetBarFillColor( IIf(C>O AND C>Ref(C,-1), colorBrightGreen,
// IIf(C<O AND C<Ref(C,-1), colorOrange, colorTan))); //MODEL MODEL MODEL 3 CULORI
//Plot( C, "", barcolorc, styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
//Plot( C, "", barcolorc, styleBar+styleThick );
_SECTION_END();
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// TREND ADVISER AND TRENDING RIBBON
//TREND ADVISER
pointer[0] = 0;
/* Phase filter */
/*
Cond1 = Close > MA(Close, 50)AND NOT(Close > MA(Close, 200))AND NOT(MA(Close, 50) > MA(Close, 200));
Cond2 = Close > MA(Close, 50)AND Close > MA(Close, 200)AND NOT(MA(Close, 50) > MA(Close, 200)) ;
Cond3 = Close > MA(Close, 50)AND Close > MA(Close, 200)AND MA(Close, 50) > MA(Close, 200) ;
Cond4 = NOT(Close > MA(Close, 50))AND Close > MA(Close, 200)AND MA(Close, 50) > MA(Close, 200);
Cond5 = NOT(Close > MA(Close, 50))AND NOT(Close > MA(Close, 200))AND MA(Close, 50) > MA(Close, 200);
Cond6 = NOT(Close > MA(Close, 50))AND NOT(Close > MA(Close, 200))AND NOT(MA(Close, 50) > MA(Close, 200));
*/
Cond1 = C>=MA(C,50) AND C<MA(C,200) AND MA(C,50)<MA(C,200);
Cond2 = C>=MA(C,50) AND C>=MA(C,200) AND MA(C,50)<MA(C,200) ;
Cond3 = C>=MA(C,50) AND C>=MA(C,200) AND MA(C,50)>=MA(C,200) ;
Cond4 = C<MA(C,50) AND C>=MA(C,200) AND MA(C,50)>=MA(C,200);
Cond5 = C<MA(C,50) AND C<MA(C,200) AND MA(C,50)>=MA(C,200);
Cond6 = C<MA(C,50) AND C<MA(C,200) AND MA(C,50)<MA(C,200);
for (i = 1; i < BarCount; i++)
{
if (Cond1[i])
pointer[i] = 1;
if (Cond2[i])
pointer[i] = 2;
if (Cond3[i])
pointer[i] = 3;
if (Cond4[i])
pointer[i] = 4;
if (Cond5[i])
pointer[i] = 5;
if (Cond6[i])
pointer[i] = 6;
}
/* Plot Graphic */
GraphXSpace= 15 ;
dynamic_color = IIf(pointer < 4, colorGreen, colorRed);
//Plot(pointer, "TrendAdvisor", dynamic_color, styleHistogram | styleThick, Null, Null, 0);
//SetChartBkGradientFill(ParamColor("BgTop", colorWhite), ParamColor("BgBottom", colorLightYellow));
Cond = pointer<4 ;
//===============================================================================================================
//TRENDING RIBBON
//R1========================================== 1 TREND ===========================
/*
r1 = IIf(macdup AND cond AND ADX()>18 AND ADX()<49 AND PDI()>18 OR
uptrend AND ADX()>18 AND ADX()<49 AND PDI()>18 ,colorBrightGreen,
IIf(!macdup AND !cond OR
downtrend OR
ADX()<18 ,colorRed,colorTan)) ;
*/
//--------------------------------------------------------------------------------
// Paste the code below to your price chart somewhere and green ribbon means both
// both MACD and ADX trending up so if the red ribbon shows up the MACD and the ADX
// are both trending down.
_SECTION_BEGIN("trending ribbon");
MACDup= MACD()>Signal() ;
uptrend= (MACD()>Signal() AND PDI()>MDI()) ;
downtrend= (MACD()<Signal() AND PDI()<MDI()) ;
Plot( 3, /* defines the height of the ribbon in percent of pane width */"",
IIf(macdup AND cond AND ADX()>18 AND ADX()<49 AND PDI()>18 OR
uptrend AND ADX()>18 AND ADX()<49 AND PDI()>18 ,colorBrightGreen,
IIf(!macdup AND !cond OR
downtrend OR
ADX()<18 ,colorRed,colorTan)),styleOwnScale|styleArea|styleNoLabel,-0.5,100 );
_SECTION_END();
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//FORMULE
stochup= StochK()>StochD() ;
stochdn80= StochK()<80 ;
MACDup= MACD()>Signal() ;
MACDup0= MACD()>0 ;
Hist= MACD()-Signal() ;
Histup= Hist>Ref(Hist,-1) ;
MFIupMA7= MFI()>MA(MFI(),7) ;
MFI30= MFI()>30 ;
MFIup50= MFI()>50 ;
MFIdn80= MFI()<80 ;
RSIupMA7= RSI()>MA(RSI(),7) ;
RSIup50= RSI()>50 ;
Cupo= C>O ;
MA10up= MA(C,10)>=Ref(MA(C,10),-1) ;
MA20up= MA(C,20)>=Ref(MA(C,20),-1) ;
EMA50up= EMA(C,50)>=Ref(EMA(C,50),-1) ;
CupEMA50= C>EMA(C,50) ;
Cupma20= C>MA(C,20) ;
PDIupmdi= PDI()>MDI() ;
PDIup20= PDI()>20 ;
UpTrend= (MACD()>Signal() AND PDI()>MDI()) ;
DownTrend= (MACD()<Signal() AND PDI()<MDI()) ;
CCIup0= CCI()>0 ;
CCIupMA7= CCI()>MA(CCI(),7) ;
CCIdn200= CCI()<200 ;
top2up= BBandTop(C,15,2)>=Ref(BBandTop(C,15,2),-1) ;
Cuptop1= C>BBandTop(C,20,1) ;
HAup= HaClose>=HaOpen ;
upbar = H>=Ref(H,-1) AND L>Ref(L,-1);
downbar = L<=Ref(L,-1) AND H<Ref(H,-1);
ADXup18= ADX()>18 ;
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//PARAMTOGGLE
// This combines indicators into one timing Signal
//function ParamOptimize( description, default, minv, maxv, step )
// { return Optimize(description, Param(description,default, minv, maxv, step ), minv, maxv, step ); }
tgl = ParamToggle("Result", "AND logic|Compare");
// switch test calculation and compare the results
if(tgl)
{
myBuy = macdup ;
myShort = !macdup ;
}
else
{
myBuy = IIf( MACD()>Signal() ,1,0);
myShort = IIf( MACD()<Signal() ,1,0);
}
//myBuy = Cross(C,trailArray) AND macdup OR
// Cross(MACD(),Signal()) AND Buystopnew ;
//myShort = Cross(trailArray,C) ;
Buy = ExRem(myBuy, myShort);
Sell = ExRem(myShort, myBuy);
//PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorBlue,0,haLow,Offset=-10);
//PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,haHigh,Offset=-10);
//PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorBlue,0,trailArray);
//PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,trailArray);
//PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorBlue,0,Low,Offset=-10);
//PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,High,Offset=-10);
StrongBuy = Buy AND Cross(MACD(),Signal()) AND histup AND stochup AND haup AND adxup18 AND cond ;
MediumBuy = Buy AND histup AND stochup AND haup AND adxup18 ;
WeakBuy = Buy ;
StrongSell = Sell AND !stochup AND !mfiupma7 AND !haup ;
MediumSell = Sell AND !stochup AND stochdn80 AND !haup ;
WeakSell = Sell ;
PlotShapes(IIf(StrongBuy,shapeUpTriangle,shapeNone),colorBlue,0,haLow,Offset=-10);
PlotShapes(IIf(MediumBuy,shapeUpArrow,shapeNone),colorBlue,0,haLow,Offset=-10);
PlotShapes(IIf(WeakBuy,shapeHollowUpArrow,shapeNone),colorBlue,0,haLow,Offset=-10);
PlotShapes(IIf(StrongSell,shapeDownTriangle,shapeNone),colorRed,0,haHigh,Offset=-10);
PlotShapes(IIf(MediumSell,shapeDownArrow,shapeNone),colorRed,0,haHigh,Offset=-10);
PlotShapes(IIf(WeakSell,shapeHollowDownArrow,shapeNone),colorRed,0,haHigh,Offset=-10);
/*
PlotShapes(IIf(StrongBuy,shapeUpTriangle,shapeNone),colorBlue,0,Low,Offset=-10);
PlotShapes(IIf(MediumBuy,shapeUpArrow,shapeNone),colorBlue,0,Low,Offset=-10);
PlotShapes(IIf(WeakBuy,shapeHollowUpArrow,shapeNone),colorBlue,0,Low,Offset=-10);
PlotShapes(IIf(StrongSell,shapeDownTriangle,shapeNone),colorRed,0,High,Offset=-10);
PlotShapes(IIf(MediumSell,shapeDownArrow,shapeNone),colorRed,0,High,Offset=-10);
PlotShapes(IIf(WeakSell,shapeHollowDownArrow,shapeNone),colorRed,0,High,Offset=-10);
0 comments
Leave Comment
Please login here to leave a comment.
Back