[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 316

 
fore-x:

Por favor, aconseja cómo enseñar al programa a recordar las últimas variables utilizadas. Necesito recordar el símbolo, el marco temporal, la caja, el reverso, el ancho y el número de barras. Después de los ajustes seleccionados por un usuario, se guardarían en algún lugar y, posteriormente, si los parámetros se guardan en algún lugar, se cargarían desde allí. ¿Qué usar, qué hacer?

Pulse F7.

Esto abrirá las Propiedades de EA.

En la pestaña "Parámetros de entrada", pulse el botón "Guardar".

Puede cargar los parámetros guardados de la misma manera.

 

No cabe una foto (con el algoritmo), así que la he adjuntado.

Esto es lo esencial. (1) El EA debe abrir una orden y establecer s\l, t\p, lote. (2) Entonces, si ha habido un beneficio en la operación, simplemente la repite.(3) Si hay una pérdida, cambia algunos valores y una nueva orden con ellos, y así sucesivamente, hasta que haya una operación rentable. (4) Luego restablece los valores iniciales del punto 1 y repite todo. No es posible organizar un ciclo (punto 3) con salida del mismo si hubo un beneficio en la operación, y restablecer los parámetros iniciales tras la salida del mismo.

 
enya:

Ayuda con un par de funciones. La imagen (con el algoritmo) no está insertada, así que la he adjuntado.

parece que no los tienes pegados.

Pero en realidad este hilo es para programadores novatos, no para comerciantes novatos.

Aquí es donde se discuten los errores en el código.

¿Tiene al menos un esquema del código de su algoritmo?

 
sergeev:
parece que no los tienes pegados.

.

hay un problema con el bucle y la restauración de los valores iniciales después de salir del bucle.

 
La pregunta es "¿cómo es el Do while de VB y cómo pongo el valor de la ganancia (resultado) de la última orden en una variable?
 
Por favor, aconséjeme cómo deshacerse del error El nombre del símbolo de la función MarketInfo debe ser una cadena
 
enya:
La pregunta es "¿cómo es el análogo Do while de VB y cómo pego el valor de la ganancia (resultado) de la última orden en una variable?

Lea primero el tutorial https://book.mql4.com/ru/

No hay un análogo completo del bucle do con comprobaciones previas y posteriores, pero hay un while normal (la comprobación posterior puede representarse con for).

Los programas no son exactamente lineales, es más fácil centrarse en los eventos, en lugar de hacer un bucle con el procedimiento de inicio.

He aquí un esquema aproximado,

1. ajustar SL,TP...

2. comprobar el número de órdenes abiertas, si hay menos de una, se abre una nueva orden.

La lógica del diagrama de bloques sigue sufriendo, hay muchas preguntas a las que no responde. Por ejemplo, ¿qué pasará si se lanzan varios EAs, o qué pasará si reiniciamos el EA antes de cerrar una orden, etc.?

 
dofer-dert:
Por favor, aconséjeme cómo deshacerse del error El nombre del símbolo de la función MarketInfo debe ser una cadena

La función MarketInfo necesita una cadena como nombre de la herramienta. Por favor, proporcione una cadena para usarla.
 

¿qué puede haber de malo en esto?

aquí en el código

{

si (lote1 < MarketInfo(NULL,MODE_MINLOT)) {lot1=MarketInfo(NULL,MODE_MINLOT);lot2=lot1*2;lot3=lot1*3;lot4=lot1*4;lot5=lot1*5;

}

o aquí

STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL);

 
 MarketInfo(Symbol(),MODE_MINLOT)
Razón de la queja: