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 12 years ago
Reaction Trend System
Submitted by ajayjain90 almost 15 years ago
Behgozin Strength Finder
Submitted by hotaro3 over 12 years ago
KPL with RSI
Submitted by pdkg_gal almost 15 years ago
Intraday Trend Break System
Submitted by nishantndk almost 15 years ago
ema crossovers
Submitted by rushee.g1100 over 14 years ago

Indicator / Formula

Copy & Paste Friendly
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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