Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Indicadores

NonLagAMA - indicador para MetaTrader 4

Visualizaciones:
1159
Ranking:
(10)
Publicado:
2016.05.27 10:28
NonLagAMA.mq4 (4.54 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
//+------------------------------------------------------------------+
//| NonLagAMA.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 RoyalBlue
#property indicator_width2 2
#property indicator_color3 Red
#property indicator_width3 2
//---- parámetros de entrada
extern int Price =0;
extern int Length =40;
extern int Displace =0;
extern int Filter =0;
extern int Color =1;
extern int ColorBarBack =2;
extern double Deviation =0;
//----
double Cycle= 4;
//---- búferes de indicador
double MABuffer[];
double UpBuffer[];
double DnBuffer[];
double price[];
double trend[];
//+------------------------------------------------------------------+
//| Función de inicialización del indicador de usuario |
//+------------------------------------------------------------------+
int init()
{
int ft=0;
string short_name;
//---- línea de indicador
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);
SetIndexBuffer(3,price);
SetIndexBuffer(4,trend);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexArrow(2,159);
SetIndexArrow(3,159);
//---- nombre de la ventana de datos y la subventana de datos del indicador
short_name="NonLagDot("+Length+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"NLD");
SetIndexLabel(1,"Up");
SetIndexLabel(2,"Dn");
//----
SetIndexShift(0,Displace);
SetIndexShift(1,Displace);
SetIndexShift(2,Displace);

SetIndexDrawBegin(0,Length*Cycle+Length);
SetIndexDrawBegin(1,Length*Cycle+Length);
SetIndexDrawBegin(2,Length*Cycle+Length);
//----
return(0);
}
//+------------------------------------------------------------------+
//| NonLagMA_v4 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
double alfa, beta, t, Sum, Weight, step,g;
double pi=3.1415926535;
//----
double Coeff= 3*pi;
int Phase=Length-1;
double Len=Length*Cycle + Phase;
//----
if(counted_bars > 0) limit=Bars-counted_bars;
if(counted_bars < 0) return(0);
if(counted_bars ==0) limit=Bars-Len-1;
if(counted_bars < 1)
for(i=1;i<Length*Cycle+Length;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}
for(shift=limit;shift>=0;shift--)
{
Weight=0; Sum=0; t=0;
for(i=0;i<=Len-1;i++)
{
g=1.0/(Coeff*t+1);
if (t<=0.5)g=1;
beta=MathCos(pi*t);
alfa=g * beta;
price[i]=iMA(NULL,0,1,0,MODE_SMA,Price,shift+i);
Sum+=alfa*price[i];
Weight+=alfa;
if(t < 1)t+=1.0/(Phase-1);
else if(t < Len-1) t+=(2*Cycle-1)/(Cycle*Length-1);
}
if (Weight > 0) MABuffer[shift]=(1.0+Deviation/100)*Sum/Weight;
if (Filter>0)
{
if(MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter*Point)MABuffer[shift]=MABuffer[shift+1];
}
if (Color>0)
{
trend[shift]=trend[shift+1];
if (MABuffer[shift]-MABuffer[shift+1] > Filter*Point) trend[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter*Point) trend[shift]=-1;
if (trend[shift]>0)
{
UpBuffer[shift]=MABuffer[shift];
if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[shift]=EMPTY_VALUE;
}
if (trend[shift]<0)
{
DnBuffer[shift]=MABuffer[shift];
if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift]=EMPTY_VALUE;
}
}
}
return(0);
}
//+------------------------------------------------------------------+

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/8605

Scripts para el cierre de órdenes Scripts para el cierre de órdenes

Scripts para el cierre de órdenes en diferentes condiciones.

JimsCloseOrders JimsCloseOrders

Asesor sencillo para el cierre de órdenes.

EMA CROSS EMA CROSS

Asesor EMA_CROSS.

Backbone Backbone

El asesor se basa en el cambio constante de las direcciones de las operaciones dependiendo de los niveles de TakeProfit, StopLoss y TrailingStop.