Skip to main content

90% accurate system for Amibroker (AFL)

Copy & Paste Friendly

/*

90% accurate system
you may confused with my english. observe after downloading AFL into amibroker


devide screen1 screen2 screen3 as 3 different indicators. 
buy sell decisions are based on following observations

terminology  
bar -> start of green/red horizontal in screen2
nl+elder+si -> in screen1  (non linear , alexander elder, si) indicators

screen2-> ROCEMA
screen3 -> ROCLEMA

sure way

nl+elder+si >=3 have better at a time *******  in screen1 

sure shot 1) screen1 nl+elder+(si or roc) and cross2 at bar2 *** 

screen4 rocSi value around 300-900 

step1)cross2 at bars or ref(-1) bars(horizontal red green in screen2 ) in screen2 priority1 
        volume considerations better

TSI(true strength index) and near cross3 
or TSI near cross2 & step1 

step1.5) cross3 and TSI better signal 
    or TSI near cross2 with screen1 suppport better
sep2)cross3 at bars or TSI & bars3 or cross at Bars3 check ****



always screen1 support for TSI or screen2 cross is best signal of all

step 1.5 or step2 are late but longer **

note  TSi & bar3 & screen1>=3  and cross3 misses completel may be its very slow growh 


///////////////////
other sure way
sure way ************

roc(si) (300-800) + screen1 SI change in sign + 
+ nl screen1 (4) + rocEMA screen2 bar start 

long
roc(si) (300-800) + screen1 SI change in sign + 
+ nl screen1 (4) + screen3 LEMA cross3 bar start

/////////////////////////////////////////////
when to buy when to  sell ************

follow up in screen3  see any cross3 or cross2 divergences of trend direction
if finds screen1 scores divergence look screen2 roc , screen3 LEMA(must,major)*****
  screen3 -ves or divergences(crosses)in -LEMA or +LEMA also may cause sell pressure 

in when to sell when to buy  priority follows as
scree1 high, screen3 LEMAmedium, screen2 low (crosses,sign changes etc..)??????
most of times  screen3 LEMA & MFI decides more than screen1 nl,elder scores????
   in trend if you find screen3 LEMA divergence look  MFI ********** ????? for confirmation
-------------------------------------------------

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

other sure way for accuracy

step1 look bars parallel IN SCREEN2

 volume considerations is must ******


NOTE1: scree1 score>=3 and screen2 bar at atime at atime  - definite ***
NOTE:  real movement starts at screen1 scores
NOTE2: 2ema ,2 lema(surely it will turn even minor or medium) - definite **

NOTE screen1,screen2 + volume combination + TSI
NOTE screen3 bigmoves + MFI + TSI ****


NOTE3: big money screen3 (not necessary bar3) when change sign in screen3 
(green to red or red to green) see screen2 ROCEMA>=190(avg 260), ROCLEMA(avg 30) 

              see screen2 ROCEMA around 150-160 is short move ****** look MFI also 
             
            screen2 ROCEMA>-2000 or -1000   at NOTE3 careful its short move *******
            iif scrren2 2ROCLEMA > 2ROCEMA  or 2ROCLEMA>30 fast move 


            screen2 ROCEMA>-2000 or -1000   at NOTE3 careful its short move *******
NOTe3: always considder MFi,EM(MFI) for shorter/longer moves 

NOTE4: Along with  NOTE3 + if too much change in screen2 ROCEMA , ROCLEMA(>80 genarally 130 like that)
 its big BAR it falls
          called GAPUP OR GAPDOWN  ****


old rose way 
screen1 coincidence(nl,elder,si(roc(si)) at atime ) with screen2 bars- definite 

----------
screen2 rocEMA 2ema synch with sceen3 EMA(LEMA better) 
screen2 2lema synch with screen3 LEMA 
-------
this is add more confirmation to old rose way 
screen2 2lema synch with screen3 LEMA 
observation-> real movement starts after +2lema inscreen2

---------------------------------------------
                                               - definite ***
this is one more one more add more confirmation to old rose way 
scree1 score>=3 and screen2 bar at atime at atime  - definite ***
--------


+2ema, foloowed by +2lema  - is it definite????
very few times +2cross,+2ema,+2lema - all at times also fail 

medium take chances even when screen1 nl,elder,si not at atime (one after other)with  3 sum
or even not considering screen at bar2 crosses 

note: wheneever looking at screen1,2 major turns look at screen3 ********
MFI 

2ema ,2 lema(surely it will turn even minor or medium) - definite 

note: important iff too many noise signals appear in screen2 look screen3 ***** (better than MFI)
note : sometimes even screen2 cross,ema,lema all at atime it fails if screen3 lema 

2)  screen3 ,TSI  fails too 

need screen1 ? better even it appear at bar2 2lema .
not necessary before +ema2 or -ema2 of screen2 

major deviations *****
minor pullbacks-- GBPNZD 16/3/2015 17:30 hourly 

screen1 , screen2 , screen3 ,(si) missing but EMA(MFI) fails ?????????

 minor pullbacks-- GBPNZD 17/3/2015 5:30 hourly 
USDCAD 17/2/ 17:30 sell screen1(but not SI),screen2,screen3 supports , MFI,EM(MFI) also supports 
but shorter move TSI not supporting 
--------------------------------------------------
**********

in stocks finding GAPUP GAPDOWN see NL red or green and screen3 
hint 1)after screen3 sign change  , look screen2 rocLEMA (if >90 or 100) its GAPUP or GAPDOWN)
hint 2)  after screen3 sign change LEMA negative sign divergence, 
              look screen2 also for rocLEMA sign divergence 


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



*/

/////////////////   scrren1  screen1 indicator////////////
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) ","");



Plot(BuySum,"nl",colorGreen,styleArea);
Plot(SellSum,"nl",colorRed,styleArea);



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

SetSortColumns( -2 ) ;

/*
AlertIf( Cond1, "SOUND C:\\Windows\\Media\\Notify.WAV", "NL "+txt
, 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); 
*/

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











/////////////////// screen 2 indicator screen2 indicator///////////

EMASlope=(LinRegSlope(EMA(Close,9),5 ));
LEMASlope=(LinRegSlope(EMA(Close,35),5)); 


up=ROC(  EMASlope,1,True);
down=ROC(  LEMASlope,1,True);



bar_kol	=	IIf(up>0, colorBrightGreen, 
            IIf(up<0, colorRed, colorWhite));
	

Plot( up,"rocEMA ",bar_kol,styleBar);

bar_kol	=	IIf(down>0, colorBrightGreen, 
            IIf(down<0, colorRed, colorWhite));
	

Plot( down,"rocLEMA ",bar_kol,styleBar);


txt2="  ";

txt2+= WriteIf(Cross(up,down)," +cross2up "," ");
txt2+= WriteIf(up>0 AND Ref(up,-1)<0," +2ema "," ");
txt2+= WriteIf(down>0 AND Ref(down,-1)<0," +2lema "," ");

txt2+= WriteIf(Cross(down,up)," -cross2down "," ");
txt2+= WriteIf(up<0 AND Ref(up,-1)>0," -2ema "," ");
txt2+= WriteIf(down<0 AND Ref(down,-1)>0," -2lema "," ");

//Title=" ";
//Title+= txt2;

Plot(0,txt2,colorAqua,styleNoDraw|styleNoLine|styleOwnScale);




//Plot( up,"rocEMA ",colorTeal,styleBar);

//Plot( up,"rocEMA ",bar_kol,styleBar);
//Plot( down,"rocLEMA ",bar,_kol,styleBar);


//Plot(0,"zero",colorWhite);

//Plot(sign(up)!= sign(Ref(up,-1)),"ROC EMA ",colorGreen,styleStaircase);
//Plot(sign(down)!= sign(Ref(down,-1)),"ROC LEMA ",colorRed,styleStaircase);

//Plot(down,"ROC LEMA ",colorRed,
//styleBar);



Plot( 3, "bar"
,IIf( up>down AND (up>0), colorGreen, IIf( up<down AND (up<0), colorRed, 0 ))
, 
styleOwnScale|styleArea|styleNoLabel,-0.5, 100 );

/*
Plot( 4, ""
,colorBlack
, 
styleOwnScale|styleArea|styleNoLabel,-3, 100 );


Plot( 5, "down"
,IIf( up>down , colorGreen, IIf( up<down , colorRed, 0 ))
, 
styleOwnScale|styleArea|styleNoLabel,-6.0, 100 );

*/












/////////////////////  screen3 screen3 indicator/////////////



EMASlope=(LinRegSlope(EMA(Close,9),5 ));
LEMASlope=(LinRegSlope(EMA(Close,35),5)); 

/*
Plot( EMASlope*1000000,"EMAslope ",colorAqua,
styleBar);
Plot( LEMASlope*1000000,"Lslope ",colorRed,
styleBar); 
*/
up=EMASlope*1000000;
down=LEMASlope*1000000;

bar_kol	=	IIf(up>0, colorBrightGreen, 
            IIf(up<0, colorRed, colorWhite));
	

Plot( up,"EMA ",bar_kol,styleBar);

bar_kol	=	IIf(down>0, colorBrightGreen, 
            IIf(down<0, colorRed, colorWhite));
	

Plot( down,"LEMA ",bar_kol,styleBar);


Plot( 3, "bar"
,IIf( up>down AND (up>0), colorGreen, IIf( up<down AND (up<0), colorRed, 0 ))
, 
styleOwnScale|styleArea|styleNoLabel,-0.5, 100 );


txt3=" ";
txt3+=WriteIf(Cross(EMASlope,LEMASlope)," +cross3up "," "); 
txt3+= WriteIf(up>0 AND Ref(up,-1)<0," +3ema "," ");
txt3+= WriteIf(down>0 AND Ref(down,-1)<0," +3lema"," ");

txt3+= WriteIf(Cross(LEMASlope,EMASlope)," -cross3down "," ");
txt3+= WriteIf(up<0 AND Ref(up,-1)>0," -3ema "," ");
txt3+= WriteIf(down<0 AND Ref(down,-1)>0," -3lema "," ");


Plot(1,txt3,colorAqua,styleNoDraw|styleNoLine|styleOwnScale);
/*
Plot(ROC( LEMASlope,1,True),"ROC",
IIf(ROC( LEMASlope,1,True)>0,
colorGreen,colorRed),styleArea); 
*/

/*
Value=ROC(LEMASlope,1,True);

Plot(  Value,"LEMAROC "+
WriteVal(Value,3.3),
IIf(Value>Ref(Value,-1),colorGreen,colorRed),styleCandle);
*/

//BBVol=(LEMASlope/MA(LEMASlope,50))*100;
//Plot(BBVol,"LEMASlope",IIf(BBVol>0,colorAqua,colorRed)); 

/*

Buy1=ROC( LEMASlope,1,True)>0 ;//AND ROC(  Ref(LEMASlope,-1),1)<0;
Sell1=ROC( LEMASlope,1,True)<0; //;AND ROC(  Ref(LEMASlope,-1),1)>0;
//
PlotShapes(Sell1*shapeDownArrow,colorRed,0,ROC(  LEMASlope,1,True)); 
PlotShapes(Buy1*shapeUpArrow,colorGreen,0,ROC(  LEMASlope,1,True));
*/

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













/////////////////sccreen4 screen4 indicator //////////////

/* 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( ROC(SI,1), "ROCSI", 
IIf( ROC(SI,1)> 0,  colorGreen,
 colorRed ) ),
 ParamStyle "Style",  
styleCandle |
 styleOwnScale | styleThick | styleNoLabel) );

*/

Plot( ROC(SI,1), "rocsi", IIf( C > O,colorGreen,
IIf(C < O,colorRed,colorWhite)),
 styleCandle);



Title = "roc(si): " +EncodeColor( colorRed ) + NumToStr(ROC(SI,1),2.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 )) )); 

*/

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