Deseos para Meta Trader 4/5

 

1) Hacer un constructor de estrategias intuitivo, de arrastrar y soltar, a la manera de Gordago (o mejor aún, constructores de estrategias más complejas). Esto sin duda atraerá a nuevos usuarios que quieran operar de manera más o menos sistemática, pero que no quieran pasar mucho tiempo aprendiendo y hurgando en MQL. El negocio del operador es pensar en el mercado y probar opciones, no en dónde se ha colado un error en el código del programa.

2) Historial de marcas para las pruebas. De todos modos, tarde o temprano tendrá que hacer "para todos" debido a la competencia y a los cambios que se están produciendo, y la gente con conocimientos y "mucho tiempo" sabe cómo abordar las pruebas en MT4 de todos modos.

Haz estas cosas y MT será el número 1 durante mucho tiempo sin duda. Y si tú no lo haces, otros lo harán (y ya lo hacen). Pero ya tiene un producto de suficiente calidad y adecuado para construir sobre estas cosas necesarias.

Con la esperanza de comprender.

 
Muy ingenuo.

Pocas personas pueden resistirse al sueño de "voy a tirar los dados visualmente y luego ya está hecho". La cruda realidad y la práctica a largo plazo demuestran que nunca ha funcionado, nunca ha funcionado y es poco probable que funcione así. Nos movemos exactamente en la dirección contraria: nos centramos en los programadores y les proporcionamos herramientas de desarrollo completas.
 
Querido Renat.

¿Es posible en la nueva versión de Meta Trader 4
en el probador de la estrategia en la página "Log"
a través del menú que aparece después de hacer clic derecho
junto con el elemento "Auto-desplazamiento" añadir elementos
"Desactivar la salida de los mensajes del probador".
"Desactivar la salida del registro".

Así que los registros mostrarán sólo los resultados del Asesor Experto y no los siguientes mensajes:

2007.09.04 22:49:44 Experto: cargado con éxito
2007.09.04 22:55:37 2006.01.02 07:00 Experto: EURUSD,M1: open #1 buy 0.50 EURUSD at 1.1832 sl: 1.1732 tp: 1.1882 ok
2007.09.04 22:55:38 2006.01.03 06:03 Probador: take profit #1 at 1.1882 (1.1883 / 1.1886)

y otros mensajes similares
Cuando un Asesor Experto envía muchas órdenes dentro de un período de prueba
es casi imposible encontrar los mensajes del propio Asesor Experto
y hace que la depuración sea muy difícil.
No es conveniente buscar algo en los registros del disco.

Gracias de antemano.
 
1)Capacidad total de jugar con la historia.
2)Posibilidad de observar la forma completa del espacio de dos variables durante la optimización
y no sólo el mejor resultado, cuando todos los demás valores son fijos.
3) Capacidad de realizar un WFA automático.
4) Capacidad para probar y optimizar los EAs multidivisa (cartera).
 
Renat:
Muy ingenuo.

Pocas personas pueden resistirse al sueño de una especie de "ahora tiro los dados y ya está". La cruda realidad y la larga práctica demuestran que no ha funcionado, no funciona y es poco probable que funcione así. Nos movemos exactamente en la dirección opuesta: nos centramos en los programadores y les proporcionamos herramientas de desarrollo completas.


Es una respuesta extraña. "Política", como, por cierto, muchas otras respuestas. No estoy hablando de una "quimera", sino de una interfaz en realidad. Y no voy a perder el tiempo en discusiones sobre qué, quién lo tiene y cómo "funciona" exactamente, por así decirlo. En su lugar, propongo que mantenga y desarrolle una programación compleja, y que añada un diseñador visual intuitivo para otra parte de la plataforma CA. Si lo haces funcionalmente idéntico a la programación (aunque no sea de forma inmediata), y aún mejor, tienes la capacidad de combinar estos dos métodos, entonces ¿qué diferencia hay en cómo el usuario formará la estrategia: por código, "a dados", o de forma sumaria?

Por lo visto, me dirán que "no tenemos recursos para hacer todas estas tonterías". Nos pasaremos el resto de nuestras vidas cantando la misma melodía".

 
ADI:


Por lo visto, me dirán que "no tenemos recursos para hacer todas estas tonterías". Vamos a pasar el resto de nuestras vidas cantando la misma melodía".

La teoría está bien, pero nosotros somos profesionales. Ya se han hecho intentos de "hacer una solución sencilla para los comerciantes" (MQL, MQL2). Ya he escrito sobre ello muchas veces.

Pero vamos a trabajar con el constructor/visado - intentaremos hacer esqueletos básicos simples (no programas completos) de forma automática.
 
Además de la declaración habitual de las variables, realmente me gustaría crear variables similares por nombre de cadena, que actúa como un parámetro que puede ser cambiado durante el funcionamiento de un indicador o un Asesor Experto. Esto es similar a las variables globales. Por ejemplo, así:
CreatIntVariable("Variable_Name");
 

Renat, te sugiero que pienses en el prototipo de función iCustom en futuras versiones. Ahora hay que escribir la lista de parámetros explícitamente en el código, y no se puede llamar a un indicador arbitrario por su nombre, por ejemplo, que fue establecido por un usuario, porque el número de argumentos de cualquier indicador es desconocido de antemano. Restringe mucho el uso de iCustom. Y además, hay dos parámetros de llamada (int mode, int shift) al final de la lista de argumentos de iCustom, es decir, los parámetros del indicador "rompen" los parámetros de iCustom en el prototipo.

Puedo proponer un prototipo de este tipo:

double iCustom( string symbol, int timeframe, string name, int mode, int shift, object[] indicatorParams)

Es decir, todos los parámetros obligatorios del propio iCustom están al principio, y el último argumento de la función es un array de los argumentos indicadores de un nuevo tipo de objeto arbitrario (de hecho, son int, bool, double, datetime y otros tipos MQL incorporados) con un número variable en el array. Aunque la idea en sí no es realista - hace unos 5 años un hombre me dijo que los programadores son una clase de personas en extinción, que es una capa innecesaria entre los profesionales y los ordenadores. Con el paso del tiempo, el pronóstico se convierte en lo contrario: el número y la complejidad de las soluciones informáticas no hacen más que aumentar.

Y sería bueno tener funciones para enumerar sus argumentos para los indicadores: IndicatorArgsCount(), ArgsItemName[i] devolverá el nombre del parámetro, etc.
Y lo más importante - es un depurador en MQL 5.

 

Para chv - todavía es posible utilizar los parámetros por defecto en iCustom - ver https://docs.mql4.com/ru/indicators/iCustom.

En principio MQL4 lo representa todo ahora, pero todavía es posible más. Aquí está mi lista:

1.) Es posible determinar si una orden StopLoss o TakeProfit acaba de cerrarse. Esto se puede hacer ahora, pero es bastante complicado:

3 funciones

int OrderJustClosedCount() - devuelve el número de órdenes cerradas en las paradas

int OrderJustClosed(int pos) - número del ticket

void OrderJustClosedClear() - borra el búfer - inmediatamente después de que OrderJustClosedCount devuelva 0 - si el procesamiento ha durado demasiado.

2.) Para algunos objetos (por ejemplo, un canal de regresión lineal), no se pueden leer algunos valores después del dibujo (por ejemplo, el precio al final de un canal).

3.) Añadir más MathArcTan2 - por lo menos MathArcTan2 - por supuesto mucho ya se ha implementado en MQL4, pero aún así - ¿por qué no integrarlos?

Y sobre el depurador, creo que ya estáis trabajando en él ;-)

 
Itso:

1.) La posibilidad de determinar si las órdenes StopLoss o TakeProfit acaban de cerrarse. Esto se puede hacer ahora, pero es bastante complicado.

También hay una lista de órdenes pendientes activadas.

En general, basta con introducir el concepto de "evento", y todas estas situaciones pueden ser manejadas.
Por ejemplo, el evento "orden desencadenada", "SL desencadenada", o "orden eliminada por tiempo de caducidad".
 
Itso:

Para chv - la posibilidad de utilizar parámetros por defecto en iCustom todavía existe - ver https://docs.mql4.com/ru/indicators/iCustom


Ya he leído el prototipo de la función iCustom ;). Los "parámetros por defecto" no me permiten hacer lo que necesito. Aquí está la tarea más simple - el Asesor Experto toma como argumento en una cadena el nombre de un indicador arbitrario y, por ejemplo, una lista separada por comas de los valores de sus parámetros en un archivo de texto. El Asesor Experto debe llamar a este indicador por su nombre con los valores de los argumentos especificados y recibir sus valores e imprimirlos en el diario, por ejemplo, como hemos visto en la descripción de iCustom:

...   -   Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных  пользовательского индикатора.

Ahora no podemos hacer esto para un indicador arbitrario - escribir lo que no sabemos. En la fase de compilación del Asesor Experto, se desconoce el número y el tipo de argumentos del indicador. Se determina sólo en tiempo de ejecución. En los lenguajes de programación, esto se llama "late binding". Por el momento no existe en MQL.