Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

95% accurate system for Amibroker (AFL)

Copy & Paste Friendly
/*
an exploration system, having separate 3 indicators 

explore to find stocks having BuyPoint/SellPoint >=3 AND ROCSI >=250 to<=900
consider high volume, usestyleCandle for ROCSI in plot.


*/

EMA_Type		= Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);
EMA_prds 		= Param("EMA_periods", 7, 1, 30, 1);
Std_MACD		= Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);
Plot_fashion	= Param("Bar+Arrows-1, Impulse  Bars-2", 2, 1, 2, 1);


// Allow user to define Weekly and Monthly Ribbon Location and Height
WR_P1 = Param("Weekly Ribbon Location", -10.5, -1000, 1000, 0.1);
WR_P2 = Param("Weekly Ribbon Height", 366.5, -0.001, 500, 0.1);

MR_P1 = Param("Monthly Ribbon Location", 5.2, -1000, 1000, 0.1);
MR_P2 = Param("Monthly Ribbon Height", 199, -0.001, 500, 0.1);


// Compute EMA and MACD Histogram
if(EMA_Type == 1)
{
	DayEMA	= EMA(Close, EMA_prds);
}
if (EMA_Type == 2)
{
	DayEMA	= TEMA(Close, EMA_prds);
}

if(EMA_Type == 3)
{
	// Line below to be used with Jurik JMA
	// DayEMA = JurikJMA(C, EMA_Prds);
}

Histogram	= MACD() - Signal();

// Determine if we have an Impulse UP, DOWN or None
Impulse_Up		=	DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);
Impulse_Down	=	DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);   
Impulse_None		=	(NOT Impulse_UP) AND (NOT Impulse_Down);

// Compute Weekly MACD and determine whether rising or falling
// Note: uses "non-standard"  parameters!
TimeFrameSet(inWeekly);

if (Std_MACD == 0)
{
MACD_val		=	MACD(5, 8);
Signal_val		=	Signal(5, 8, 5);
}
else
{
MACD_val		=	MACD(12, 26);
Signal_val		=	Signal(12, 26, 9);
}

Hist_in_w		=	MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);
wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

TimeFrameRestore();

// Now get Monthly MACD Histogram....
TimeFrameSet(inMonthly);
MACD_val		=	MACD(5, 8);
Signal_val		=	Signal(5, 8, 5);
Hist_in_m		=	MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);
mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising 		= TimeFrameExpand( wh_rising, inWeekly, expandLast ); 
wh_falling 		= TimeFrameExpand( wh_falling, inWeekly, expandLast); 
mh_rising 	= TimeFrameExpand(mh_rising, inMonthly, expandLast);
mh_falling 	= TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol 	= IIf( wh_rising, colorGreen,  IIf(wh_falling, colorRed, colorLightGrey));
mkol 	= IIf( mh_rising, colorBlue,  IIf(mh_falling, colorYellow,
colorLightGrey));

// Plot them all!
if (Plot_fashion == 1)
{
	//Plot(Close, "Close", colorTeal, styleBar);
	//PlotShapes(shapeUpArrow * Impulse_Up, colorBlue, 0, Low, -12);
	//PlotShapes(shapeDownArrow * Impulse_Down, colorRed, 0, High, -12);
	//PlotShapes(shapeSmallCircle * Impulse_None, colorWhite, 0, High, 5);
}
else
{
	bar_kol	=	IIf(impulse_UP, colorBlue, IIf(impulse_Down, colorRed, colorWhite));
	//Plot(C, "Close", bar_kol, styleBar);
}

//Plot(10, "ribbon", kol, styleOwnScale|styleArea|styleNoLabel, WR_P1, WR_P2);	//
//Weekly trend
//Plot(10, "ribbon", mkol, styleOwnScale|styleArea|styleNoLabel, MR_P1, MR_P2);	//
//Monthly Trend

// Explorer Section
// Determine if Impulse status is bullish, neutral or bearish.  Display as Text
//Column.
Impulse_State		=	WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down,
"Bearish", "Neutral"));

// Set the background color for Impulse Status Column
Impulse_Col		=	IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed,
colorLightGrey));

// Determine Weekly Trend. Display as Text Column
Weekly_Trend		=	WriteIf(wh_rising, "Rising", WriteIf(wh_falling, "Falling",
"Flat!"));
Weekly_Col		=	IIf(wh_rising, colorGreen, IIf(wh_falling, colorRed,
colorLightGrey));

// Determine Monthly Trend. Display as Text Column
Monthly_Trend	=	WriteIf(mh_rising, "Rising", WriteIf(mh_falling, "Falling",
"Flat!"));
Monthly_Col		=	IIf(mh_rising, colorGreen, IIf(mh_falling, colorRed,
colorLightGrey));

// Determine how many bars has the current state existed
bars_in_bull	=	Min(BarsSince(impulse_none), BarsSince(impulse_down));
bars_in_bear	=	Min(BarsSince(impulse_up), BarsSince(impulse_none));
bars_in_neut	=	Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Set a single variable to show number of bars in current state depending upon

// actual Impulse Status - Bullish, Bearish or Neutral
bars_in_state	=	IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear,
bars_in_neut));

// Columns for display in Explorer 
//AddTextColumn(Impulse_State, "Impulse Status", 1, colorWhite, Impulse_Col);
//AddColumn(bars_in_state, "Bars in this state", 1, colorWhite, Impulse_col);
//AddTextColumn(Weekly_Trend, "Weekly Trend", 1, colorWhite, Weekly_Col);
//AddTextColumn(Monthly_Trend, "Monthly Trend", 1, colorWhite, Monthly_Col);



impBuyCond1= Impulse_Col ==colorGreen AND Ref(Impulse_Col !=colorGreen ,-1);
impShortCond1=Impulse_Col==colorRed  AND Ref(Impulse_Col !=colorRed ,-1);


Buysum=0;
Sellsum=0;
BuySum=impBuyCond1;
Sellsum=impShortCond1;

/*




*/
_SECTION_END();


//////////////////////////////

//non linear

Price = (H+L)/2;
CoefLookback = 5;

Coef = (Price-Ref(Price, -1))^2+(Price-Ref(Price, -2))^2+(Price-Ref(Price, -3))^2+(Price-Ref(Price, -4))^2+(Price-Ref(Price, -5))^2;

SumCoef=0;
SumCoefPrice=0;
for(i=0; i < CoefLookback; i++) {
	SumCoef = SumCoef + Ref(Coef, -i);
	SumCoefPrice = SumCoefPrice + (Ref(Coef, -i) * Ref(Price, -i));
}

DCEF = SumCoefPrice / SumCoef;



//Title = "nonlinear: " + IIf(Close>DCEF, colorGreen, colorRed)+ NumToStr( DCEF, 1.6 );



//Plot(Close, "Close", colorWhite, styleLine);
//Plot(DCEF, "NonLinear Ehlers Filter", IIf(Close>DCEF, colorGreen, colorRed), styleLine);
///////////////////////////////

//Swim

/* SWIM INDEX 
 coded by KAILASH K PAREEK - INDIA .

As the name of indicator explains it self, It measures the
swim of Price. Day Trader may find it very useful as it gives
trend reversal in next 2-3 trading.

INTERPATION: 

Expect trend reversal or at least consolidation when SI 
Spikes higher, (for Peak) OR lower, (for bottom), than 
Relative spikes and turns back. I have found couple of times
The thing called "HING" which appears 1-2 day before the
Price reversal and common in Stochastic Oscillator.


*/

C1 = Ref ( C , -1 ) ;
O1 = Ref ( O, -1 ) ;
K   = HHV ( ( H - C1 ) OR ( L - C1 ) , 1 ) ;
L   =  C1 * 0.20;
R  =  ATR ( 1 );

SI  =  ( ( C-C1+0.5*(C-O)+0.25*(C1-O1))/R)*(K/L);

//Graph0 = SI;


//Plot(SI, "SWIM index",colorGreen , styleArea);

//PlotOHLC( 1.1*SI, 1.1* SI, 1.1* SI, 1.1* SI, 

 //  "Price chart shifted 10% up", colorRed, styleGradient ); 





//Title = "SI: " +EncodeColor( colorRed ) + NumToStr( SI, 1.6 );
/*
_N(Title = StrFormat("{{NAME}} - " +FullName() +
   " - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) SI " +
   WriteVal( SI, 1.6 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( SI,1,True )) )); 


*/


 

Buy1=Cross(Close,DCEF) AND ( SI>0 AND Ref(SI,-1)<0 ) AND (ROC(SI)>0 AND ROC(Ref(SI,-1))<0  );
Sell1=Cross(DCEF,Close) AND ( SI<0 AND Ref(SI,-1)>0 ) AND (ROC(SI)<0 AND ROC(Ref(SI,-1))>0  );



BuySum=BuySum+Cross(Close,DCEF);
Sellsum=Sellsum+Cross(DCEF,Close);



BuySum=BuySum+(( SI>0 AND Ref(SI,-1)< 0.0 ));
Sellsum=Sellsum+(( SI<0 AND Ref(SI,-1)> 0.0 ));



//BuySum=BuySum +(( sign( ROC(SI,1) ) != sign( ROC(Ref(SI,-1),1)) ));
//Sellsum=Sellsum+(( sign( ROC(SI,1)) != sign(ROC(Ref(SI,-1), 1))));

/*
PlotShapes(Buy1*shapeUpArrow,colorGreen,0,DCEF);
PlotShapes(Sell1*shapeDownArrow,colorRed,0,DCEF);
*/

///////////////////
//gmma


/* ------------------------------------------------------------------------------------------------- GUPPY MULTIPLE MOVING AVEREGES ------------------
   Guppy GMMA from AmiBroker Library, enhanced with "derived" Indicators 
 ---------------------------------------------------------------------------*/
EnableTextOutput(False);
GuppyGraphType  = ParamList("Type of Guppy Graphic","Guppy GMMA,Guppy Compressions,Guppy Sonar",0);
// Normalization   = ParamToggle("Normalization Array","CLOSE,EMA30",0);
LocalBuySignal  = LocalSellSignal = 0;
MinMaxPeriod    = 20;
// --- DEFINE/CALCULATE ALL DATA NEEDED FOR BUY & SELL COMPOSITE SIGNALS outside the IndicatorType IF --- 
EMA03           = EMA(Close,3); 
EMA15           = EMA(Close,15);
EMA30           = EMA(Close,30);
EMA60           = EMA(Close, 60);
NormalizerArray = EMA30;   // IIf(Normalization == 0, Close, EMA30);
//
GMMADeltaPerc   = ((EMA(Close,9)- EMA(Close,35)) / EMA(Close,35)) * 100;  //default 15,30

      
       GMMAUP    = GMMADeltaPerc > Ref(GMMADeltaPerc,-1);
       GMMADOWN  = GMMADeltaPerc < Ref(GMMADeltaPerc,-1);
       BarColor  = IIf(GMMAUP AND GMMADeltaPerc >= 0,colorBrightGreen, IIf(GMMADOWN AND GMMADeltaPerc > 0,colorGreen, IIf(GMMAUP AND GMMADeltaPerc < 0, colorRed, colorDarkRed)));
      // Plot(GMMADeltaPerc, "\\c16, % Gap \\c29T\\c16 - \\c32INV\\c16 vs EMA(30)", BarColor, styleHistogram | styleThick );   
		// Plot(GMMADeltaPerc ,"up",colorAqua);
  /*    Title = "sonar: "  + "UP "+NumToStr( GMMAUP, 1.2 )+
					"  DOWN "+NumToStr( GMMADOWN  , 1.2 );
*/
        


BuySum=BuySum+ ((GMMAUP==1)&& (Ref(GMMAUP,-1)==0));
Sellsum=Sellsum+((GMMADOWN==1)&& (Ref(GMMADOWN,-1)==0));

AddColumn(Close,"close");
AddColumn(BuySum,"BuyPoints");
AddColumn(Sellsum,"SellPoints");
AddColumn(ROC(SI,1),"rocSI");

period = 14;
formula=100*( ( RSI( period ) - LLV( RSI( period ) , period ) ) / ( ( HHV( RSI(
period ) , period ) ) - LLV(RSI( period ), period ) ) );

//AddColumn(ROC(formula,2),"ROCstck");
//AddColumn(formula,"stck");

//Filter=abs(ROC(SI,1))>200;
//Filter=1;

Cond1= (BuySum>=3 OR SellSum >=3 ); 
Filter=Cond1;
txt=WriteIf(BuySum>=3,NumToStr(BuySum), 
          WriteIf(SellSum>=3,NumToStr(SellSum)," ") );

///////////////////////////////////////////

txtBuy="";
/*
AddColumn(impBuyCond1,"imp Buy",1);
AddColumn(Cross(Close,DCEF),"nl Buy");
AddColumn(( SI>0 AND Ref(SI,-1)< 0.0 ),"SIBuy" );
//AddColumn( sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1)) ,"ROC(SI)Buy" );
AddColumn((GMMAUP==1)&& (Ref(GMMAUP,-1)==0),"GMMABuy");
*/
txtBuy= WriteIf(Cross(Close,DCEF)," nl ","");
txtBuy=txtBuy+ WriteIf(impBuyCond1," elder ","");
txtBuy= txtBuy+WriteIf(( SI>0 AND Ref(SI,-1)< 0.0 )," si ","");
txtBuy= txtBuy+WriteIf(sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1))," roc(si) ","");


txtSell="";
/*
AddColumn(impShortCond1,"imp Sell",1);
AddColumn(Cross(DCEF,Close),"nl Sell" );
AddColumn(( SI<0 AND Ref(SI,-1)> 0.0 ),"SISell");
AddColumn( sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1))  ,"ROC(SI)" ); 
AddColumn((GMMADOWN==1)&& (Ref(GMMADOWN,-1)==0),"GyyMMASell" );
*/

txtSell= WriteIf(Cross(DCEF,Close)," nl ","");
txtSell=txtSell+ WriteIf(impShortCond1," elder ","");
txtSell=txtSell+ WriteIf(( SI<0 AND Ref(SI,-1)> 0.0 )," si ","");
txtSell=txtSell+ WriteIf(sign(ROC(SI,1)) != sign(ROC(Ref(SI,-1),1))," roc(si) ","");


//---------------------------------------------------------------------------------------
BBVol=(Volume/EMA(Volume,30))*100;


Vol1=IIf(  Sum(BBVol>EMA(BBVol,30),2)>0,BBVol,0);
//------------------------------------------------------------------------------------
//Plot(BuySum,"nl",colorGreen,styleHistogram);
//Plot(SellSum,"nl",colorRed,styleHistogram);

tmp=IIf( Sum(BuySum,2)>=3,Sum(BuySum,2),IIf(Sum(SellSum,2)>=3,Sum(SellSum,2),0));


Filter= (tmp>=3);

AddColumn(tmp>=3,"score");
AddColumn(Vol1,"volume");
AddTextColumn(txtBuy+txtSell,"txt");


//Title="buySum: "+BuySum+" SellSum: "+SellSum+
 //  " buy-> "+txtBuy+ " Sell->"+txtSell; 


SetSortColumns( -2,-8 ) ;


AlertIf( tmp>=3, "SOUND C:\\Windows\\Media\\Notify.WAV", "score: "+tmp+ " "+txtBuy +txtSell+
 "volume: "+WriteVal(Vol1) 
, 0 ,1+2+8,5);

///////////////////////////////////

/*


FirstTradeTime = 091500;				// Earliest time to take a trade
LastTradeTime = 151500;					// Latest time to take new trades
ExitAllPositionsTime = 151500;	

change = Param("% change",0.6,0.1,25,0.1); 
z = Zig(Close, change);

Buy=(BuyCond)  AND (TimeNum() >= FirstTradeTime AND TimeNum() <= LastTradeTime );
Sell = IIf(z < Ref(z, -1), 1, 0) ;//OR TimeNum() > ExitAllPositionsTime;
Short=(ShortCond) AND (TimeNum() >= FirstTradeTime AND TimeNum() <= LastTradeTime );
Cover = IIf(z > Ref(z, -1), 1, 0);// OR	 TimeNum() > ExitAllPositionsTime;

Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
Short=ExRem(Short,Cover);
Cover=ExRem(Cover,Short); 
*/

/////////////
Back