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

 
DOCTORS:


Supongo que mis funciones cerebrales se han deteriorado en parte después de las vacaciones, lo que se traduce en un bajo nivel de autocontrol :(

La cuestión es un poco diferente:

1. Nada más arrancar el Asesor Experto, asigno el valor inicial del depósito a alguna variable (estoy buscando la función de asignación, aunque por supuesto puedo prescribirla manualmente en los ajustes iniciales, pero ya me han reprochado mis escasas habilidades de programación, pero quiero hacerlo como lo hace un blanco).

2. Como mi sistema es astuto, y trabaja sólo un lote, el valor inicial del lote (digamos) 1,0 ...

3. Y la pregunta principal - Quiero que después de cada comercio rentable, el depósito se comparó con el original, y si el nuevo valor (digamos) era más del 30%, cambio el valor del tamaño del lote en 0,1, es decir, 1,0 +0,1, y así constantemente (claramente el matiz de que constantemente tiene que cambiar el valor antiguo de la variable, y de nuevo el operador de asignación del valor variable del depósito).

En fin, la cosa va así.


En la biblioteca, vea las herramientas de gestión de volúmenes de I. Kim y otras versiones, incluida la del libro de texto que le di - cuando entienda cómo funcionan, no será difícil hacer las suyas propias, que es exactamente lo que necesita... Así es. Sin ella - no hay manera - la práctica y la solución de problemas típicos - IMHO, en primer lugar. Ver el tráiler - características de la gestión de capital por Igor Kim.
Archivos adjuntos:
b-lots.mqh  3 kb
 
sss2019:

¿El descriptor de archivo es siempre mayor que cero al abrirse con éxito?

Por favor, vea si la lógica de este código, que abre el archivo para escribir

mal, y ¿quién cerraría un archivo después de haber sido creado si no lo hay?

y entonces el terminal le dará un error de apertura en este caso, así que es mejor comprobar la presencia del archivo con la bandera FILE_CSV|FILE_READ, en este caso si no hay ningún archivo, el terminal será silencioso

 
FAQ:

errónea, y ¿quién cerrará el archivo después de su creación si no hay archivo?

Y entonces, el terminal le dará un error de apertura en este caso, por lo que es mejor comprobar si hay archivo con la bandera FILE_CSV|FILE_READ, en este caso si no hay archivo, el terminal será silencioso


Bueno, está ahí. Si el archivo estaba abierto

  if(Handle >0)
  FileClose(Handle);

Hice un registro en el archivo, pero el delimitador al final no se añade, y el tutorial dice que se añade automáticamente.

FileWrite(Handle,"Pair, Min, Max, Open, Close, Moment");
 

Y si no estaba, lo creas y no lo cierras. o entonces si tienes un cierre extra (abajo en el código)

en cuanto al delimitador - cualquiera que sea el delimitador con el que abra el archivo (en lugar de crearlo), será el mismo

 


Jeje, es un avatar temático. :)

2 Roman - gracias, lo investigaremos.

 

PREGUNTAS Y RESPUESTAS:

Y si no estaba, lo creas y no lo cierras. o entonces si tienes un cierre extra (abajo en el código)

el separador - cualquiera que sea el separador con el que se abra el archivo (no se crea), será el mismo


Entonces por qué es redundante no entiendo, si no lo cierro inmediatamente, entonces lo cierro después. Por favor, muéstrame un ejemplo de cómo abrirlo y cerrarlo correctamente.

 
Por favor, indíquenos cómo hacer que la señal de alerta aparezca en el indicador, sólo una vez en la barra actual. He intentado hacer una variable, y mientras esta variable tenga valor 0 la señal está permitida, en cuanto la señal suena la variable toma valor 1. Pero no funciona.
 
sss2019:
Por favor, indíquenos cómo hacer que la señal de alerta aparezca en el indicador, sólo una vez en la barra actual. He intentado hacer una variable y mientras esta variable tenga valor 0 se permite la señal, en cuanto la señal ha sonado la variable toma valor 1. Pero no funciona.

https://docs.mql4.com/ru/basis/variables/static
 
sss2019:
Por favor, indíquenos cómo hacer que la señal de alerta aparezca en el indicador, sólo una vez en la barra actual. He intentado hacer una variable, y mientras esta variable tenga valor 0 la señal está permitida, en cuanto la señal suena la variable toma valor 1. Pero no funciona.
Archivos adjuntos:
 
sss2019:
Por favor, indíquenos cómo hacer que la alerta aparezca en el indicador sólo una vez en la barra actual. He intentado hacer una variable y mientras esta variable tenga valor 0 la señal está permitida. En cuanto la señal ha sido emitida la variable toma valor 1. Pero no funciona.


Suelo crear una variable LastBarAlert y escribir en ella Time[0] cuando se dispara la alerta.

Y luego elemental, la alerta se muestra si LastBarAlert!=Time[0]

if (Signal && LastBarAlert!=Time[0]){
  Alert('Signal detected');
  LastBarAlert=Time[0];
}
Razón de la queja: