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

 
Maxim Dmitrievsky :

그리고 가상적으로 ONNX 지원을 받으면 가져온 모델이 MQL 자체보다 느릴까요?

당신 자신이 확인합니다.

그러나 ONNX에 대한 실제 래퍼는 Python용 라이브러리/모듈 형태로 C ++에 있고 특정 비디오 카드의 드라이버/라이브러리(적합한 경우)에 있다는 사실을 잊지 마십시오.

Python은 값비싼 데이터 배열 형태로 교환해야 하는 효율적인 라이브러리에 대한 호출 사이의 통로일 뿐입니다.

사람들은 Python이 실제로 라이브러리 호출에 대한 래퍼일 뿐 그 이상은 아니라는 것을 충분히 이해하지 못합니다. 그들은 파이썬이 강력하고 현대적인 언어라고 생각합니다. 그러나 실제로 이것은 C ++ 라이브러리 간의 바인딩입니다.)

게다가, 각 라이브러리는 파이썬의 동적 구조(심지어 numpy에서도)와의 호환성을 보장하기 위해 엄청난 비용이 듭니다.

 
Renat Fatkhullin :

당신 자신이 확인합니다.

그러나 ONNX에 대한 실제 래퍼는 Python용 라이브러리/모듈 형태로 C ++에 있고 특정 비디오 카드의 드라이버/라이브러리(적합한 경우)에 있다는 사실을 잊지 마십시오.

Python은 값비싼 데이터 배열 형태로 교환해야 하는 효율적인 라이브러리에 대한 호출 사이의 통로일 뿐입니다.

사람들은 Python이 실제로 라이브러리 호출에 대한 래퍼일 뿐 그 이상은 아니라는 것을 충분히 이해하지 못합니다. 그들은 파이썬이 강력하고 현대적인 언어라고 생각합니다. 그러나 실제로 이것은 C ++ 라이브러리 간의 바인딩입니다.)

게다가, 각 라이브러리는 파이썬의 동적 구조(심지어 numpy에서도)와의 호환성을 보장하기 위해 엄청난 비용이 듭니다.

확인하겠습니다..세부사항이 나올때까지

파이썬이 주로 연구용이라는 것은 분명합니다.

그러나 나중에 이미 훈련된 일부 신경망의 코드를 꺼내기 위해(그리고 연구 중에 매번 변경됨), 무언가를 어딘가로 옮기는 것은 이미 비현실적입니다. :)

아마도 나는 당신이하고 싶은 것을 완전히 이해하지 못합니다. 어쨌든 Python API에는 많은 기회가 있습니다. 시장이 통과하지 않는 한

 
Renat Fatkhullin :

나인. Es ist naiv zu glauben, dass wir Selbstmord begehen und eine Sprache wählen werden, die hunderte Male langsamer ist als unsere, um den Tester loszuwerden.

Für uns ist es viel rentabler, unsere Idea zu entwickeln, C++ Zweck haben wir begonnen, einen externen LLVM-Compiler in den Editor aufzunehmen.

제 질문이 제대로 번역되었는지 모르겠습니다. 질문은 조금 다릅니다.

Python 모듈 은 전략 테스터 를 위한 명령을 수신합니까? 마지막으로, 아니면 확실히 그렇지 않습니까?
 

내 5센트를 넣어줄게 :)

나는 파이썬에서 네트워크로 작업하는 것이 훨씬 쉽기 때문에 정확하게 파이썬을 선택했습니다. 작업의 무리입니다. 가져가서 신청하세요. 그리고 신경망 은 더 이상 무시할 수 없습니다. 내 생각에 MQL은 단순히 이 엔티티와 함께 작동하는 라이브러리가 필요합니다...

 
Almaz :

그것이하는 일과 데이터를 얻는 방법이 명확하지 않다는 단어에 따라 속도가 느려지는 Python 코드의 예를 참조하십시오. 그리고 그는 왜 끊임없이 파일에 기록합니까? 결국 안되나요?

Python 코드를 약간 변경했습니다. 틱 요청이 1일에서 30일로 증가하고 파일에 한 줄씩이 아니라 500줄 단위로 쓰기를 구성했습니다. 작동 시간이 몇 초 감소했습니다. 지표는 아무것도 아닙니다.

내 지표를 변경했습니다. 버퍼를 추가하고 파일에 데이터를 한 줄씩 기록합니다. 틱 요청은 동일하게 유지되었습니다 - 하루.

차트에서 지표를 떨어뜨림

 2020.11 . 29 17 : 58 : 07.306 newCandles_F_1. 01 (GBPUSD,H2)   00 : 01 : 01

표시기가 그려지고 모든 데이터가 1분 안에 파일에 기록되었습니다.

파이썬 - 3시간

MQL - 1분

 

모두를 환영합니다.

이유를 말해줘.

csv 파일을 데이터 프레임으로 읽어들입니다. 그런 다음 여러 줄을 하나에 추가하고 새 csv 파일에 씁니다.

....
csv_framе = pd.read_csv(flname, delimiter= ',' )
# тут меняю имя файла
if os.path.isfile(flname):
    os.remove(flname)

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
     for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_framе.iloc[m])
         if m < i - 1 :
            del l[- 1 ]
        lst += l
    mf.write_csv_data(flname, 'a' , lst)

이 코드는 17초 동안 작동합니다.

그러나 이 모든 것을 즉시 새 프레임에 넣은 다음 파일에 덤프하면 코드 처리 시간이 1분으로 늘어납니다. 44초

...
new_frame = pd.DataFrame()

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
     for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_fraim.iloc[m])
         if m < i - 1 :
            del l[- 1 ]
        lst += l
    #mf.write_csv_data(flname, 'a' , lst)
    r, c = new_frame.shape
     if r == 0 :
        new_frame = pd.DataFrame([lst])
     else :
        new_frame.loc[r] = lst
new_frame.to_csv(flname, header=None, index=False)

왜 그런 겁니까?

 

인코딩 문제? (구글 번역기)


 

테이블(pandas DataFrame)이 있습니다. 조건에 따라 새 열을 만드는 방법: 열 "1" < 열 "2"이면 145를 쓰고 그렇지 않으면 874를 쓰나요?


추가하다:

일반적으로 통해 결정

import numpy as np
... np.where(
 
좋은 하루, MT5에서 Python을 사용하여 WinApi에 액세스할 수 있습니까?

작동 여부에 특히 관심이 있습니까?

keybd_event(VK_CONTROL, 0 , 0 , 0 );
 

오프셋을 만드는 방법?

다음은 테이블(데이터 프레임)입니다.

      time  
2020 - 11 - 25
2020 - 11 - 26
2020 - 11 - 27
2020 - 11 - 30  
2020 - 12 - 01         

이렇게 하는 방법:

      time             time_1
2020 - 11 - 25	   2020-11-26
2020 - 11 - 26         2020-11-27
2020 - 11 - 27         2020-11-30
2020 - 11 - 30         2020-12-01 
2020 - 12 - 01          ничего не писать