В платформу встроена система автоматического обновления. Она позволяет своевременно получать и устанавливать новые версии программы. Эту систему отключить нельзя. Порядок обновления При подключении к торговому серверу происходит проверка наличия обновлений платформы. Если найдено обновление какого-либо из компонентов торговой платформы...
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 5if 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' pandas)
print("\nВыведем пять первых строк")
print( rates_frame.head())
결과
Выведем пять первых строк
time open high low close tick_volume spread real_volume
015784848001.113841.113861.111101.112001210100115784992001.112001.113081.110871.111801324300215785136001.111801.111801.110181.11041570900315785280001.110531.111941.110331.11174440900415785424001.111741.111901.111261.11183296400
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는 몇 배나 많은 메모리와 디스크 공간을 잡아먹는 나쁜 선택입니다. 일반적으로 자동 업데이트 정책은 좋지 않습니다. 작동 - 만지지 마십시오.
일반적으로 이전 버전과의 호환성을 유지하지 않고 업데이트가 강제되기 때문에 어떤 버전과 호환되는지 문서에 플레이트가 필요합니다.
32비트 운영 체제에 대한 지원은 여러 빌드 전에 비활성화되었습니다. 그 이후로 터미널이 많이 바뀌었습니다. 따라서 문제에 대한 가능한 해결책: 64비트 Windows 10을 실행해야 합니다.
그러나 터미널과 모듈의 호환 빌드가 있었고 새로운 기능 없이 설치만 하면 됩니다.
그리고 Windows 10 64비트의 의무는 이미 터미널과 같은 프로그램에 너무 많습니다. 너무 무겁고 질기며 오랜 작업이 필요한 작업을 실행하기에는 신뢰할 수 없습니다. 자동 업데이트에는 여전히 문제가 있습니다. MT가 이 시스템에 묶여 있는 것이 유감입니다.
64비트 Windows 10을 실행 중이어야 합니다.
Windows 7 x64에 무슨 문제가 있습니까? 다른 소식을 놓쳤나요???
Windows 7 x64에 무슨 문제가 있습니까? 다른 소식을 놓쳤나요???
10보다 7이 낫다고 봅니다. 모바일 시스템에 중점을 두지 않습니다.
10보다 7이 낫다고 봅니다. 모바일 시스템에 중점을 두지 않습니다.
동의합니다. 거의 1년 동안 10k에서 일했고 집에 돌아왔을 때 7로 만족했습니다!
아니요.
수요와 준비된 청중은 없지만.
MetaEditor와 jupyter 노트북에서 스크립트로 실행합니다.
DataFrame의 처음 5개 행을 인쇄할 수 없습니다.
배달 '데이터 폴더'\Scripts\Python\copy_rates_from.py'에서 스크립트를 가져와 다음 줄을 추가합니다 .
이 메서드는 아무 것도 출력하지 않습니다.
'head()' 메서드가 작동하지 않는 이유는 다음과 같습니다 .
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MetaTrader 5 플랫폼 빌드 2650의 새 버전: 차트의 백그라운드 로드 및 MQL5 코드 프로파일러의 개선 사항
라시드 우마로프 , 2020.11.10 14:03
노력하다
결과
효과가 있었나요?
'head()' 메서드가 작동하지 않는 이유는 다음과 같습니다 .
효과가 있었나요?
head() 메서드( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html )는 로그 출력이 아닌 객체를 반환하기 때문입니다. 내용을 보려면 객체를 명시적으로 print()에 보내야 합니다.
편의상 이 aconda 는 print() 명령이 호출된 것처럼 객체를 인쇄합니다.