¿Por qué NO hay un EA completo en la base de código? - página 4

 

Algunas cosas para añadir como opciones de EA:

- cálculo de número mágico único, tal vez a prueba de tontos para dar el mismo resultado cuando el broker cambia el nombre del símbolo (por ejemplo de "EURUSD" a "EURUSD.m")

- opciones de gestión de órdenes (trailing stop, break even (estos en pips u otros valores como psar, x bars high/low, ma, etc.), cierre de órdenes)

- manejo extensivo de la información de la orden por medio de un ticket de orden (para lo cual un archivo de texto (o csv) parece ser la forma más simple y apropiada). GV es limitado, OrderComment() puede ser cambiado por el broker.

 
Basándose en IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, ¿actualizas el enlace de descarga o tenemos que "parchear" manualmente la fuente de WHRea con todas las actualizaciones que proporcionas en este hilo?
 
No se pueden actualizar los mensajes una vez que tienen un par de días de antigüedad.
 
Ya veo... ¿Podría volver a publicar aquí la versión más reciente?
 
mbirrell:

Me preocupa un poco compartir mis indicadores y EAs personalizados porque si lo hiciera y todo el mundo empezara a utilizarlos ya no funcionarían... ¿Alguien más está de acuerdo?

Sé que suena un poco egoísta... pero cuando llegue a los 5 millones lo compartiré ;-)

En realidad, si todo el mundo utilizara su Ea, el precio del mercado sería cero o infinito. Todo el mundo querrá comprar o vender al mismo tiempo.
 

Hola chicos, ¿el ejemplo del tutorial de MQL4 es suficiente si sólo queremos una solución simple y general?

Mi EA comercia y hace cálculos por barra y no por tick.


int Fun_Error(int Error) // Función de procesamiento de errores
{
switch(Error)
{// Errores no cruciales
caso 4: Alert("El servidor de comercio está ocupado. Intentando una vez más..");
Sleep(3000);// Solución sencilla
return(1);// Salir de la función
caso 135: Alert("El precio ha cambiado. Intentando de nuevo...");
RefreshRates();// Actualizar tarifas
return(1);// Salir de la función
case 136:Alert("No hay precios. Esperando un nuevo tick..");
while(RefreshRates()==false) // Hasta un nuevo tick
Sleep(1);// Pausa en el bucle
return(1);// Salir de la función
case 137:Alert("El corredor está ocupado. Intentando una vez más..");
Sleep(3000);// Solución simple
return(1);// Salir de la función
case 146:Alert("El subsistema de negociación está ocupado. Intentando una vez más..");
Sleep(500);// Solución simple
return(1);// Salir de la función
// Errores críticos
caso 2: Alert("Error común.");
return(0);// Salir de la función
caso 5: Alert("Versión antigua del terminal.");
Work=false;// Terminar la operación
return(0);// Salir de la función
caso 64: Alert("Cuenta bloqueada.");
Work=false;// Terminar la operación
return(0);// Salir de la función
caso 133:Alerta("Operación prohibida.");
return(0);// Salir de la función
case 134:Alert("No hay suficiente dinero para ejecutar la operación");
return(0);// Salir de la función
por defecto: Alert("Se ha producido un error: ",Error); // Otras variantes
return(0);// Salir de la función
}
}

 

Esto puede ser la base de un muy buen EA Shell /Template: WHR es un codificador de MT con experiencia.

Originalmente fue pensado como una fuente de código de EA útil, no es un "plug and play" Shell.

He actualizado este EA de un par de maneras:

1. 1. He modificado la sintaxis y los nombres de las variables para que compile en las versiones actuales de MQL4.
También añadí cambios muy menores para que compile, comentados con "Big Be".

2. Incorporé todas las secciones de código adicionales que WHR puso en el hilo.
Dejé en su lugar pero comenté las secciones que fueron reemplazadas.
Es posible que se produzcan errores al añadir estas secciones, aunque he sido lo más cuidadoso posible.
También es posible la falta de integración total con el resto del EA.

3. También lo pasé por un programa que limpia el formato del texto para que sea legible.

Comenzará a ejecutarse en el Probador de Estrategias.
No tomará operaciones, ya que la configuración de las reglas de entrada se deja a usted.
No lo he llevado más lejos ya que tengo otras demandas en mi tiempo.

TRABAJO NECESARIO:
Aunque hay comentarios a lo largo, muchos necesitan ser aclarados. O escribirlos si no existen. ¿Qué hace cada sección o función?
Un ejemplo: CallAgain() dice "Saltar ticks inútiles" ¿Cuál es el método o la lógica? Probablemente sólo está tomando los ticks que están lo suficientemente lejos y/o están en la dirección de la operación si se trata de un Trailing Stop, pero habrá que estudiar un poco para verificarlo.

Hacer esto hará que cumpla mejor su papel como una fuente de ideas, y permitir aún más la viabilidad como un shell EA / plantilla.

MÁS PRUEBAS:
Añadir algunas reglas de entrada, y la prueba de que cada sección está haciendo lo que se supone que. Esto requiere un montón de estudio en el Probador de Estrategias. Y probablemente un poco de codificación aquí y allá para conseguir que haga lo que se supone que debe hacer. Cuando funciona allí, entonces un montón de pruebas en una cuenta de demostración.

ADVERTENCIAS:
Al menos una función es incompleta, y puede haber errores en este código, o los cambios en Metatrader desde el whrea fue escrito que no se permiten.

Codificar/usar un EA sin entenderlo es algo así como intentar pilotar un avión sin entender todos los controles y cómo usarlos.
Pero, haz lo que quieras: es tu dinero.

SOLICITAR
Por favor, ayuda si tienes los amplios conocimientos necesarios y un poco de tiempo.


Big Be (BigBe)

Archivos adjuntos:
whrea_v1.2.mq4  188 kb
 
William Roeder:

Por favor, ¿podría explicar qué es pips2dbl?

 
Pooya Khamooshi: Por favor, ¿podría explicar qué es pips2dbl?

Para convertir los PIP en un tick.

Un PIP no es un Punto o Tick.
¿Qué es un TICK? -Foro de programación MQL4

El uso de puntos significa que se rompe el código en corredores de 4 dígitos, exóticos (por ejemplo, USDZAR donde el spread es de más de 500 puntos,) y metales. Calcule lo que es un PIP y utilícelo, no los puntos.
¿Cómo gestionar los pares JPY con parámetros? -Foro de programación MQL4
Deslizamiento definido en puntos de índice - Pares de divisas - Asesores Expertos y Trading Automatizado - Foro de programación MQL5