Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
POSITION & SWING - EMA 9.1 System for Amibroker (AFL)
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
Indicator / Formula
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
Leave Comment
Please login here to leave a comment.
Back
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
Works fine for me.