[¡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 747
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
La alerta no funciona - en el probador se convierte en una impresión... El probador tiene la particularidad de procesar primero las condiciones comerciales (órdenes y lógica), y sólo entonces, si hay tiempo suficiente, imprimir, por lo que sólo el soment, y esta operación toma mucho más tiempo que la impresión.
Por desgracia, la red de arrastre no funciona. Da un error al compilar. ¿Qué hay que arreglar?
??????????
¡¡¡Cómo puedo calcular el importe de las últimas operaciones perdedoras en denominaciones!!! Si puedes, el código ...
Hace sol al aire libre, mi cabeza no funciona en absoluto ..... )
Gracias...Hay características en el hilo de I.Kim que podrían ayudarte. - https://www.mql5.com/ru/forum/107476
La función GetProfitFromDateInCurrency(). Página 18
Esta función devuelve el beneficio total en la moneda de las posiciones cerradas desde una fecha determinada
Función isLossLastPos(). Página 21
Esta función devuelve el indicador de pérdida de la última posición cerrada. Bandera levantada - Verdadero - la última posición se cerró con pérdidas. Bandera omitida - Falso - la última posición se cerró con un valor cero o con un beneficio. Esta función no tiene en cuenta los intercambios y las comisiones. La selección de la posición se define mediante parámetros externos:
Función isCloseLastPosByStop().
Función NumberOfLossPosToday() Página 24
Esta función devuelve el número de posiciones perdedoras que se han cerrado hoy.
Por desgracia, la red de arrastre no funciona. Da un error al compilar. ¿Qué hay que arreglar?
Queridos amigos, buenas tardes.
Siento que la pregunta no esté directamente relacionada con mql y la escritura de robots, pero realmente quiero entenderlo para un mayor análisis de los procesos de forex y de cambio.
El problema es el siguiente:
Hay un archivo de Excel que muestra el valor de los máximos/mínimos del ZigZag y el tiempo de formación de estos máximos/mínimos
A partir de estos datos, hay que construir el siguiente gráfico:
Por favor, dime cómo hacer esto en Excel 2007.
(Soy consciente de que es una pregunta de aficionado, pero después de las vacaciones necesito ponerme en forma ya)
Muchas gracias de antemano.
Hasta ahora no he tenido que lidiar con EAs multidivisa . Puede alguien decirme brevemente si MetaTrader permite probar/optimizar este tipo de EAs, cuáles son los problemas y limitaciones en este momento, etc. ¿Cuáles son las peculiaridades de escribir este tipo de EAs en comparación con los estándar?
Gracias.
Buenas tardes, amigos...
Según tengo entendido, el resultado final debería ser aproximadamente esta imagen:
Si es así, para conseguirlo en Excel 2007 haz lo siguiente:
Tome el archivo CSV generado por el script, ábralo en Excel.
Elimine las columnas innecesarias y deje sólo la Hora y la Fecha ZigZag.
A continuación, seleccione las columnas restantes, abra la pestaña "Insertar", haga clic en "Gráfico" y seleccione el tipo "Gráfico". El gráfico se dibuja automáticamente con los parámetros estándar. A continuación, si es necesario, cambie el precio de la división en los ajustes del eje, añada una cuadrícula, etc.
En el archivo, el CSV original, por ejemplo, y el gráfico resultante en formato XLSX.
Si la primera operación no fue rentable, se inicia el bucle de recuento y se añade para siempre.
¡¡¡Pero hay una trampa!!! Si una operación es rentable, todas las demás órdenes perdedoras se cuentan normalmente ....
¡ double orderProf; // Contador del número de operaciones perdedoras
double CalculateLots(){
double Res=0.01;
bool bProfit=true;
int PrevTime=-1;
double tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderCloseTime()<PrevTime) continue;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0){bProfit=false; orderProf++;}
tmpLots=Lotes de pedido();
}
return(Res);
}