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

 

Lanzamiento de MetaTrader 5 para Python 5.0.33:

pip install --upgrade metatrader5
 
Christian:

copy_rates_from no proporciona suficientes datos sobre el marco temporal M1.


¿Es esta la forma correcta de actuar?

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.

 
Metaquotes :

Lanzamiento de MetaTrader 5 para Python 5.0.33:

¡Impresionante! Todas las pruebas unitarias han sido superadas. pymt5adapter ha sido actualizado para utilizar MetaTrader 5.0.33.

Ambos paquetes pueden actualizarse con el siguiente comando.




pip install -U pymt5adapter 

https://pypi.org/project/pymt5adapter/


Nota: El módulo de calendario ha sido eliminado definitivamente de pymt5adapter

pymt5adapter
pymt5adapter
  • 2020.05.26
  • pypi.org
A drop in replacement wrapper for the MetaTrader5 package
 
1.BUY order send (): by EURUSD 0.01 lots at 1.0949 

2. order_send failed, retcode = 10016 
   retcode = 10016 
   deal = 0 
   order = 0 
   volume = 0.0 
   price = 0.0 
   bid = 0.0 
   ask = 0.0 
   comment = Invalid stops 
   request_id = 0 
   retcode_external = 0 

   request = TradeRequest (action = 1, magic = 234000, order = 0, symbol = 'EURUSD', volume = 0.01, price = 1.0949, stoplimit = 0.0, sl = 1.0939, tp = 1.0979, 
   deviation = 0, type = 0, type_filling = 0, type_time = 0, expiration = 0, commen 

t = 'EURUSD Buy.', Position = 0, position_by = 0) 
La inicialización de stoplimit = 0,0 simplemente falló, o más bien lo hizo, pero el stoplimit se volvió inaceptable.
 
Pithon explorará mañana con mi nieta.
 

Python 5.0.33

@Almaz
No sale la cifra del paquete matplotlib.
Desde la consola o el IDE de python, la figura se ejecuta.

2020.05.28 22:47:51.654 mplib (EURUSD,M5)       Figure(640 x480)
# -*- coding: utf-8 -*-

import MetaTrader5 as mt5
import matplotlib.pyplot as plt

Win = 11

if not mt5.initialize("C:\Program Files\MetaTrader 5\\terminal64.exe"):
    print("mt5.initialize() failed, error code = ", mt5.last_error())
    quit()   
    
rates = mt5.copy_rates_from_pos("EURUSD", mt5.TIMEFRAME_M5, 1, Win)   
close = rates['close']       
    
mt5.shutdown()    


fig = plt.figure()

ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 1, 2)
ax3 = fig.add_subplot(3, 1, 3)

ax1.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)
ax2.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)
ax3.plot(close, color=(0.60, 0.60, 0.60), linestyle='dashed', linewidth = 1)

plt.show()
 
Roman:

Python 5.0.33.

No muestra la figura del paquete matplotlib.
Desde la consola o el IDE de python, se inicia la figura.

Prueba esto

pip install -U pymt5adapter pandas mplfinance

código

import mplfinance as mpf
import pandas as pd
import pymt5adapter as mta


def main():
    rates = mta.copy_rates_from_pos("EURUSD", mta.TIMEFRAME.H1, start_pos=0, count=50)
    df = pd.DataFrame(rates).rename(columns={'tick_volume': 'volume'})
    df.columns = (s.title() for s in df.columns)
    df['Time'] = pd.to_datetime(df['Time'], unit='s')
    df = df.set_index('Time')
    print(df)
    mpf.plot(df, type='candle', mav=(7, 15), volume=True)


if __name__ == '__main__':
    with mta.connected():
        main()


 
nicholi shen:

Prueba esto

código

Gracias. mplfinance interesante biblioteca.
Pero necesito una subtrama.

¿Puede esta biblioteca exhibir tal cifra?

 
Roman:

Python 5.0.33

@Almaz
No da salida a la figura del paquete matplotlib.
Desde la consola o el IDE de python, la figura se ejecuta.

¿Supongo que esto es ejecutar el script desde la Terminal? Comprobado, funciona.

1. Vea qué errores se escriben en la pestaña de Expertos (en la parte inferior de la caja de herramientas)

2. Compruebe en la configuración del MetaEditor que la ruta correcta del Python correcto con matplotlib está en la configuración, después de cambiar la configuración en el MetaEditor debe reiniciar el terminal, porque el terminal recoge estos ajustes sólo en el inicio.

Opciones del compilador de MetaEditor

3. es mejor no especificar la ruta exacta a la terminal en mt5.initialize() si ejecutas los scripts de python desde la propia Terminal, ellos encontrarán la correcta por sí mismos, es decir, la que los inició.

 
Almaz:

¿Supongo que está ejecutando el script desde la Terminal? Lo he probado y funciona.

1. Vea qué errores se escriben en la pestaña de Expertos (en la parte inferior de la caja de herramientas)

2. Compruebe en la configuración del MetaEditor la ruta correcta al Python correcto con matplotlib, después de cambiar la configuración en el MetaEditor debe reiniciar el terminal, porque el terminal recoge estos ajustes sólo en el inicio.

3. es mejor no especificar la ruta exacta a la terminal en mt5.initialize() si ejecutas los scripts de python desde la propia terminal, ellos encontrarán la correcta por sí mismos, es decir, la iniciarán.

Gracias Diamond.
No hay errores. En la pestaña de Expertos se ha emitido:

2020.05.28 22:47:51.654 mplib (EURUSD,M5)       Figure(640 x480)

Los caminos son correctos.
Eliminé la ruta exacta en mt5.initialize(), reinicié el terminal y la figura empezó a salir.