CustomFunctions.mq4 ???

4 respuestas

Mike H.

Abonado, bbp_participant, comunidad, 76 respuestas.

Visitar el perfil

hace 10 años #111633

En el Asistente del EA - Reglas de Operación - Diálogo de Condiciones - Funciones (17) - Función Personalizada - Descripción (abajo), explica: Llame a su propia función. Puede especificar cualquier comando MQL aquí, o llamar a una función MQL personalizada definida en el archivo /code/CustomFunctions.mq4. Usted es responsable de comparar la función con los tipos correctos. Tengo lo que creo que es una función:
double profit() {
   OrderSelect (NULL,0);
   double beneficio = OrderProfit() + OrderSwap() + OrderCommission()
   rentabilidad (beneficio);
}

Soy un novato, por eso compré el EA Wizard. Sé un poco acerca de escribir código. Sé cómo escribir indicadores personalizados simples. Ni siquiera sé si el formato anterior es una función que se puede utilizar con EA Wizard.

¿Cómo introduzco la función anterior en /code/CustomFunctions.mq4?
¿Simplemente reemplazo el código en /code/CustomFunctions.mq4 con el código de arriba, luego renombro el archivo .mq4, lo guardo en la carpeta /code, y el Asistente EA lo encontrará allí? Creo que en la sección Propiedades del cuadro de diálogo Añadir condición, después de Función, escribo el nombre del archivo de la función. Después de Función, ¿simplemente escribo el nombre del archivo y el Asistente de EA lo encontrará en la carpeta /code? ¿Escribo simplemente OrderProfit()+OrderSwap()? ¿Cómo se utiliza la función personalizada?

 

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 10 años #122750

Hola,

 

puedes abrir el archivo {EA Wizard}/code/CustomFunctions.mq4 y añadir tu función al final de este archivo.

Después de esto, tu función será insertada en el código de cada EA generado por el programa, para que puedas utilizarla.

 

 

Pero la función tal y como la has descrito es probablemente incorrecta, no estoy seguro de que se pueda llamar a OrderSelect así.

Y falta un ; al final del cómputo de beneficios.

 

La función correcta sería algo como

 

double profit() {
  doble beneficio = 0;
 
  for (int cc = TotalPedidos() - 1; cc >= 0; cc-) {
    if (!OrderSelect(cc, SELECT_BY_POS) ) continue;
 
    beneficio = OrderProfit() + OrderSwap() + OrderCommission();
    romper;
  }
 
  return(profit);
}

 

 

 

 

A continuación, puede utilizar esta función en llamadas a funciones personalizadas. Sólo tienes que llamar a la función por su nombre, no se utiliza el nombre de archivo.

 

Puede llamarlo en condiciones utilizando Custom Function, donde Function sería: profit()

o en las acciones para almacenar el beneficio a alguna variable, como Custom Action Command: BeneficioVariable = beneficio();

 

Pero el Asistente de EA ya contiene funciones que devuelven el beneficio abierto o cerrado de una operación, devuelven el valor del beneficio neto (sin swaps ni comisiones).

Estas funciones se encuentran en el cuadro de lista Control de estrategia.

 

Mark

Mark
Arquitecto de StrategyQuant

0

Mike H.

Abonado, bbp_participant, comunidad, 76 respuestas.

Visitar el perfil

hace 10 años #122761

Gracias, Mark,

       Lo usaré la semana que viene. Quiero ver si mi Indicador Personalizado donde puse la función funcionará el viernes. Más tarde...

0

Mike H.

Abonado, bbp_participant, comunidad, 76 respuestas.

Visitar el perfil

hace 10 años #122771

Mi indicador personalizado en el que se utilizó la función OpenProfit dentro ha funcionado muy bien. Incluso calculó el Swap también.

0

Mark Fric

Administrador, sq-ultimate, 2 respuestas.

Visitar el perfil

hace 10 años #122795

Me alegro de que haya funcionado 🙂 .

Mark
Arquitecto de StrategyQuant

0

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)