Referencia conjunta de operaciones cerradas largas y cortas
6 respuestas
glennc
hace 6 años #203095
Hola, gracias por un programa tan excelente.
Quiero obtener el beneficio total del último número x de operaciones, largas y cortas combinadas.
Si separo los largos y los cortos con números mágicos, ¿no me dará los totales de las últimas x operaciones largas y las últimas x operaciones cortas, que no es lo mismo que las últimas x operaciones combinadas?
Si utilizo el cero como número mágico, ¿no se incluirán las operaciones de otros EA del mismo par de divisas que se ejecuten en la plataforma?
¿Cómo puedo solucionarlo? Tengo otros problemas relacionados con este tipo de cuestiones, este es un ejemplo del problema.
tomas262
hace 6 años #203217
Hola,
En el Asistente de EA puede utilizar Suma de PL Cerrados para comprobar sólo largos / sólo cortos teniendo la misma magia para todos los largos o todos los cortos. Si utiliza magic = 0, contará las órdenes de todos los pares negociados, no sólo de uno en el que haya colocado su EA.
glennc
hace 6 años #203230
Hola Thomas,
Gracias por su respuesta.
Así que para confirmar: ¿Simplemente no puedo obtener beneficios/pérdidas a partir de un cierto número de operaciones, independientemente de la dirección de la operación?
Parece una limitación desafortunada. Como he mencionado anteriormente, esta cuestión es un ejemplo de un problema mayor. Si magic = 0 no puede contenerse sólo en el EA en cuestión, entonces seguramente necesitamos una función que permita que
magicLong AND magicShort o magicLong OR magicShort?
tomas262
hace 6 años #203403
Para obtener beneficios totales de # de operaciones históricas puede hacer esta función (colocar al final del código EAWizard \ CustomFunction.mq4)
int sqGetTotalPL(int numeroÚltimosPedidos) {
doble pl = 0;
int recuento = 0;
int beneficios = 0;for(int i=TotalOrdersHistory(); i>=0; i-) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true && OrderSymbol() == Symbol()) {cuenta++;
if(OrderType() == OP_BUY) {
pl = (OrderClosePrice() - OrderOpenPrice());
} else {
pl = (OrderOpenPrice() - OrderClosePrice());
}if(pl > 0) {
beneficios++;
}if(count >= numberOfLastOrders) break;
}
}return(beneficios);
}
A continuación, puede hacer referencia a la función personalizada en el Asistente de EA mediante la llamada "sqGetTotalPL(3)" para obtener el P/L de las 3 últimas operaciones en un símbolo seleccionado.
glennc
hace 6 años #203693
Hola Tomas,
Muchas gracias por eso - Aprecio el tiempo que debe tomar. A medida que leo a través del código (teniendo en cuenta que no puedo leer código), ¿esto me dará un resultado sólo para la EA que se incluye en, y no todos los resultados para el par (OrderSymbol) en la historia MT4? Estoy tratando de aislar el beneficio / pérdida en un número de operaciones dentro de un EA específico, a pesar de que otros EAs se están ejecutando en el mismo par en la misma plataforma.
Gracias de nuevo por su ayuda.
tomas262
hace 6 años #203816
Hola,
esta declaración en el código OrdenSímbolo() == Símbolo() asegura que le dará resultados sólo para el símbolo que ejecuta su EA en por ejemplo EURUSD
glennc
hace 6 años #217747
Gracias, Tomas.
Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)