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 ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
95% accurate system for Amibroker (AFL)
Copy & Paste Friendly
Back
/*
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);
*/
/////////////