Errores, fallos, preguntas - página 2237
![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
Algunos personajes tienen un tiempo de espera y otros no. ¿Cómo puedo saber la edad máxima de la garrapata que todavía puede ser percibida por OrderSend (sin [Sin precio])?
La mierda sabe.
La bandera FILE_SHARE_WRITE parece funcionar en esta combinación, pero surge otra pregunta: ¿qué sentido tiene esta escritura en particular? Lógicamente, si habilitamos la separación de escritura, debería añadirse a la bandera de escritura:
Eso es exactamente lo que he probado, y también da error.
Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio
La plataforma de negociación MetaTrader 5 está disponible para los clientes de AMP Futures
fxsaber, 2018.07.23 22:34
Ejemplo en el que es imposible realizar una orden de mercado incluso cuando el Bid/Ask es un múltiplo del TickSize
Aquí Last price no es un múltiplo de TickSize. No tiene nada que ver con las Órdenes de Mercado, pero OrderCheck sigue fallando - no permite que se haga una Orden de Mercado.
Algunos personajes tienen un tiempo de espera y otros no. ¿Cómo puedo saber la edad máxima de la garrapata que todavía puede ser aceptada por OrderSend (sin [Sin precio])?
Sucede que el último tick recibido hace 16 segundos no se percibe como relevante para el OrderSend. Al fin y al cabo, debe tratarse de un error.
Activé MetaTrader, encontré mi antiguo ejemplo, añadí FILE_SHARE_WRITE (aunque no lo necesitaba allí) - el resultado no cambió... Quizás por otra razón no me funcionó
Alternativamente, puede posicionar el archivo en la memoria (MemMap) y trabajar allí vía semáforo, y luego volcar los datos en el archivo vía semáforo
Por cierto, este método le dará una gran ganancia de velocidad
Alternativamente, puede posicionar el archivo en la memoria (MemMap) y trabajar allí vía semáforo, y luego volcar los datos en el archivo vía semáforo
Por cierto, este método le dará una gran ventaja de velocidad
El caso es que tenía un pequeño archivo de configuración y cada EA sólo tenía que leerlo una vez antes de empezar a trabajar - la operación más sencilla - ver el ejemplo en los enlaces de arriba... y tú dices semáforos)
Digo que la escritura en este problema durante varias páginas, y dado que el problema con la barba y solucionarlo desarrolladores aparentemente no pueden o no quieren porque ¡Te ofrecí uno de ellos, si no te gusta usa winapi cual es el problema )) pero es mejor que escribir lo mismo sin hacer nada, puedes usar los mismos semáforos para leer de un archivo físico, la misma señal de semáforo que está ocupado y necesita esperar!
En este sencillo script, ejecutado primero con escritura = true y luego en otro gráfico con escritura = false, obtengo un error.
El abridor para la lectura carece de la bandera FILE_SHARE_WRITE (permitir escritura), ya que hay un escritor.
Se trata de una limitación del sistema (WinAPI).
Aquí están las banderas correctas con las que su código funcionará:
Aquí están las banderas correctas para que su código funcione:
Por favor, arregle FileLoad
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
fxsaber, 2018.07.10 19:26
Error en FileLoad. Si con la bandera FILE_COMMON, dos Agentes locales intentan leer datos a través de FileLoad, uno de los Agentes se equivoca.
Es posible establecer banderas apropiadas en FileOpen, pero no en FileLoad. Por lo tanto, permita el acceso al archivo a través de FileLoad si el otro FileLoad lo lee.
¿Por qué? )
Porque no hay ningún cero en la lista de banderas
Identificador
Valor
Descripción
FILE_READ
1
El archivo se abre para su lectura. Esta bandera se utiliza al abrir un archivo (FileOpen()). FILE_WRITE y/o FILE_READ deben establecerse cuando se abre el archivo.
FILE_WRITE
2
El archivo se abre para escribir. Esta bandera se utiliza para abrir un archivo (FileOpen()). Cuando se abre un archivo, las banderas FILE_WRITE y/o FILE_READ deben estar activadas.
FILE_BIN
4
Modo binario de lectura-escritura (sin conversión de o a cadena). Esta bandera se utiliza para abrir archivos (FileOpen())
FILE_CSV
8
Un archivo csv (todos los elementos escritos se convierten en una cadena del tipo apropiado, unicode o ansi, y se separan con un delimitador). Esta bandera se utiliza al abrir un archivo (FileOpen())
FILE_TXT
16
Archivo de texto simple (igual que csv, pero sin separador). Esta bandera se utiliza cuando se abren los archivos (FileOpen())
FILE_ANSI
32
Cadenas ANSI (caracteres de un solo byte). Esta bandera se utiliza al abrir archivos (FileOpen())
FILE_UNICODE
64
Cadenas UNICODE (caracteres de dos bytes). Esta bandera se utiliza al abrir archivos (FileOpen())
FILE_SHARE_READ
128
Acceso de lectura compartido por varios programas. Esta bandera se utiliza al abrir un archivo (FileOpen()), pero no sustituye la necesidad de FILE_WRITE y/o FILE_READ al abrir un archivo.
FILE_SHARE_WRITE
256
Esta bandera se utiliza para compartir el acceso de escritura entre varios programas. Esta bandera se utiliza para abrir archivos (FileOpen()), pero no sustituye a FILE_WRITE y/o FILE_READ al abrir un archivo.
FILE_REWRITE
512
El archivo puede ser sobrescrito por FileCopy() y FileMove(). El archivo debe existir o ser escribible. De lo contrario, el archivo no se abrirá
FILE_COMMON
4096
Ubicación del archivo en la carpeta compartida de todos los terminales del cliente. Esta bandera se utiliza al abrir archivos (FileOpen()), al copiar archivos (FileCopy(), FileMove()) y al comprobar si los archivos existen (FileIsExist())
Y si los desarrolladores arreglan todos sus fallos, a mucha gente no le gustará. Mucho más de la mitad del código dejará de funcionar.