Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 68

 
Roman:

Gracias Diamond.
No hay errores.
Los caminos se escriben correctamente.
He borrado la ruta exacta en mt5.initialize (), he reiniciado el terminal y la figura ha comenzado a mostrarse.

Tienes que usar una cadena cruda o escapar todas las barras invertidas.

option1 = r'C:\Program Files\MetaTrader 5\terminal64.exe'
option2 = 'C:\\Program Files\\MetaTrader 5\\terminal64.exe'
 
nicholi shen:

Tienes que usar una cadena cruda o escapar todas las barras invertidas.

También pensé en el blindaje cuando Almaz escribió para el camino exacto. Sí, también ha funcionado. Gracias

 
Almaz :

Tiene un límite en el número de barras en los gráficos, necesita eliminar este límite en el Terminal (Herramientas->Opciones->Barras máximas en el gráfico).
En futuras versiones de Terminal, devolveremos un error (None) cuando se intente realizar dicha solicitud.

Gracias por el consejo.

MT5 ahora entrega todos los datos correctamente.

 

Python 3.8

Construir 2470

Paquete 5.0.33


Fallo de la función Orders_get

Devuelve no "NO" si no hay pedidos.

import MetaTrader5 as mt5

if not mt5.initialize():
    print( "initialize() failed, error code =" , mt5.last_error())
    quit()

orders = mt5.orders_get(symbol= "GBPUSD" )
if orders is None:
    print( "No orders on GBPUSD, error code={}" .format(mt5.last_error()))
elif len(orders) > 0 :
    print( "Total orders on GBPUSD:" , len(orders))
     for order in orders:
        print(order)

mt5.shutdown()


 
Christian:

Python 3.8

Construir 2470

Paquete 5.0.33


Fallo de la función Orders_get

Devuelve no "NO" si no hay pedidos.


Todo es correcto, se devuelve un conjunto vacío - señal de que no hay pedidos, esto no es un error, la solicitud funcionó con éxito, se devuelve Ninguno en caso de un error explícito. Pero el hecho de que también devuelva un conjunto vacío en los símbolos que no están en el servidor del broker, es un error, corregido, estará disponible con la próxima actualización del terminal.
 
Almaz :
Esto es correcto, se devuelve un conjunto vacío - señal de que no hay pedidos, no es un error, la solicitud fue procesada con éxito, se devuelve Ninguno en caso de error explícito. Pero también devuelve un conjunto vacío en los símbolos que no están en el servidor del broker, es un error, arreglado, estará disponible con la próxima actualización del terminal.

Bien, ¿realmente entiendo esto?


Sólo hay dos tipos de respuestas:

1. NO

2. Una tupla con una longitud superior a 0


En la siguiente asamblea> 2470

 
Christian:

Bien, ¿realmente entiendo esto?


Sólo hay dos tipos de respuestas:

1. NO

2. Una tupla con una longitud superior a 0


En la siguiente construcción> 2470

No.

1. Ninguno si se produce algún error

2. Tupla con longitud >=0

 
Rashid Umarov:

No.

1. Ninguno si se produce algún error

2. Tupla con longitud >=0

Bien, ahora lo entiendo.

Gracias

 
Дмитрий Прокопьев:

Tenga en cuenta que mt5.terminal_info() muestra:

path='C:\Works\\\\\MT5 - terminals\MetaTrader 5', data_path='C:\Works\\\\MT5 - terminals\MetaTrader 5',commondata_path='C:\Users\rip\AppData\Roaming\MetaQuotes\Terminal\Common'

son idénticos. ¿Se supone que debe ser así?

El código es el siguiente:

 
Almaz:

@Almaz
La primera vez que se ejecutan las funciones copy_xxx_xxx, cuando el terminal no se ha iniciado durante algún tiempo, las funciones
devuelven inmediatamente el resultado disponible con el historial que falta, sin esperar a la sincronización del intercambio de historiales.
Significa que la primera llamada a la función devuelve el resultado con la historia que falta.
Sólo las llamadas posteriores devolverán el resultado correcto, cuando se intercambie el historial.
¿Es posible solucionar este problema? Y la función copy_xxx_xxx espera a que se intercambie la historia en la primera llamada.