Asesores Expertos: Programación en MQL5 para tráders: códigos fuente del libro: Parte 7 - página 4
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
Hola @Stanislav Korotky, soy nuevo en el MQL5. Encontré que usted publica un archivo wss.zip para el uso de websocket. ¿Cómo usarlo, ¿hay una demo o algo que pueda aprender. ¡Gracias sinceramente!
Puedes encontrar varios ejemplos en el libro de algotrading, en la sección que describe (paso a paso) la implementación de un proyecto de servicio web para copiar operaciones y señales.
Puede encontrar varios ejemplos en el libro de algotrading, en la sección que describe (paso a paso) la implementación de un proyecto de servicio web para copiar operaciones y señales.
Hola @StanislavKorotky
Estoy tratando de implementar un cierre de posición parcial con una orden pendiente en la dirección opuesta.
eg:
MqlTradeRequestSync reqs(símbolo.transacción);
reqs.closeby(target_position_ticket_id, transaction.order);
Creo que la línea anterior debe ser capaz de hacer el trabajo, pero mi reto es cómo conseguir el `target_position_ticket_id`dentro de la OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD ( transaction.type) controlador de eventos o de alguna manera asociar la orden pendiente con el target_position_ticket_id se espera que se cierre cada vez que la orden pendiente se llena.
He intentado añadir el `target_position_ticket_id`al comentario de la orden pendiente cuando estoy creando la orden pendiente pero el problema es que dentro del evento OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD (transaction.type) no puedo acceder al comentario ya que los atributosMqlTradeTransaction no tienen 'comment'
Por favor agradeceré su ayuda.
El método closeby(ticket1, ticket2) del libro supone que utilizas una cuenta de cobertura y ya tienes 2 posiciones abiertas (compra y venta) con los tickets ticket1 y ticket2. Supongo que es imposible (en general) realizar la acción TRADE_ACTION_CLOSE_BY contra una orden pendiente. Pero si su cuenta está en modo de compensación, creo que usted puede simplemente colocar una orden pendiente en la dirección opuesta y cuando se activa, se modificará la posición existente en consecuencia - que es cerrarla, o hace cierre parcial, o incluso invertir (si el nuevo volumen es mayor que el anterior).
Pequeños parches en websockets (a la carta y en masa).
Una de estas propiedades son las "Comisiones" del Symbol que obviamente difieren de los brokers como se puede ver en la imagen adjunta. Sin embargo, no he podido acceder a esta propiedad de forma programática. Por favor, ¿pueden ayudarme con una pista de cómo obtener la comisión del símbolo?
Por otro lado, este mensaje aparece a menudo en el log cada vez que trabajo con PositionFilter, especialmente cuando el EA se carga por primera vez o se recompila: "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Sigue funcionando bien y no para nada
@StanislavKorotky Gracias por la actualización continua, por favor hay algo que he estado luchando para averiguar. En el "Market Watch" de MT5 puedo hacer click derecho en cualquier "Symbol" y ver todas sus propiedades asociadas tal como lo haría programáticamente haciendo click en "Specification".
Una de estas propiedades son las "Comisiones" del Symbol que obviamente difiere de los brokers como se puede ver en la imagen adjunta. Sin embargo, no he podido acceder a esta propiedad de forma programática. Por favor, ¿podrían ayudarme con alguna pista sobre cómo obtener la comisión del símbolo?
Lamentablemente, no todas las propiedades de las entidades del terminal son accesibles vía MQL5.
Por otro lado este mensaje aparece a menudo en el log cuando estoy trabajando con PositionFilter especialmente cuando el EA se carga por primera vez o se recompila "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Sigue funcionando bien y no detiene nada
Esto es sólo una advertencia causada por el hecho de que la correspondiente enumeración incorporada de MQL5 tiene un hueco en las constantes que normalmente se asignan consecutivamente. Este hueco se produce porque MQL5 cambia constantemente, y algunas constantes pueden quedar obsoletas y ser eliminadas. Puedes editar el código fuente para evitar estas advertencias.
Adjunto una versión actualizada de la librería JSON - toyjson3.mqh - un reemplazo para toyjson2.mqh y toyjson.mqh del libro.
Esta versión está optimizada para procesar archivos json enormes. En aras de la simplicidad, las versiones anteriores utilizan la función StringSplit para la tokenización del texto durante el análisis sintáctico, y esta llamada puede solicitar internamente gigabytes de memoria libre debido a la fragmentación y anticipación del flujo de datos posterior. Se libera después del parseo, pero el gestor de memoria MQL5 puede mantenerla reservada durante un tiempo, ya que libera la basura de forma pospuesta.
Ahora se necesita veces menos memoria durante el análisis.
Adjunto algunas correcciones de errores y mejoras en las clases websockets.
Esto es exactamente lo que necesitaba.
Muchas gracias.
Te siento como este tipo para mí.
https://clip.cafe/top-gun-maverick-2022/good-afternoon-ladies-gentlemen-s2/