MetaTrader 5 Python User Group - the summary - page 20

 

@Sergey Golubev can you please make the admin team aware that there is a bug-inducing typo in the docs? 


Here is the page with the error.

https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py


The typo is the timeframe for 1 month. 

TIMEFRAME_MON1
Documentation on MQL5: Integration / MetaTrader for Python / copy_ticks_from
Documentation on MQL5: Integration / MetaTrader for Python / copy_ticks_from
  • www.mql5.com
# create 'datetime' object in UTC time zone to avoid the implementation of a local time zone offset                  time      bid      ask  last  volume       time_msc  flags  volume_real 0 2020-01-10 00:00:00  1.11051  1.11069   0.0       0  1578614400987    134          0.0...
 
nicholish en:

@Sergey Golubev can you please make the admin team aware that there is a bug-inducing typo in the docs? 


Here is the page with the error.

https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py


The typo is the timeframe for 1 month. 

"to pocket" feature does not work for me so I am having the difficulties to copy post (copy with translation with the link to the original post)
from here to the Russian forum -



You can try to post on Russian Python thread here https://www.mql5.com/ru/forum/306688/page72

If not so let me know, and I will post on that thread using html feature (but it will take some time):


 
nicholish en:

@ Сергей Голубев, не могли бы вы сообщить команде администратора, что в документах есть опечатка, приводящая к ошибкам ?


Вот страница с ошибкой.

https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py


Опечатка является сроком на 1 месяц.

TIMEFRAME_MON1

Yes, I reported to the key thread.
Post #717

 
nicholish en:

@Sergey Golubev can you please make the admin team aware that there is a bug-inducing typo in the docs? 


Here is the page with the error.

https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py


The typo is the timeframe for 1 month. 

As I see - it was corrected here https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py
Documentation on MQL5: Integration / MetaTrader for Python / copy_rates_from
Documentation on MQL5: Integration / MetaTrader for Python / copy_rates_from
  • www.mql5.com
# create 'datetime' object in UTC time zone to avoid the implementation of a local time zone offset                                              time     open     high      low    close  tick_volume  spread  real_volume 0 2020-01-08 12:00:00  1.11382  1.11385  1.11110  1.11199         9354       1            0...
 
nicholish en:

You can't do much because the terminal blocks when it's downloading rate data from the trade server. Even if you use async, threading, multiprocessing, you still run into the issue of a blocked terminal on subsequent calls. You could spawn multiple processes connected to multiple terminals and use one worker to handle priority fast tasks and another to handle a queue of long running blocking requests. 

Hi, 

Could you  please elaborator on how to do this "spawn multiple processes" ? I've been trying to achieve this by using multiprocessing and timeout in process.join(timeout=10), but that doesn't seem to work, the terminal gets stuck on updating a ticker and dosen't move on to the next. my code locks something like this:


def rates(ticker):
    utc_to = dt.datetime(year=2020, month=7, day=30)
    utc_from = utc_to - dt.timedelta(days=30)
    with mt5.connected():
        rates = mt5.copy_rates_range(ticker, mt5.TIMEFRAME_D1, utc_from, utc_to)
        print(pd.DataFrame(rates))

def main():
    tickers = ['tick1', 'tick2', 'ticker3', 'ticker4', ...]
    for ticker in tickers:
        p2 = Process(target=rates, args=(ticker,))
        p2.start()
        p2.join(timeout=10)
        p2.terminate()


if __name__ == "__main__":
    main()

 

Hi, Can anyone advise how to add account info after the datetime expiry in mql4 file


datetime expiry=D'2022.7.21 00:00';

//====================================================================================================================================================//

//OnInit function

//====================================================================================================================================================//

int OnInit()

  {

//------------------------------------------------------

//Started information

  


   

   ExpertName=WindowExpertName();

   EASymbol=Symbol();

   if(StringLen(EASymbol)>6) SymbolExtension=StringSubstr(EASymbol,6,0);

//------------------------------------------------------

 

Good day Coders

Please assist, I am having challenge when downloading TIMEFRAME_M1 in python. I can only download prices for TIMEFRAME_M5 going upwards.This started when I recently updated MT5. Please have a look at my code below.

import numpy as np
import pandas as pd

from datetime import datetime
import MetaTrader5 as mt5
import pytz
# display data on the MetaTrader 5 package
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)

# establish connection to MetaTrader 5 terminal
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    
# set time zone to UTC
timezone = pytz.timezone("Etc/UTC")

#create 'datetime' objects in UTC time zone to avoid the implementation of a local time zone offset
utc_from = datetime(2020, 1, 1, tzinfo=timezone)
utc_to = datetime(2020, 1, 11, hour = 13, tzinfo=timezone)

ratesUJ = mt5.copy_rates_range("USDJPY",  mt5.TIMEFRAME_M1, utc_from, utc_to)
#ratesUJ = mt5.copy_rates_range("USDJPY",  mt5.TIMEFRAME_M5, utc_from, utc_to)
# shut down connection to the MetaTrader 5 terminal
mt5.shutdown()

# create DataFrame out of the obtained data
ratesUJ =  pd.DataFrame(ratesUJ)
print(ratesUJ.head())
 
briangwaze:

Good day Coders

Please assist, I am having challenge when downloading TIMEFRAME_M1 in python. I can only download prices for TIMEFRAME_M5 going upwards.This started when I recently updated MT5. Please have a look at my code below.

Set "Max bars in chart" to Unlimited in Terminal:

max_bars

 
Almaz:

Set "Max bars in chart" to Unlimited in Terminal:


Thanks Almaz, it worked.
 

I am an experienced database developer but a Python rookie.
System W10 on 64 bit.

I get some errors with the installation of the MT5 package, depite that I think I have done everything properly:

* downloaded Python 3.9
* checked the PATH option

* checked that PIP is up to date > "requirements up to date"
* upgraded SETUP and WHEELS
* added ...\Python39\scripts to PATH
* downloaded MetaTrader5-5.0.33-cp39-cp39-win_amd64.whl (122.0 kB)
*  pip install MetaTrader5

Anyone? Your help is greatly appreciated!


Collecting MetaTrader5
  Downloading MetaTrader5-5.0.33-cp39-cp39-win_amd64.whl (121 kB)
     |████████████████████████████████| 121 kB 187 kB/s
Collecting numpy>=1.7
  Downloading numpy-1.19.2.zip (7.3 MB)
     |████████████████████████████████| 7.3 MB 47 kB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: 'c:\program files\python39\python.exe' 'c:\program files\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\Maurits\AppData\Local\Temp\tmpcvzk002c'
         cwd: C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy
    Complete output (200 lines):
    Running from numpy source directory.
    setup.py:470: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
      run_build = parse_setuppy_commands()
    Processing numpy/random\_bounded_integers.pxd.in
    Processing numpy/random\bit_generator.pyx
    Processing numpy/random\mtrand.pyx
    Processing numpy/random\_bounded_integers.pyx.in
    Processing numpy/random\_common.pyx
    Processing numpy/random\_generator.pyx
    Processing numpy/random\_mt19937.pyx
    Processing numpy/random\_pcg64.pyx
    Processing numpy/random\_philox.pyx
    Processing numpy/random\_sfc64.pyx
    Cythonizing sources
    blas_opt_info:
    blas_mkl_info:
    No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
    customize MSVCCompiler
      libraries mkl_rt not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    blis_info:
      libraries blis not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    openblas_info:
      libraries openblas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
    get_default_fcompiler: matching types: '['gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95', 'intelvem', 'intelem', 'flang']'
    customize GnuFCompiler
    Could not locate executable g77
    Could not locate executable f77
    customize IntelVisualFCompiler
    Could not locate executable ifort
    Could not locate executable ifl
    customize AbsoftFCompiler
    Could not locate executable f90
    customize CompaqVisualFCompiler
    Could not locate executable DF
    customize IntelItaniumVisualFCompiler
    Could not locate executable efl
    customize Gnu95FCompiler
    Could not locate executable gfortran
    Could not locate executable f95
    customize G95FCompiler
    Could not locate executable g95
    customize IntelEM64VisualFCompiler
    customize IntelEM64TFCompiler
    Could not locate executable efort
    Could not locate executable efc
    customize PGroupFlangCompiler
    Could not locate executable flang
    don't know how to compile Fortran code on platform 'nt'
      NOT AVAILABLE

    atlas_3_10_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries tatlas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    atlas_3_10_blas_info:
      libraries satlas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    atlas_blas_info:
      libraries f77blas,cblas,atlas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    accelerate_info:
      NOT AVAILABLE

    C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy\numpy\distutils\system_info.py:1914: UserWarning:
        Optimized (vendor) Blas libraries are not found.
        Falls back to netlib Blas library which has worse performance.
        A better performance should be easily gained by switching
        Blas library.
      if self._calc_info(blas):
    blas_info:
      libraries blas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy\numpy\distutils\system_info.py:1914: UserWarning:
        Blas (http://www.netlib.org/blas/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [blas]) or by setting
        the BLAS environment variable.
      if self._calc_info(blas):
    blas_src_info:
      NOT AVAILABLE

    C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy\numpy\distutils\system_info.py:1914: UserWarning:
        Blas (http://www.netlib.org/blas/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [blas_src]) or by setting
        the BLAS_SRC environment variable.
      if self._calc_info(blas):
      NOT AVAILABLE

    non-existing path in 'numpy\\distutils': 'site.cfg'
    lapack_opt_info:
    lapack_mkl_info:
      libraries mkl_rt not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    openblas_lapack_info:
      libraries openblas not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    openblas_clapack_info:
      libraries openblas,lapack not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    flame_info:
      libraries flame not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
      libraries lapack_atlas not found in c:\program files\python39\lib
      libraries tatlas,tatlas not found in c:\program files\python39\lib
      libraries lapack_atlas not found in C:\
      libraries tatlas,tatlas not found in C:\
      libraries lapack_atlas not found in c:\program files\python39\libs
      libraries tatlas,tatlas not found in c:\program files\python39\libs
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
      NOT AVAILABLE

    atlas_3_10_info:
      libraries lapack_atlas not found in c:\program files\python39\lib
      libraries satlas,satlas not found in c:\program files\python39\lib
      libraries lapack_atlas not found in C:\
      libraries satlas,satlas not found in C:\
      libraries lapack_atlas not found in c:\program files\python39\libs
      libraries satlas,satlas not found in c:\program files\python39\libs
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
      NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
      libraries lapack_atlas not found in c:\program files\python39\lib
      libraries ptf77blas,ptcblas,atlas not found in c:\program files\python39\lib
      libraries lapack_atlas not found in C:\
      libraries ptf77blas,ptcblas,atlas not found in C:\
      libraries lapack_atlas not found in c:\program files\python39\libs
      libraries ptf77blas,ptcblas,atlas not found in c:\program files\python39\libs
    <class 'numpy.distutils.system_info.atlas_threads_info'>
      NOT AVAILABLE

    atlas_info:
      libraries lapack_atlas not found in c:\program files\python39\lib
      libraries f77blas,cblas,atlas not found in c:\program files\python39\lib
      libraries lapack_atlas not found in C:\
      libraries f77blas,cblas,atlas not found in C:\
      libraries lapack_atlas not found in c:\program files\python39\libs
      libraries f77blas,cblas,atlas not found in c:\program files\python39\libs
    <class 'numpy.distutils.system_info.atlas_info'>
      NOT AVAILABLE

    lapack_info:
      libraries lapack not found in ['c:\\program files\\python39\\lib', 'C:\\', 'c:\\program files\\python39\\libs']
      NOT AVAILABLE

    C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy\numpy\distutils\system_info.py:1748: UserWarning:
        Lapack (http://www.netlib.org/lapack/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [lapack]) or by setting
        the LAPACK environment variable.
      return getattr(self, '_calc_info_{}'.format(name))()
    lapack_src_info:
      NOT AVAILABLE

    C:\Users\Maurits\AppData\Local\Temp\pip-install-ja0mght_\numpy\numpy\distutils\system_info.py:1748: UserWarning:
        Lapack (http://www.netlib.org/lapack/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [lapack_src]) or by setting
        the LAPACK_SRC environment variable.
      return getattr(self, '_calc_info_{}'.format(name))()
      NOT AVAILABLE

    numpy_linalg_lapack_lite:
      FOUND:
        language = c
        define_macros = [('HAVE_BLAS_ILP64', None), ('BLAS_SYMBOL_SUFFIX', '64_')]

    c:\program files\python39\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'define_macros'
      warnings.warn(msg)
    running dist_info
    running build_src
    build_src
    building py_modules sources
    creating build
    creating build\src.win-amd64-3.9
    creating build\src.win-amd64-3.9\numpy
    creating build\src.win-amd64-3.9\numpy\distutils
    building library "npymath" sources
    error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\program files\python39\python.exe' 'c:\program files\python39\lib\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\Maurits\AppData\Local\Temp\tmpcvzk002c' Check the logs for full command output.

BLAS (Basic Linear Algebra Subprograms)
  • www.netlib.org
The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. The Level 1 BLAS perform scalar, vector and vector-vector operations, the Level 2 BLAS perform matrix-vector operations, and the Level 3 BLAS perform matrix-matrix operations. Because the BLAS are...
Reason: