MetaTrader 5 Python User Group - Come usare Python in Metatrader - pagina 67

 

MetaTrader 5 per Python 5.0.33 rilasciato:

pip install --upgrade metatrader5
 
Christian:

copy_rates_from non fornisce abbastanza dati sul timeframe M1.


È la giusta linea d'azione?

Hai un limite sul numero di barre nei grafici, devi rimuovere questo limite nel Terminale (Strumenti->Opzioni->Max barre nel grafico).
Nelle future build di Terminal restituiremo errore (None) quando si tenterà una tale richiesta.

 
Metaquotes :

MetaTrader 5 per Python 5.0.33 rilasciato:

Fantastico! Tutti i test dell'unità sono passati. pymt5adapter è stato aggiornato per utilizzare MetaTrader 5.0.33.

Entrambi i pacchetti possono essere aggiornati con il seguente comando.




pip install -U pymt5adapter 

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


Nota: il modulo calendario è stato rimosso definitivamente da 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) 
L'inizializzazione di stoplimit = 0,0 è semplicemente fallita, o meglio l'ha fatto, ma lo stoplimit è diventato inaccettabile.
 
Pithon sarà in esplorazione domani con mia nipote.
 

Python 5.0.33

@Almaz
Non emette la figura del pacchetto matplotlib.
Da console o dall'IDE python, la figura viene eseguita.

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.

Non visualizza la figura del pacchetto matplotlib.
Dalla console o dall'IDE python, parte la figura.

Prova questo

pip install -U pymt5adapter pandas mplfinance

codice

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:

Prova questo

codice

Grazie. mplfinance biblioteca interessante.
Ma ho bisogno di una sottotrama.

Questa biblioteca può mostrare una tale figura?

 
Roman:

Python 5.0.33

@Almaz
Non emette la figura del pacchetto matplotlib.
Da console o dall'IDE python, la figura viene eseguita.

Suppongo che questo sia l'esecuzione dello script da sotto il Terminale? Controllato, funziona.

1. Vedere quali errori sono scritti nella scheda Esperti (in fondo al Toolbox)

2. Controlla nelle impostazioni di MetaEditor che il percorso corretto di Python con matplotlib sia nelle impostazioni, dopo aver cambiato le impostazioni in MetaEditor devi riavviare il terminale, perché il terminale prende queste impostazioni solo all'avvio.

Opzioni del compilatore MetaEditor

3. è meglio non specificare il percorso esatto del terminale in mt5.initialize() se si eseguono gli script python dal terminale stesso, essi troveranno quello corretto da soli, cioè quello che li ha avviati.

 
Almaz:

Immagino che stia eseguendo lo script dal terminale? Testato, funziona.

1. Vedere quali errori sono scritti nella scheda Esperti (in fondo al Toolbox)

2. Controlla nelle impostazioni di MetaEditor che il percorso corretto di Python con matplotlib sia nelle impostazioni, dopo aver cambiato le impostazioni in MetaEditor devi riavviare il terminale, perché il terminale prende queste impostazioni solo all'avvio.

3. è meglio non specificare il percorso esatto del terminale in mt5.initialize() se si eseguono gli script python dal terminale stesso, essi troveranno quello corretto da soli, cioè lo avvieranno.

Grazie Diamond.
Non ci sono errori. Nella scheda Esperti è stato emesso:

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

I percorsi sono corretti.
Rimosso il percorso esatto in mt5.initialize(), riavviato il terminale e la figura ha iniziato ad essere emessa.

Motivazione: