[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 1061

 

Buenas noches.

Hay un asesor interesante "Frank_ud", pregunta - ¿Cómo afilarlo para alpari?

 
volshebnik:
Alexey, tienes razón. He comprobado mi Asesor Experto - cuando el período de MA = 6 ... 10 ... mi Asesor Experto se cuelga después de un mes de pruebas ... La prueba se detiene y se cuelga. El Asesor Experto simplemente no abriría operaciones. ¿Por qué se cuelga el probador?

Si la división a cero se escribiera en el cuaderno de bitácora, sería más fácil.

Pero de esta manera tienes que colocar las impresiones en cada bloque y monitorear el progreso de los eventos. luego, después de identificar el área de rastreo, tienes que ser más específico sobre las filas.

Puede ser una cuestión de ciclos.

 

¿Puedes decirme cómo cambiar la fórmula del indicador Momentum?

 
Pon este indicador aquí. Te lo mostraré.
 
//| Momentum.mq4 ||
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net/"

#property indicador_separar_ventana
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- parámetros de entrada
extern int MomPeriod=14;
//---- buffers
doble MomBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
nombre_corto_de_cadena;
//---- línea indicadora
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nombre para la etiqueta de la subventana DataWindow y del indicador
short_name="Mamá("+MamáPeriodo+")";
IndicadorNombreCorto(nombre_corto);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Momentum ||
//+------------------------------------------------------------------+
int inicio()
{
int,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//---- cero inicial
if(counted_bars<1)
for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
//----
i=Bars-MomPeriod-1;
if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
MomBuffer[i]=Cerrar[i]-Cerrar[i+MomPeriod];
i--;
}
return(0);
}
//+------------------------------------------------------------------+
 

Bien. Pregunta número dos.

qué es exactamente lo que hay en

 
//| Momentum.mq4 ||
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net/"

#property indicador_separar_ventana
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- parámetros de entrada
extern int MomPeriod=14;
//---- buffers
doble MomBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
nombre_corto_de_cadena;
//---- línea indicadora
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nombre para la etiqueta de la subventana DataWindow y del indicador
short_name="Mamá("+MamáPeriodo+")";
IndicadorNombreCorto(nombre_corto);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Momentum ||
//+------------------------------------------------------------------+
int inicio()
{
int,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//---- cero inicial
if(counted_bars<1)
for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
//----
i=Bars-MomPeriod-1;
if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
MomBuffer[i]=Cerrar[i]-Cerrar[i+MomPeriod];
i--;
}
return(0);
}
//+------------------------------------------------------------------+
 

¿Qué es exactamente lo que hay que cambiar en la fórmula? es decir, ¿qué nueva fórmula quiere añadir?

PS.

debe haber publicado accidentalmente el indicador dos veces

 

Lo siento, ya me he metido en la última.

Aquí está el original:

//| Momentum.mq4 ||
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net/"

#property indicador_separar_ventana
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- parámetros de entrada
extern int MomPeriod=14;
//---- buffers
doble MomBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
nombre_corto_de_cadena;
//---- línea indicadora
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nombre para la etiqueta de la subventana DataWindow y del indicador
short_name="Mamá("+MamáPeriodo+")";
IndicadorNombreCorto(nombre_corto);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Momentum ||
//+------------------------------------------------------------------+
int inicio()
{
int,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//---- cero inicial
if(counted_bars<1)
for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
//----
i=Bars-MomPeriod-1;
if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
MomBuffer[i]=Cerrar[i]*100/Cerrar[i+MomPeriod];
i--;
}
return(0);
}

//+------------------------------------------------------------------+

En este indicador la fórmula es: MOMENTO = CIERRE (i) / CIERRE (i - n) * 100, y necesito

MOMENTO = CIERRE (i) - CIERRE (i - n)
 
lordsnake:

Lo siento, ya he entrado en la última.

Aquí está el original:

//| Momentum.mq4 ||
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net/"

#property indicador_separar_ventana
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- parámetros de entrada
extern int MomPeriod=14;
//---- buffers
doble MomBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
nombre_corto_de_cadena;
//---- línea indicadora
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nombre para la etiqueta de la subventana DataWindow y del indicador
short_name="Mamá("+MamáPeriodo+")";
IndicadorNombreCorto(nombre_corto);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Momentum ||
//+------------------------------------------------------------------+
int inicio()
{
int,counted_bars=IndicatorCounted();
//----
if(Bars<=MomPeriod) return(0);
//---- cero inicial
if(counted_bars<1)
for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
//----
i=Bars-MomPeriod-1;
if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
MomBuffer[i]=Close[i]*100/Close[i+MomPeriod]; // este

MomBuffer[i]=Cerrar[i] - Cerrar[i+MomPeriod]; // cambiar a este

i--;
}
return(0);
}

//+------------------------------------------------------------------+

En este indicador la fórmula: MOMENTO = CIERRE (i) / CIERRE (i - n) * 100, pero necesito

MOMENTO = CIERRE (i) - CIERRE (i - n)