[¡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 289

 
TheXpert >> :

Estrictamente hablando, no. Pero muy cerca.

Más concretamente, ¿dónde está cerca?

Me gustaría escuchar algunas reflexiones sobre los mensajes anteriores, sobre el código, la lógica, etc.

>> Gracias por adelantado.

 

Gracias por su atención.

Este es el aspecto del EA

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

#include <PointZigZag.mqh>

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
{PointZigZag();
Comentario("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21);
return(0);
}
//+------------------------------------------------------------------+


Y este es el aspecto del archivo. Funciona en el terminal donde se creó. Pero al compilar escribe -Función de inicio no encontrada y no se puede ejecutar.

//+------------------------------------------------------------------+
//| PuntoZigZag.mqh |
//| Copyright © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| Importaciones EX4 |
//+------------------------------------------------------------------+
#importar "PointZigZag.ex4".

extern inttern ExtDepth = 12; //------- variables ZigZag
extern inttern ExtDeviation = 5; //------- variables ZigZag
extern intBackstep = 3; //------- variables ZigZag
extern inttern ShiftBars = 2; //------- variables ZigZag
//------- variables ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Punto de inflexión en zigzag
double y31, y21, y11; // Punto de inflexión en zigzag
doble TimeZZ, TimeOO;
//------------------------------------------------------------------------------

double PuntoZigZag()
{y3=0;y2=0;y1=0;
sh=Barras de desplazamiento;
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=EMPTY_VALUE)
{si (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }}sh++;
}
si (Alto[x1]>Alto[x2])
{x11=Alto[x1]; x21=Bajo[x2]; x31=Alto[x3];
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}sin embargo
{y11=Bajo[x1]; y21=Alto[x2]; y31=Bajo[x3];
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}

}
#importar
//+------------------------------------------------------------------+
 

No soy un experto, pero los archivos de la biblioteca no necesitan ser compilados por separado. De ahí que aparezca el mensaje No se ha encontrado la función de inicio y no se puede ejecutar. El archivo de la biblioteca se incluirá automáticamente en el código y se compilará cuando se compile el EA (cuando haya una función Start).

Además no me queda claro. Aconsejo comentar el #import "PointZigZag.ex4" y el #import. Debería funcionar.

 

Mejor aún, ponlo todo junto en un EA. y tira todo lo demás.

//+------------------------------------------------------------------+
//| Библиот.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int ExtDepth = 12; //------- переменные ZigZag
extern int ExtDeviation = 5; //------- переменные ZigZag
extern int ExtBackstep = 3; //------- переменные ZigZag
extern int ShiftBars = 2; //------- переменные ZigZag
//------- переменные ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Точки перегиба ZigZag
double y31, y21, y11; // Точки перегиба ZigZag
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{ PointZigZag();
Comment("Прод.-y21 = ", y21," ","Пок.-x21 = ", x21);
return(0);
}
double PointZigZag()
{ y3=0; y2=0; y1=0;
sh= ShiftBars;
while ( y3==0)
{ zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if ( zz!=0 && zz!=EMPTY_VALUE)
{if ( y1==0) { x1= sh; y1= zz; }
else if ( y2==0) { x2= sh; y2= zz; }
else if ( y3==0) { x3= sh; y3= zz; }} sh++;
}
if (High[ x1]>High[ x2])
{ x11=High[ x1]; x21=Low[ x2]; x31=High[ x3];
y11=0; y21=0; y31=0; TimeZZ=Time[ x2];
}else
{ y11=Low[ x1]; y21=High[ x2]; y31=Low[ x3];
x11=0; x21=0; x31=0; TimeZZ=Time[ x2];}

}
//+------------------------------------------------------------------+
 
granit77 >> :

O, mejor aún, juntarlos todos en un Asesor Experto, y tirar todo el resto.

Todo esto es comprensible. Pero ese era un ejemplo abstracto.

Simplemente me gustaría crear una biblioteca de diferentes funciones para otros fines, y luego utilizarlas.

Por favor, piense un poco más en cuál podría ser la razón. >> Gracias.

 
gvi2504 >> :

Todo esto es comprensible. Pero ese era un ejemplo abstracto.

Sólo me gustaría crear una biblioteca de diferentes funciones para otros fines, y luego utilizarlas.

Por favor, piense de nuevo, cuál podría ser la razón. >> Gracias.

Gracias por la sugerencia. Me ha gustado tanto tu última frase que te la devuelvo. Mi opinión es que el archivo de la biblioteca no está escrito correctamente, hay tanto #include como #import y una función incorporada. Es una mantequilla. Tíralo, lee un libro de texto y vuelve a escribirlo.

 

¿Cómo probáis vuestros EAs, digamos en un rango de un año? He leído mucha información, pero no puedo hacer nada con el hecho de que mi carta M1 no puede ir más allá del 5 de marzo de 2009. En consecuencia, no puedo fijar el periodo de pruebas antes del 5 de marzo. He intentado cargar citas a MT a través del servicio->archivo de citas, no sirve. El desplazamiento manual tampoco ayuda.... Esto es lo que obtuve del soporte técnico de la empresa de corretaje:


"Lamentablemente, Metaquotes no proporciona un programa especial, el llamado "servidor histórico" a los centros de negociación, por lo que existen estas limitaciones. Además, cuando seleccione el menú "Servicio-Archivo" y haga clic en "Descargar", recibirá la advertencia de que se descargarán los datos históricos del servidor de MetaQuotes.

p.d. Varios centros de negociación (y nosotros estamos entre ellos) intentaron que MetaQuotes permitiera descargar datos (sin restricciones) de una empresa de corretaje en particular. Sin embargo, hasta ahora sólo prometen que este servicio esté disponible en MT5.


¿Y qué debo hacer si quiero comprobar mi Asesor Experto en un intervalo largo?

 
Noterday >> :

¿Cómo probáis vuestros EAs, digamos en un rango de un año? He leído mucha información, pero no puedo hacer nada con el hecho de que mi carta M1 no puede ir más allá del 5 de marzo de 2009. En consecuencia, no puedo fijar el periodo de pruebas antes del 5 de marzo. He intentado cargar citas a MT a través del servicio->archivo de citas, no sirve. El desplazamiento manual tampoco ayuda.... Esto es lo que obtuve del soporte técnico de la empresa de corretaje:


"Lamentablemente, Metaquotes no proporciona un programa especial, el llamado "servidor histórico" a los centros de negociación, por lo que existen estas limitaciones. Además, cuando seleccione el menú "Servicio-Archivo" y haga clic en "Descargar", recibirá la advertencia de que se descargarán los datos históricos del servidor de MetaQuotes.

p.d. Varios centros de negociación (y nosotros nos encontramos entre ellos) han intentado que MetaQuotes permita descargar (sin limitaciones) los datos de una determinada empresa de corretaje. Sin embargo, hasta ahora sólo prometen que este servicio esté disponible en MT5".


¿Y qué debo hacer si quiero comprobar mi EA durante un largo periodo de tiempo?

Además, en MT5 no se acaba de esperar, allí todo se construye sobre М1 y el otro TF se calcula a partir de М1 (esos históricos estarán sólo en М1) Pues bien, pon una ventana más grande y descarga desde MetaQuotes , si no, no hay manera. Si no has ejecutado MT antes de la fecha de inicio y MQ, y no has guardado tus propios movimientos, no hay manera.

Aunque pregunte quién los ha salvado, hay gente que ha salvado las cotizaciones incluso desde la MT-2.

(lo que había antes de MT-2 lo siento no sé demasiado poco tiempo en forex).

 
Cargue el historial y (escriba) pruebe el Asesor Experto en "precios de apertura" en al menos n1...
 
rid >> :
Cargando el historial y (escribiendo) probando un EA en "Precios de apertura" en af, al menos n1...

Sí, efectivamente, he empezado a hacer pruebas :) Pero algo me parece que a causa de tal desorden el sistema no se mostrará. Tal vez el indicador no se calcula correctamente en tales datos o algo más ... sobre todo porque el sistema fue diseñado para los minutos. ¡Gracias de todos modos!

Razón de la queja: