[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 24

 
paladin80:
Si quieres, que con 3 órdenes ya abiertas, las siguientes (4, etc.) se abran con 2 x lotes, entonces
Sí todo es correcto, pero necesito ponerlo todo en la segunda condición, estas dos condiciones se activan y desactivan manualmente si (LotConst_o_no) gd_200 = Lot; (esta es la primera condición)

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0; (segunda condición)

Ahora, en lugar de establecer un lote de equilibrio, debemos corregir la condición en la que con 3 órdenes abiertas las siguientes (4, etc.) se abrirán con 2 lotes. Si hay funciones más sencillas.

 
¿Pueden decirme cómo cerrar las órdenes pendientes cuando se activa un TakeProfit para una orden de mercado?
 

¡Buenas tardes!

Me pueden decir cómo leer una cadena de texto con un número determinado desde un archivo.

En principio, puedo utilizar el siguiente código:

StringSubstr(Text,0,16);

Por ejemplo, leer los primeros 16 caracteres, pero si las líneas serán de diferente longitud, y necesito una coincidencia

valor1=línea 1;

value2=línea 2;

Gracias de antemano.

 

Por favor, sugiera un procesador de textos gratuito en el que se pueda mover una parte del texto a una nueva línea al reemplazarlo.
Gracias.

 
forexnew:

¡Buenas tardes!

Me pueden decir cómo leer una cadena de texto con un número determinado desde un archivo.

En principio puedo utilizar este código:

Por ejemplo, leer los primeros 16 caracteres, pero si las cadenas serán de diferentes longitudes, y necesito una coincidencia

valor1=línea #1;

value2=línea 2;

Gracias de antemano.



FileReadString(hwd);
 
artem86:
¿Podría indicar cómo cerrar las órdenes pendientes cuando se activa el TakeProfit para una orden de mercado?

Toma la función Kim isCloseLastPosByTake().

Si devuelve true - el TP se ha disparado.

Vea la función misma en https://www.mql5.com/ru/forum/107476/page21#79908

 
FAQ:

FileReadString(hwd);

En este caso, hay que prescribir la longitud de la cadena a leer, por ejemplo

Str=FileReadString(handle); Symbol1=StringSubstr(Str,0,6); //6 caracteres

Str=FileReadString(handle); Symbol2=StringSubstr(Str,0,6); //6 símbolos

¿Y si no conozco la longitud de la cadena o ésta varía de una línea a otra? Es decir, necesito "capturar" el texto de la cadena completa.

 
forexnew:

En este caso, hay que prescribir la longitud de la cadena a leer, por ejemplo

Str=FileReadString(handle); Symbol1=StringSubstr(Str,0,6); //6 caracteres

Str=FileReadString(handle); Symbol2=StringSubstr(Str,0,6); //6 símbolos

¿Y si no conozco la longitud de la cadena o ésta varía de una línea a otra? Es decir, necesito "capturar" el texto de toda la cadena.


Sinceramente, no entiendo muy bien cuál es el problema...
Siempre puedes comprobar la "longitud de la línea":

int StringLen( string text) 
Возвращает число символов в строке
 
atztek:

Para ser sincero, no estoy muy seguro de cuál es el problema...
Siempre puedes comprobar la "longitud de la línea":

Gracias. Está funcionando.
 

Fíjate bien en el formato de mi entrada, ahí no he especificado la longitud de la línea, luego lee la descripción, de nuevo con atención:

string FileReadString(int handle, int length=0)
La función lee una cadena desde la posición actual del archivo. Se aplica tanto a los archivos CSV como a los binarios. Para los archivos de texto, la cadena se leerá antes del separador. En el caso de los archivos binarios, se leerá un número determinado de caracteres en la cadena.
Para obtener información sobre errores, llame a la función GetLastError().
Parámetros:
asa-Descriptor de archivo devuelto por FileOpen().
longitud-Número de caracteres a leer.
Ejemplo:
 int handle; string str; handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);//si(handle>0) { str=FileReadString(handle);//entonces esta función leerá hasta el final de la cadena
FileClose(handle);

}


Razón de la queja: