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

 
ckeiderling :

안녕 모두,


나는 당신이 여기 영국 남자를 신경 쓰지 않기를 바랍니다. 성공하지 못한 채 웹 검색에 많은 시간을 보낸 후 몇 가지 지침을 찾고 있습니다.

Maxium 기사에서 영감을 얻은 후 MetaTrader5 Python 라이브러리를 사용하고 있습니다. 메모리 처리에 문제가 있음을 발견했습니다.

mt5 lib를 사용하여 데이터 프레임을 만들면 결과 데이터 프레임이 예상대로 작동합니다. 틱을 수집한 다음 조작된 df를 출력하기 전에 다양한 분석을 수행하는 함수 내에서 이 작업을 수행했습니다.

그러나 DataFrame을 생성하는 함수를 다시 실행하면 메모리가 이전 인스턴스에서 계속 누적되는 것을 알 수 있습니다.

mt5.copy_ticks_range() 및 mt5.copy_rates_range()를 사용하여 동일한 문제가 발생합니다. 메모리를 지우려면 커널을 재설정해야 합니다.

데이터 프레임을 생성하는 줄을 제외한 모든 코드를 제거한 후에도 동일한 문제가 발생합니다. 예를 들어:

def vel(기호, lookback, lookforward, start_date, end_date, quantile_size):

틱 = pd.DataFrame(mt5.copy_ticks_range(symbol, datetime(start_date.year, start_date.month, start_date.day), datetime(end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), 열 = [ '시간', '입찰', '요청', '마지막', '볼륨', '시간_msc', '플래그', '볼륨_실제'])

이것을 여러 번 실행하면 메모리 사용량이 매번 27MiB씩 증가합니다.

줄 번호 메모리 사용량 증가 줄 내용 ============================================ ===== 126.3 MiB 126.3 MiB def vel(symbol, lookback, lookforward, start_date, end_date, quantile_size): 153.3 MiB 26.9MiB 틱 = pd.DataFrame(mt5.copy_ticks_range(symbol, datetime(start_date.year, , start_date.day), ...


줄 번호 메모리 사용량 증가 줄 내용

디버깅에 도움이 필요하면 전체 MVCE를 제공해야 합니다. 이 스니펫으로는 충분하지 않습니다.

 
ckeiderling :

안녕 모두,


나는 당신이 여기 영국 남자를 신경 쓰지 않기를 바랍니다. 성공하지 못한 채 웹 검색에 많은 시간을 보낸 후 몇 가지 지침을 찾고 있습니다.

Maxium 기사에서 영감을 얻은 후 MetaTrader5 Python 라이브러리를 사용하고 있습니다. 메모리 처리에 문제가 있음을 발견했습니다.

mt5 lib를 사용하여 데이터 프레임을 만들면 결과 데이터 프레임이 예상대로 작동합니다. 틱을 수집한 다음 조작된 df를 출력하기 전에 다양한 분석을 수행하는 함수 내에서 이 작업을 수행했습니다.

그러나 DataFrame을 생성하는 함수를 다시 실행하면 메모리가 이전 인스턴스에서 계속 누적되는 것을 알 수 있습니다.

mt5.copy_ticks_range() 및 mt5.copy_rates_range()를 사용하여 동일한 문제가 발생합니다. 메모리를 지우려면 커널을 재설정해야 합니다.

데이터 프레임을 생성하는 줄을 제외한 모든 코드를 제거한 후에도 동일한 문제가 발생합니다. 예를 들어:

def vel(기호, lookback, lookforward, start_date, end_date, quantile_size):

틱 = pd.DataFrame(mt5.copy_ticks_range(symbol, datetime(start_date.year, start_date.month, start_date.day), datetime(end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), 열 = [ '시간', '입찰', '요청', '마지막', '볼륨', '시간_msc', '플래그', '볼륨_실제'])

이것을 여러 번 실행하면 메모리 사용량이 매번 27MiB씩 증가합니다.

줄 번호 메모리 사용량 증가 줄 내용 ============================================ ===== 126.3 MiB 126.3 MiB def vel(symbol, lookback, lookforward, start_date, end_date, quantile_size): 153.3 MiB 26.9MiB 틱 = pd.DataFrame(mt5.copy_ticks_range(symbol, datetime(start_date.year, , start_date.day), ...


줄 번호 메모리 사용량 증가 줄 내용

아마도 https://docs.python.org/3/library/gc.html 을 사용하려고 할 것입니다.

https://stackabuse.com/basics-of-memory-management-in-python/

 

안녕하세요.
이 오류는 MetaTrader5.Buy() / Sell() 을 통해 주문을 시도할 때 표시되기 시작했습니다.

order_open = mt5.Buy(기호, 볼륨)

파일 "C:\Python3.7.4\lib\site-packages\MetaTrader5\__init__.py", 라인 313, 구매

r.retcode != TRADE_RETCODE_REQUOTE 및 r.retcode != TRADE_RETCODE_PRICE_OFF인 경우:

AttributeError: 'NoneType' 개체에 'retcode' 속성이 없습니다.


그것을 고칠 방법을 제안할 수 있습니까?

 
AxxelTrader :

여러분, 안녕하세요.
MetaTrader5.Buy() / Sell() 을 통해 주문을 시도하면 이러한 오류가 나타나기 시작했습니다.

order_open = mt5.Buy(기호, 볼륨)

파일 "C:\Python3.7.4\lib\site-packages\MetaTrader5\__init__.py", 라인 313, 구매

r.retcode != TRADE_RETCODE_REQUOTE 및 r.retcode != TRADE_RETCODE_PRICE_OFF인 경우:

AttributeError: 'NoneType' 개체에 'retcode' 속성이 없습니다.


고칠 수 있는 방법을 알려주실 수 있나요?

r = mt5.Buy(...)
if r is None:
    print(mt5.last_error())
else :
     if r.retcode ...
 

어떤 터미널 빌드를 사용하고 있습니까?

베타 버전으로 업데이트 되었습니까?

 
MetaQuotes :

어떤 터미널 빌드를 사용하고 있습니까?

베타 버전으로 업데이트 되었습니까?

최신 업데이트 - MetaTrader5 패키지 버전: 5.0.31

이러한 오류는 mt5.Buy(), mt5.Sell() 함수를 사용할 때와 mt5를 사용할 때 모두 발생합니다 . order_send (요청) .

또한 "retcode" 속성이 없다고 씁니다.

 
AxxelTrader :

최신 업데이트 - MetaTrader5 패키지 버전: 5.0.31

이 오류는 mt5.Buy(), mt5.Sell() 함수를 사용할 때와 mt5.order_send(requests) 사용할 때 모두 발생합니다.

또한 "retcode" 속성이 없다고 씁니다.

질문은 터미널 버전에 관한 것이었습니다.

 
Renat Fatkhullin :

질문은 터미널 버전에 관한 것이었습니다.

MT5 버전: 5.00 빌드 2361 2020년 3월 8일

 
AxxelTrader :

MT5 버전: 5.00 빌드 2361 2020년 3월 8일

베타 버전으로 업그레이드하십시오.

새로운 기능 은 베타 버전에서만 사용할 수 있습니다.

 
Renat Fatkhullin :

베타 버전으로 업그레이드하십시오.

새로운 기능 은 베타 버전에서만 사용할 수 있습니다.

버전 2432로 업데이트되었습니다.
그러나 여전히 오류가 남아 있습니다..
이미 다른 브로커에서 시도했지만..