MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 67

 

MetaTrader 5 für Python 5.0.33 veröffentlicht:

pip install --upgrade metatrader5
 
Christian:

copy_rates_from liefert nicht genügend Daten für den Zeitrahmen M1.


Ist dies die richtige Vorgehensweise?

Sie haben eine Begrenzung der Anzahl der Balken in Diagrammen. Sie müssen diese Begrenzung im Terminal aufheben (Werkzeuge->Optionen->Max Balken im Diagramm).
In zukünftigen Versionen von Terminal werden wir einen Fehler (None) zurückgeben, wenn wir eine solche Anfrage versuchen.

 
Metaquotes :

MetaTrader 5 für Python 5.0.33 veröffentlicht:

Fantastisch! Alle Unit-Tests wurden bestanden. pymt5adapter wurde aktualisiert, um MetaTrader 5.0.33 zu verwenden.

Beide Pakete können mit dem folgenden Befehl aktualisiert werden.




pip install -U pymt5adapter 

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


Hinweis: Das Kalendermodul wurde dauerhaft aus dem pymt5adapter entfernt.

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) 
Die Initialisierung von stoplimit = 0,0 schlug einfach fehl, oder besser gesagt, sie schlug fehl, aber das stoplimit wurde inakzeptabel.
 
Pithon wird morgen mit meiner Enkelin auf Entdeckungsreise gehen.
 

Python 5.0.33

@Almaz
Gibt die Zahl aus dem Paket matplotlib nicht aus.
Von der Konsole oder der Python-IDE aus läuft die Abbildung.

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.

Zeigt die Abbildung des Matplotlib-Pakets nicht an.
Von der Konsole oder der Python-IDE aus startet die Abbildung.

Versuchen Sie dies

pip install -U pymt5adapter pandas mplfinance

Code

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:

Versuchen Sie dies

Code

Ich danke Ihnen. mplfinance interessante Bibliothek.
Aber ich brauche eine Nebenhandlung.

Kann diese Bibliothek eine solche Figur ausstellen?

 
Roman:

Python 5.0.33

@Almaz
Gibt die Abbildung des matplotlib-Pakets nicht aus.
Von der Konsole oder der Python-IDE aus läuft die Abbildung.

Ich nehme an, dass das Skript unter dem Terminal ausgeführt wird? Überprüft, es funktioniert.

1. Sehen Sie, welche Fehler auf der Registerkarte Experten (unten in der Toolbox) geschrieben werden

2. Überprüfen Sie in den MetaEditor-Einstellungen den korrekten Pfad zum richtigen Python mit matplotlib, nach der Änderung der Einstellungen in MetaEditor müssen Sie das Terminal neu starten, da das Terminal diese Einstellungen nur beim Start übernimmt.

MetaEditor Compiler-Optionen

3. es ist besser, in mt5.initialize() nicht den genauen Pfad zum Terminal anzugeben, wenn Sie Python-Skripte aus dem Terminal selbst starten, finden sie von selbst das richtige, d.h. das, mit dem sie gestartet wurden.

 
Almaz:

Ich nehme an, dass das Skript über das Terminal ausgeführt wird? Getestet, es funktioniert.

1. Sehen Sie, welche Fehler auf der Registerkarte Experten (unten in der Toolbox) geschrieben werden

2. Prüfen Sie in den MetaEditor-Einstellungen, ob der richtige Pfad zum richtigen Python mit matplotlib in den Einstellungen steht. Nach dem Ändern der Einstellungen in MetaEditor müssen Sie das Terminal neu starten, da das Terminal diese Einstellungen nur beim Start übernimmt.

3. es ist besser, in mt5.initialize() nicht den genauen Pfad zum Terminal anzugeben, wenn Sie Python-Skripte aus dem Terminal selbst starten, finden sie von selbst den richtigen, d.h. starten ihn.

Danke Diamond.
Es liegen keine Fehler vor. In der Registerkarte Experten wurde sie ausgegeben:

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

Die Pfade sind korrekt.
Ich habe den exakten Pfad in mt5.initialize() entfernt, das Terminal neu gestartet und die Figur wird nun ausgegeben.