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

 
Maxim Dmitrievsky :

Renat, ONNX 지원에 대한 업데이트가 있습니까?

아니요.

수요와 준비된 청중은 없지만.

 

작년에 많은 변경이 있었고 이전 스크립트가 작동을 멈췄습니다.

터미널 MT5 빌드 2361, Windows 7에 32비트가 있습니다. 자체적으로 작동하지만 python 스크립트 연결이 작동을 멈췄습니다(연초에는 작동했지만).

분명히 터미널 업데이트 로 인해 다른 것은 변경되지 않았습니다. 테스트를 위해 간단한 스크립트를 실행 중입니다.

import MetaTrader5 as mt5
from time import sleep

mt5.initialize()
print('start')
print(mt5.terminal_info())
sleep(10) 

mt5.shutdown()
print('end')

문제는 모든 것이 다시 작동하려면 어떤 버전의 Python 모듈 MetaTrader5를 설치해야 합니까? (또는 터미널 업데이트를 롤백하는 방법은 무엇입니까?)

다른 버전의 모듈을 설치했습니다. 모두 오류를 생성합니다. 최신 것은 -10003, 'IPC 초기화 실패, MetaTrader 5 x64를 찾을 수 없음',

일부는 초기화를 거쳐 터미널을 시작하지만 무언가를 요청할 때 RuntimeError: IPC recv failed in 'py_test.py'

가장 오래된 5.0.10에는 다른 명령이 있지만 작동하지 않습니다.

터미널이 더 이상 최신 버전으로 업데이트되지 않고 Python 모듈의 일종의 작동 버전이 있었지만 지금은 찾을 수 없습니다.

64비트 버전의 터미널은 OS를 업데이트하고 모든 것을 업데이트해야 하며, 64비트 OS는 몇 배나 많은 메모리와 디스크 공간을 잡아먹는 나쁜 선택입니다. 일반적으로 자동 업데이트 정책은 좋지 않습니다. 작동 - 만지지 마십시오.

일반적으로 이전 버전과의 호환성을 유지하지 않고 업데이트가 강제되기 때문에 어떤 버전과 호환되는지 문서에 플레이트가 필요합니다.

Автоматическое обновление - Для продвинутых пользователей - Справка по MetaTrader 5
Автоматическое обновление - Для продвинутых пользователей - Справка по MetaTrader 5
  • www.metatrader5.com
В платформу встроена система автоматического обновления. Она позволяет своевременно получать и устанавливать новые версии программы. Эту систему отключить нельзя. Порядок обновления При подключении к торговому серверу происходит проверка наличия обновлений платформы. Если найдено обновление какого-либо из компонентов торговой платформы...
 
Lyuk :


32비트 운영 체제에 대한 지원은 여러 빌드 전에 비활성화되었습니다. 그 이후로 터미널이 많이 바뀌었습니다. 따라서 문제에 대한 가능한 해결책: 64비트 Windows 10을 실행해야 합니다.

 

그러나 터미널과 모듈의 호환 빌드가 있었고 새로운 기능 없이 설치만 하면 됩니다.

그리고 Windows 10 64비트의 의무는 이미 터미널과 같은 프로그램에 너무 많습니다. 너무 무겁고 질기며 오랜 작업이 필요한 작업을 실행하기에는 신뢰할 수 없습니다. 자동 업데이트에는 여전히 문제가 있습니다. MT가 이 시스템에 묶여 있는 것이 유감입니다.

 
Vladimir Karputov :

64비트 Windows 10을 실행 중이어야 합니다.

Windows 7 x64에 무슨 문제가 있습니까? 다른 소식을 놓쳤나요???

 
Aleksey Vyazmikin :

Windows 7 x64에 무슨 문제가 있습니까? 다른 소식을 놓쳤나요???

10보다 7이 낫다고 봅니다. 모바일 시스템에 중점을 두지 않습니다.

 
Valeriy Yastremskiy :

10보다 7이 낫다고 봅니다. 모바일 시스템에 중점을 두지 않습니다.

동의합니다. 거의 1년 동안 10k에서 일했고 집에 돌아왔을 때 7로 만족했습니다!

[삭제]  
Renat Fatkhullin :

아니요.

수요와 준비된 청중은 없지만.

지금까지 4명이 기계 학습 주제에 대한 요구를 표명했습니다. :) 그러한 기회와 주제에 대한 몇 개의 기사가 있다면 파이썬 전문가가 모델을 이전하기 시작할 것 같습니다. 특히 영어들.
 
2020.11 . 09 09 : 43 : 31.509 Terminal        MetaTrader 5 x64 build 2670 started for MetaQuotes Software Corp.
2020.11 . 09 09 : 43 : 31.510 Terminal        Windows 10 build 19042 , Intel Core i7- 9750 H  @ 2.60 GHz, 23 / 31 Gb memory, 1665 / 1861 Gb disk, IE 11 , UAC, GMT+ 2
2020.11 . 09 09 : 43 : 31.510 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075


MetaEditor와 jupyter 노트북에서 스크립트로 실행합니다.

Python version :  sys.version_info(major= 3 , minor= 7 , micro= 6 , releaselevel=' final ', serial= 0 )
Scikit-Learn version :   0.23 . 1


DataFrame의 처음 5개 행을 인쇄할 수 없습니다.

배달 '데이터 폴더'\Scripts\Python\copy_rates_from.py'에서 스크립트를 가져와 다음 줄을 추가합니다 .

from datetime import datetime
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version : ",mt5.__version__)

# импортируем модуль pandas для вывода полученных данных в табличной форме
import pandas as pd
pd.set_option('display.max_columns', 500 ) # сколько столбцов показываем
pd.set_option('display.width', 1500 )      # макс. ширина таблицы для показа
# импортируем модуль pytz для работы с таймзоной
import pytz

# установим подключение к терминалу MetaTrader 5
if not mt5.initialize():
    print("initialize() failed")
    mt5.shutdown()

# установим таймзону в UTC
timezone = pytz.timezone("Etc/UTC")
# создадим объект datetime в таймзоне UTC, чтобы не применялось смещение локальной таймзоны
utc_from = datetime ( 2020 , 1 , 10 , tzinfo=timezone)
# получим 10 баров с EURUSD H4 начиная с 01.10 . 2020 в таймзоне UTC
rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H4, utc_from, 10 )

# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
# выведем каждый элемент полученных данных на новой строке
print("Выведем полученные данные как есть")
for rate in rates:
    print(rate)

# создадим из полученных данных DataFrame
rates_frame = pd.DataFrame(rates)

# выведем пять первых строк (метод 'head' pandas)
print("\nВыведем пять первых строк")
rates_frame.head()

rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')

# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)

rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')

# выведем данные
print("\nВыведем датафрейм с данными")
print(rates_frame)

이 메서드는 아무 것도 출력하지 않습니다.

( 1578614400 , 1.11051 , 1.11093 , 1.11017 , 1.11041 , 2448 , 1 , 0 )

Выведем пять первых строк

Выведем датафрейм с данными



'head()' 메서드가 작동하지 않는 이유는 다음과 같습니다 .

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MetaTrader 5 플랫폼 빌드 2650의 새 버전: 차트의 백그라운드 로드 및 MQL5 코드 프로파일러의 개선 사항

라시드 우마로프 , 2020.11.10 14:03

노력하다

 # выведем пять первых строк (метод 'head' pandas)
print("\nВыведем пять первых строк")
print( rates_frame.head() )

결과

Выведем пять первых строк
         time     open     high      low    close  tick_volume  spread  real_volume
0    1578484800    1.11384    1.11386    1.11110    1.11200          12101        0              0
1    1578499200    1.11200    1.11308    1.11087    1.11180          13243        0              0
2    1578513600    1.11180    1.11180    1.11018    1.11041          5709        0              0
3    1578528000    1.11053    1.11194    1.11033    1.11174          4409        0              0
4    1578542400    1.11174    1.11190    1.11126    1.11183          2964        0              0



효과가 있었나요?

 
Vladimir Karputov :

'head()' 메서드가 작동하지 않는 이유는 다음과 같습니다 .


효과가 있었나요?

head() 메서드( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html )는 로그 출력이 아닌 객체를 반환하기 때문입니다. 내용을 보려면 객체를 명시적으로 print()에 보내야 합니다.

편의상 이 aconda 는 print() 명령이 호출된 것처럼 객체를 인쇄합니다.