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

POSITION & SWING - EMA 9.1 System for Amibroker (AFL)

Rating:
3 / 5 (Votes 2)
Tags:
trading system, amibroker, exploration

Trend Following based on exponential moving average of nine. Used on the weekly, daily and 60 minutes charts.

More information on http://www.leandrostormer.com.br

Screenshots

Similar Indicators / Formulas

OPTIMIZED ICHIMOKU
Submitted by ritesh.bafna88 over 11 years ago
Reaction Trend System
Submitted by ajayjain90 almost 14 years ago
Behgozin Strength Finder
Submitted by hotaro3 over 11 years ago
KPL with RSI
Submitted by pdkg_gal almost 14 years ago
Intraday Trend Break System
Submitted by nishantndk almost 14 years ago
ema crossovers
Submitted by rushee.g1100 over 13 years ago

Indicator / Formula

Copy & Paste Friendly
SetOption("ActivateStopsImmediately",True);
SetOption("ReverseSignalForcesExit",True);
SetTradeDelays( 0,0,0,0 ) ;
Equity();

EMAfast = Param("First Period",9,3,21,1);
EMAslow = Param("Second Period",63,21,200,1);
// virada da média
EMA9 = EMA(Close,EMAFast);
EMA63 = EMA(Close,EMASlow);
Media = EMA9 - Ref(EMA9,-1);

//Inicializa Variáveis
SellPrice[0] = StopLoss[0] = Trend[0] = 0;
BuyPrice[0] = EntryPrice[0] = 100000;

for( i = 1; i < BarCount; i++ ) 
{ 
  //Recupera Valores 
  BuyPrice[i] = BuyPrice[i-1];
  SellPrice[i] = SellPrice[i-1];
  StopLoss[i] = StopLoss[i-1];
  Trend[i] = Trend[i-1];
  EntryPrice[i] = EntryPrice[i-1];

  //Calcula Tendência 
  if (Media[i]>0) Long[i]=1; else Long[i]=0;
  if (Media[i]<0) Shrt[i]=1; else Shrt[i]=0;


  if (Trend[i] < 1 AND (i>23)) 
  {
		//Virada para Cima
     	if ((Long[i]==1) AND (Long[i-1]==0))
  		{		
       		BuyPrice[i] = EntryPrice[i] = High[i]+0.01;   //Define Preço de Compra;
       		StopLoss[i] = Low[i]-0.01;    //Define Valor do Stop;
  		}
  		// Verifica entrada e dispara sinal de compra
  		if ((High[i]>=EntryPrice[i])) 
  		{    
				Trend[i] = 1; //Entrada no Modo Compra
       		EntryPrice[i] = 0;
  		}
  }
  if (Trend[i] == 1 AND (i>23))
  {
  		// Virada para Baixo
  		if ((Shrt[i]==1) AND (Shrt[i-1]==0)) 
       {
          		StopLoss[i] = Low[i]-0.01; 
      			SellPrice[i] = StopLoss[i];               //Define Preço de Venda para fins de Backtest.
       }          
		// Verifica se o STOP foi acionado
  		if ((Low[i]<=StopLoss[i])) 
  		{
      			SellPrice[i] = StopLoss[i];               //Define Preço de Venda para fins de Backtest.
				Trend[i] = -1;                        	//Sai do Modo Compra
      			StopLoss[i] = 0;
      			if (Long[i]==1) BuyPrice[i]= EntryPrice[i] = High[i]+0.01; 
else BuyPrice[i] = EntryPrice[i] = 100000; //Se Tendência de alta, arma nova Compra.
  		}

  }
} 
//Risk Manager
//PositionSize = (0.04 * Equity(0))/(BuyPrice-SellPrice)*BuyPrice;

//Trading System
Buy   = Trend == 1;
Sell  = Trend == -1;
Buy   = ExRem(Buy,Sell);
Sell  = ExRem(Sell,Buy);

T1    = ExRem(Long,Shrt);
T2    = ExRem(Shrt,Long);

//Plot(EMA9 ,"EMA-Fast", ParamColor("EMA-Fast Color", colorPaleBlue),styleThick);
Plot(EMA63,"EMA-Slow", ParamColor("EMA-Slow Color",colorRed),styleThick);

Entry = T1 * shapeSmallCircle + T2 * shapeSmallCircle;
PlotShapes(Entry, IIf(T1, colorBlue, colorBlack), 0, IIf( T1,Low, High));
PlotShapes( Buy* shapeUpArrow, IIf( Buy, colorGreen, colorRed ), 0, IIf( Buy,Low, High) );
PlotShapes( Sell* shapeDownArrow, IIf( Buy, colorGreen, colorRed ), 0, IIf( Buy,Low, High) );

// Explorer
Filter = T1 OR T2;
AddTextColumn(WriteIf(T1,"Buy",WriteIf(T2,"Sell","None")),"TS",colorGreen,colorBlue);
AddColumn(IIf(T1,BuyPrice,IIf(T2,SellPrice,0)),"START",5.2,colorWhite,colorBlue);
AddColumn(IIf(T1,SellPrice,IIf(T2,BuyPrice,0)),"STOP ",5.2,colorWhite,colorBlue);
AddColumn(EMA9, "EMAFast"+EMAFast,5.2,colorWhite,colorBlue);
AddColumn(EMA63,"EMASlow"+EMASlow,5.2,colorWhite,colorBlue);
AddColumn(RSI(2),"RSI(2)",2.2);


_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowDates|chartShowArrows|chartLogarithmic|chartWrapTitle);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ))+"\n"+ 
EncodeColor(colorBlue)+
WriteIf (T1 , " GO LONG   / "+EncodeColor(colorGreen)+"START "+Prec(BuyPrice,2)+" / "+EncodeColor(colorRed)+"STOP "+Prec(SellPrice,2)+"  ","")+
WriteIf (T2 , " EXIT LONG / "+EncodeColor(colorRed)+"STOP "+Prec(SellPrice,2)+"  ",""));

Plot( C, "", IIf(Close > Open, colorGreen, colorRed), styleBar + styleNoLabel);
_SECTION_END();

_SECTION_BEGIN("trending ribbon");
uptrend= Media > 0;
downtrend= Media < 0;
Plot( 2, "",IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
_SECTION_END();

_SECTION_BEGIN("Background text");
GfxSetOverlayMode(1);
GfxSelectFont("Tahoma", Status("pxheight")/6 );
GfxSetTextAlign( 6 );// center alignment
GfxSetTextColor( ColorRGB( 60, 45, 80 ) );
GfxSetBkMode(0); // transparent
GfxTextOut( Name(), Status("pxwidth")/2, Status("pxheight")/12 );
GfxSelectFont("Tahoma", Status("pxheight")/12 );
//GfxTextOut( "EMA9.1 System", Status("pxwidth")/2, Status("pxheight")/3 );
GfxSelectFont("Tahoma", Status("pxheight")/20 );
_SECTION_END();

2 comments

1. sajid

EXPLORER ERROR
T1 = ExRem(Long,Shrt);

ERROR SHOW ON ABOVE LINE

DETAIL ERROR REPORT AS BELOW
Error 29. Variable <name> used without having been initialized.
You can not use (read) the variable that was not initialized first. You should assign the value to the variable before reading it.

Example (incorrect usage):

x = 1;
z = x + y; // wrong, y is not initialized

Correct usage would look like this:

x = 1; // initialize x
y = 2; // initialize y
z = x + y; // correct, both x and y are initialized

2. administrator

Works fine for me.

Leave Comment

Please login here to leave a comment.

Back