MetaTrader 5 Python 사용자 그룹 - Metatrader에서 Python을 사용하는 방법 - 페이지 31

 

편집기에서 python 스크립트를 컴파일한다는 것은 편집기 내에서 실행을 위해 실행하는 것을 의미합니다.

오류 창 및 로그의 출력을 확인합니다. 로그에는 기본 출력이 표시되고 오류에는 stderr 출력이 표시됩니다.

 
Renat Fatkhullin :

편집기에서 python 스크립트를 컴파일한다는 것은 편집기 내에서 실행하는 것을 의미합니다.

오류 창 및 로그의 출력을 확인합니다. 로그에는 기본 출력이 표시되고 오류에는 stderr 출력이 표시됩니다.

알았습니다. "오류" 창에는 오류가 없으며,

오류 없음

"Journal" 창에서 스크립트는 아마도 내 작업을 기다리고 있을 것입니다.

스크립트가 내 행동을 기다리고 있습니다

내가 이해하는 한 피드백은 없습니다(아직은 아닐 수도 있음).


그런 다음 게시물 #1( https://www.mql5.com/en/forum/306688 )의 예제를 실행하려고 합니다. matplotlib 및 MetaTrader5 패키지를 설치했습니다.

첫 번째 게시물의 예제를 실행하려고합니다.

실수로

test.py started test.py 1       1
Traceback (most recent call last):      test.py 1       1
    MT5Initialize()     test.py 1       1
NameError: name 'MT5Initialize' is not defined  test.py 1       1
test.py finished in 389 ms              1       1

저널에서

 2020.01 . 27 10 : 08 : 12.899 Python   "E:\Programs\Python37\python.exe" "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\test.py"

아무 일도 일어나지 않습니다(터미널이 실행 중임).

 
Renat Fatkhullin :

편집기에서 python 스크립트를 컴파일한다는 것은 편집기 내에서 실행하는 것을 의미합니다.

오류 창 및 로그의 출력을 확인합니다. 로그에는 기본 출력이 표시되고 오류에는 stderr 출력이 표시됩니다.

따라서 .py 스크립트는 .ex5로 컴파일되지 않습니까?
그리고 네비게이터에서 실행을 위해 실행합니다.

 
Vladimir Karputov :

알았습니다. "오류" 창에는 오류가 없으며,


"Journal" 창에서 스크립트는 아마도 내 작업을 기다리고 있을 것입니다.

내가 이해하는 한 피드백은 없습니다(아직은 아닐 수도 있음).


그런 다음 게시물 #1( https://www.mql5.com/en/forum/306688 )의 예제를 실행하려고 합니다. matplotlib 및 MetaTrader5 패키지를 설치했습니다.

첫 번째 게시물의 예제를 실행하려고합니다.

실수로

저널에서

아무 일도 일어나지 않습니다(터미널이 실행 중임).

MetaTrader5 라이브러리가 설치되지 않은 경우 다음을 수행하십시오.

pip install --upgrade metatrader5

모든 것이 작동합니다:


 
Roman :

따라서 .py 스크립트는 .ex5로 컴파일되지 않습니까?
그리고 네비게이터에서 실행을 위해 실행합니다.

물론 컴파일되지는 않지만 네비게이터에 *.py 프로그램으로 표시되고 별도의 터미널 스레드에서 숨겨져 실행됩니다.

Python용 일반 라이브러리 MetaTrader 5를 통한 터미널과의 통신.

 
Renat Fatkhullin :

MetaTrader5 라이브러리가 설치되지 않은 경우 다음을 수행하십시오.

모든 것이 작동합니다:


도서관의 가치:


( matplotlib와 함께 즉시 전달됨)


추가됨: Python에서 실행되지 않음:


 
Renat Fatkhullin :

물론 컴파일되지는 않지만 네비게이터에 *.py 프로그램으로 표시되고 별도의 터미널 스레드에서 숨겨져 실행됩니다.

Python용 표준 MetaTrader 5 라이브러리를 통한 터미널과의 통신.

이제 이것은 Python 비주얼 랩톱과 같으며 코드만 전체적으로 실행됩니다.
나는 이미 편집을 위해 입술을 굴렸고 편집은 일반적으로 날아갈 것입니다.
사실 .py에서 .exe로의 표준 컴파일에서는 리버스 엔지니어링에 대한 보호가 매우 취약합니다. 아무 말도 할 수 없습니다.
.py가 .ex5로 컴파일된 경우 mql5는 잘 보호된 실행 가능한 .ex5로 컴파일한다는 점에서 mql5가 크게 향상됩니다.
파이썬에서 이것은 전 세계적인 문제입니다. 생각해 보십시오. 또한 파이썬을 .exe로 컴파일하는 것은 C 또는 C ++와 유사한 컴파일러를 사용합니다.
그리고 mql5 LLVM에서.

 

파이썬을 제거했습니다. 3.8.1 x64 제공.

이제 Python에서 실행할 때 다음 오류가 발생합니다.


Python 3.8 . 1 (tags/v3. 8.1 : 1 b293b6, Dec 18 2019 , 23 : 11 : 46 ) [MSC v. 1916 64 bit (AMD64)] on win32
Type "help" , "copyright" , "credits" or "license()" for more information.
>>> 
= RESTART: C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py
Traceback (most recent call last):
  File "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py" , line 2 , in <module>
     from MetaTrader5 import *
  File "E:\Programs\Python\Python38\lib\site-packages\MetaTrader5\__init__.py" , line 35 , in <module>
     from .C import *
ImportError: DLL load failed while importing C: Не найден указанный модуль.
>>> 
 
Vladimir Karputov :

도서관의 가치:


( matplotlib와 함께 즉시 전달됨)


추가됨: Python에서 실행되지 않음:


Python 3.8이 있고 3.7.6을 설치하는 것이 좋습니다. 어쨌든 많은 라이브러리가 3.8에 대해 아직 준비되지 않았기 때문입니다.

1) 명령줄에서 스크립트 확인

2) 파이썬의 경로가 PATH에 있는지 확인하십시오.

3) Python 사본이 하나만 있고 다른 버전과 충돌이 없는지 확인하십시오.

4) 편집기 설정에서 경로가 Python의 해당 단일 사본에 정확히 맞는지 확인하십시오.


Visual Studio 와 같은 다른 환경에서 간접적으로 설치된 Python의 동물원을 갖는 것이 가능합니다.

 
Vladimir Karputov :

그런 다음 게시물 #1( https://www.mql5.com/en/forum/306688 )의 예제를 실행하려고 합니다. matplotlib 및 MetaTrader5 패키지를 설치했습니다.

첫 번째 게시물의 예제를 실행하려고합니다.

실수로

저널에서

아무 일도 일어나지 않습니다(터미널이 실행 중임).

잠시 기다려야 합니다. 스크립트는 2019년 1월 28일부터 데이터를 요청합니다. 이 작업에는 시간이 걸립니다.

두 번째 가능한 이유는 제한된 값 " 창의 최대 막대 "가 터미널에 표시되기 때문입니다.

ticks1 = MT5CopyTicksFrom( "EURAUD" , datetime ( 2019 , 1 , 28 , 13 ), 10000 , MT5_COPY_TICKS_ALL)
ticks2 = MT5CopyTicksRange( "AUDUSD" , datetime ( 2019 , 1 , 27 , 13 ), datetime ( 2019 , 1 , 28 , 13 , 1 ), MT5_COPY_TICKS_ALL)

rates1 = MT5CopyRatesFrom( "EURUSD" , MT5_TIMEFRAME_M1, datetime ( 2019 , 1 , 28 , 13 ) , 1000 )
rates2 = MT5CopyRatesFromPos( "EURGBP" , MT5_TIMEFRAME_M1, 0 , 1000 )
rates3 = MT5CopyRatesRange( "EURCAD" , MT5_TIMEFRAME_M1, datetime ( 2019 , 1 , 27 , 13 ), datetime ( 2019 , 1 , 28 , 13 ))

도움말은 https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesfrom_py 를 명시적으로 말합니다.

MetaTrader 5 터미널은 차트에서 사용자가 사용할 수 있는 이력의 한계 내에서만 막대를 렌더링합니다. 사용자가 사용할 수 있는 막대의 수는 " 창의 최대 막대 " 매개변수에 의해 설정에서 설정됩니다.


실제로 막대 수의 문제인 경우 제한을 변경하거나 스크립트를 수정하여 예를 들어 2020년과 같이 다음 몇 분이 소요되도록 할 수 있습니다. 작동해야 합니다.

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...