귀하의 지시를 주의 깊게 따랐지만 Matlab 2007b에서 이 기능을 사용할 수 없습니다. MT5 터미널에서 미리 빌드된 예제를 사용하려고 할 때 이러한 오류가 계속 발생합니다.
2010.08.29 10:33:30 TestMLEngine (EURUSD,H1) 'C:\사용자\QuantFX\앱데이터\로밍\MetaQuotes\터미널\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\라이브러리\LibMlEngine.dll'(126) 열 수 없습니다.
2010.08.29 10:33:47 TestDllMatlab (EURUSD,H1) 'C:\사용자\QuantFX\앱데이터\로밍\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\nnSMA.dll'(126) 열 수 없었어요.
'데이터를 교환하는 방법' 문서에서 언급된 프로젝트를 얻을 수 있기 때문에 어떻게 생각해야 할지 모르겠습니다:10 분 안에 MQL5 용 DLL "에서 찾은 https://www.mql5.com/en/articles/18 문제없이 작동합니다.
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) 'C:\Users\QuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\MQL5DLLSamples.dll' 액세스 위반 0x00000000에 쓰기.
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) 바꾸기: 게으른 개를 뛰어넘는 빠른 갈색 고양이
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Array: 0 1 2 3 4 5 6 7 8 9
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Time 297 msec, int: -752584127 double: 17247836076609
그래서 터미널은 분명히 \ 라이브러리 폴더에 대한 액세스 위반에 문제가 없으며 전문가 고문 "옵션"이 dll 가져 오기 및 자동 거래를 허용한다고 확신합니다...이 기사를 처음 읽은 이후로 이것에 대해 당황했기 때문에 어떤 도움을 주시면 대단히 감사하겠습니다. 미리 감사드립니다.
- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
마침내 이걸 작동시켰습니다... 훌륭한 기사입니다. 저는 Visual Studio에 대한 경험이 많지 않고 메타트레이더 프로그래밍에 초보자입니다. 그래서 제가 받은 모든 오류로 인해 다소 어려웠습니다. 장기적으로는 모든 버전의 매트랩과 비주얼 스튜디오에서 매우 쉽지만, 장기적으로 볼 때 매우 쉽습니다.메타트레이더와 Matlab을 처음 연결하려고 시도하는 사람, 특히 Matlab 엔진이나 Matlab 외부 라이브러리로 작업한 적이 없다면 다음을 수행하여 통찰력을 얻는 것이 좋습니다. 1. matlabroot\externs\examples\eng_mat\engwindemo에 있는 Matlab과 함께 제공되는 프로젝트를 생성합니다. http://www.mathworks.com/support/solutions/en/data/1-78077S/index.html?product=ML&solution=1-78077S 컴파일하고, 누락된 dll 파일과 같은 문제가 있는 경우 여기에 있는 의존성 워커를 사용하여 http://www.dependencywalker.com/에서 사용 중인 matlab 엔진 버전이 작동하려면 C:\Windows\System 32 폴더에 어떤 파일이 있어야 하는지 확인합니다. 시스템 32 폴더에 많은 파일을 넣어야 하거나 프로젝트에서 파일을 연결할 올바른 위치를 알고 있을 수도 있습니다. 대부분의 dll은 matlabroot\bin\win(32 또는 64) 폴더에 있습니다. 필요한 첫 몇 개의 dll 파일을 넣은 후 돌아가서 프로젝트를 다시 빌드해 보세요. 종속성 워커가 제안하는 모든 작업을 수행할 필요가 없다는 것을 알게 될 수도 있습니다. 프로젝트가 컴파일되고 실행되면 거의 완료된 것입니다... 2. 데이터 교환 방법 문서에서 제안한 프로젝트를 빌드하세요: 10분 만에 MQL5용 DLL 만들기 https://www.mql5.com/en/articles/18 . 프로젝트가 작동한다면 위의 프로젝트를 만들 때 두 가지를 결합하고 있다는 것을 기억하세요. 따랐던 모든 단계를 기억하고 이 프로젝트를 컴파일할 준비가 되었을 때 "stdafx.h"가 DLLUnit.cpp의 첫 번째 #include 헤더이며, 빌드 직전에 미리 컴파일된 헤더를 해제했는지 확인하세요. 위의 파일을 그대로 사용하면 쉽게 수정할 수 있는 경고가 표시될 수 있지만 프로젝트는 번거로움 없이 작동합니다. 제가 덧붙인 두 가지 조언이 이 프로젝트에 대한 초보자 가이드처럼 들릴 수도 있지만, 다른 버전의 Matlab이나 Visual Studio를 사용하여 이 프로젝트를 빌드해야 하는 경우 이러한 작업을 수행하면 몇 시간의 여가 시간을 절약할 수 있습니다.
Cheers
제가 착각한 것이 아니라면 표 1의 Matlab 행렬 유형이 올바르지 않습니다. 문자 u가 누락되었습니다. 즉, 예를 들어 0에서 65535까지의 범위는 int16 유형이 아니라 uint16 유형이 담당합니다. 등등...
클래스 | 값의 범위 | 변환 함수 |
|---|---|---|
부호 있는 8비트 정수 | -27 ~27-1 | int8 |
부호화된 16비트 정수 | -215~215-1 | int16 |
부호화된 32비트 정수 | -231 ~231-1 | int32 |
부호화된 64비트 정수 | -263 ~263-1 | int64 |
부호 없는 8비트 정수 | 0 ~28-1 | uint8 |
부호 없는 16비트 정수 | 0 ~216-1 | uint16 |
부호 없는 32비트 정수 | 0 ~232-1 | uint32 |
부호 없는 64비트 정수 | 0 ~264-1 | uint64 |
안녕하세요, 도움이 많이 된 훌륭한 글에 감사드립니다!
그러나 문제가 발생했습니다. 누군가 이 문제를 겪은 것 같습니다.
Expert Advisor를 닫을 때 MT5가 완전히 멈춥니다. 저는 MS Visual Studio2010 + Matlab r2011a를 사용합니다.
그 이유가 무엇이라고 생각하십니까? 미리 감사드립니다!
안녕하세요. 글에 있는 대로 다 했는데 TestMlEngine 스크립트를 실행할 때 오류가 발생했습니다:
2011.12.17 15:55:23 TestMLEngine(EURUSD,H1) 'C:\사용자\H_F_M\앱데이터\로밍\메타쿼츠\터미널\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\라이브러리\LibMlEngine.dll'(126) 열 수 없습니다.
그리고 즉시:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxGetSizeOfName'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxGetLogical'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxGetInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxGetDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxInputLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxInputChar'를 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxOpen'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxClose'를 찾을 수 없음
포럼 어딘가에서 이것이 누락 된 dll로 인한 것임을 발견하고 depends.exe의 도움으로 누락 된 것을 발견하고 같은 폴더에 던져 넣었지만 도움이되었지만 지금은 그렇지 않습니다. 이제 표시됩니다:
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll'(127)을 열 수 없습니다.
그리고 목록은 "찾을 수 없습니다..."로 계속됩니다. 문제가 무엇인지 알려주실 수 있나요? 나는 이미 일주일 동안 고군분투하고 있습니다 ...
예, Win7 + Matlab R2011a + VS201이 있습니다.
.
안녕하세요. 글에 있는 대로 다 했는데 TestMlEngine 스크립트를 실행할 때 오류가 발생했습니다:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'C:\사용자\H_F_M\앱데이터\로밍\메타쿼츠\터미널\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\라이브러리\LibMlEngine.dll'(126) 열 수 없습니다.
그리고 즉시:
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxGetSizeOfName'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxGetLogical'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxGetInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxGetDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Can't find 'mlxInputLogical' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputInt' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Cannot find 'mlxInputDouble' in 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxInputChar'를 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxOpen'을 찾을 수 없음
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) 'LibMlEngine.dll'에서 'mlxClose'를 찾을 수 없음
포럼 어딘가에서 이것이 누락 된 dll로 인한 것임을 발견하고 depends.exe의 도움으로 누락 된 것을 발견하고 같은 폴더에 던져 넣었지만 도움이되었지만 지금은 그렇지 않습니다. 이제 표시됩니다:
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll'(127)을 열 수 없습니다.
그리고 목록은 "찾을 수 없습니다..."로 계속됩니다. 문제가 무엇인지 알려주실 수 있나요? 나는 이미 일주일 동안 고군분투하고 있습니다 ...
예, Win7 + Matlab R2011a + VS201이 있습니다.
Matlab을 설치했을 때 시스템 경로가 "C:\Program Files\MATLAB\R2011b\bin"이었습니다. "C:\Program Files\MATLAB\R2011b\bin\win32"를 추가했습니다. Matlab 디렉토리의 Dll이 표시되고 Matlab 엔진이 시작되었습니다. 그 전에는 dll이 보이지 않았다고 썼습니다.
좋은 하루 되세요) 또 다른 문제가 있습니다 - 어떤 이유로 "Borland" 카탈로그가 <MATLAB>\extern\lib\win32\ 폴더에서 발견되지 않습니다(Borland C++ Builder 6이 설치되어 있지만). 따라서 libeng.lib 및 libmx.lib 파일도 프로젝트에 연결할 수 없습니다. Far는 "implib libeng libeng.lib libeng.dll" 명령에서 다음과 같이 출력합니다:
)
그리고 볼랜드 폴더는 거기에 없었고 여전히 없습니다 ... 누구든지이 문제를 해결하는 방법을 말해 줄 수 있습니까? 아니면 적어도이 두 파일을 던지겠습니까?:-)
일반적으로, 나는 무언가를 이해하지 못하기 때문에 도와주세요....
실험의 순수성을 위해 VMware를 설치하여 XP와 7의 두 시스템을 설치했습니다.
그런 다음 Matlab R2011b를 설치하고 MCR을 설치 한 다음 최신 빌드 인 MT5를 설치했습니다. 기사에 첨부된 아카이브에서 모든 파일은 아카이브의 지침에 쓰여진 대로 폴더에 흩어져 있었습니다. mq5 파일을 ex5로 컴파일했습니다(즉, 아카이브에 있는 기존 ex5 파일을 삭제하고 새로 컴파일한 파일을 그 자리에 넣었습니다). MT5를 시작하고 Matlab을 시작하고(시작하지 않으려고 했는데 결과는 동일합니다) 터미널에서 TestMlEngine을 클릭하면 다음과 같은 메시지가 표시됩니다:
TestMLEngine (EURUSD,H1) 13:44:58 'C:\사용자\사용자\앱데이터\로밍\MetaQuotes\터미널\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll'(126)
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine'에서 'mlxClose를 찾을 수 없습니다.dll'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxOpen'을(를) 찾을 수 없어'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxInputChar'을(를) 찾을 수 없어'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxInputInt'를 찾을 수 없습니다'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxInputLogical'을(를) 찾을 수 없습니다'
TestMLEngine (EURUSD,H1) 13:44:58 'mlxGetDouble'을('LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxGetInt'를 찾을 수 없습니다.
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine'에서 'mlxGetLogical.dll'
TestMLEngine (EURUSD,H1) 13:44:58 'LibMlEngine.dll'에서 'mlxGetSizeOfName'을(를) 찾을 수 없습니다.
어떻게 해야 할지 모르겠습니다. 제가 할 수 있는 모든 것을 시도했습니다. "MQL5 용 DLL 라이브러리를 작성하고 10 분 안에 데이터를 교환하는 방법은 무엇입니까?"() 문서에서 DLL을 시도했습니다.(https://www.mql5.com/ru/articles/18)- 문제없이 작동합니다.
누구든지 다른 방법을 알려 주실 수 있나요? 내가 뭘 잘못하고 있는 걸까요?
미리 감사드립니다.
- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
Matlab을 설치했을 때 시스템 경로는 "C:C:\Program Files\MATLAB\R2011b\bin"이었습니다. "C:\Program Files\MATLAB\R2011b\bin\win32"를 추가했습니다. Matlab 디렉토리의 Dll이 표시되고 Matlab 엔진이 시작되었습니다. 그 전에는 dll이 보이지 않는다고 썼습니다.
Path 환경 변수를 말하는 것이라면, "C:\Program Files\MATLAB\R2011b\bin\win32"를 추가했지만 상황은 변하지 않았습니다 :-(
새로운 기고글 MetaTrader5와 MATLAB의 상호 작용 가 게재되었습니다:
이 글은 MetaTrader5와 MATLAB 패키지 사이의 상호 작용에 대한 설명입니다. 데이터 변환 메커니즘과 MATLAB 데스크톱과 상호 작용이 가능한 범용 라이브러리 개발 과정에 대해 살펴볼 겁니다. MATLAB 환경에서 생성된 DLL의 사용법도 알아보겠습니다. 이 글은 C++와 MQL5를 이미 알고 있는 숙련된 프로그래머들을 위해 작성되었습니다.
이 인터랙션 메소드는 깔끔하거나 빠르지는 않지만 MATLAB 패키지 전체를 커버하며 가장 안정성이 높은 방법이기도 합니다. 물론 최종 모델 개발 속도 또한 중요한 부분이죠. 라이브러리 개발의 핵심 목표는 MetaTrader4, MetaTrader5 그리고 MATLAB 엔진의 상호 작용을 위한 범용 라이브러리 래퍼의 작성입니다. 그러고 나면 MetaTrader4와 MetaTrader5의 스크립트, 인디케이터, 그리고 액스퍼트 어드바이저 모두 MATLAB 가상 데스크톱을 다룰 수 있게 됩니다. 게다가 전체 연산 알고리즘을 문자열로 MQL 프로그램에 저장할 수 있기 때문에 여러분의 지적 재산권 보호에도 도움이 됩니다(더 많은 관련 정보는 'Protect Yourselves, Developers!'에서 찾아 볼 수 있습니다). <MetaTrader 5>\MQL5\Libraries 폴더에 별개의 M 함수 또는 P 함수 파일로 저장될 수도 있죠.
상호 작용 적용 가능 분야
시작해 봅시다. 1.1 MATLAB과 MQL5의 데이터형, 1.2 MQL5와 MATLAB의 데이터형 비교, 2.1 MATLAB 엔진 API 및 MCR 함수 및 2.3 C++ 표준 인풋/아웃풋 라이브러리를 미리 읽으셨길 바랍니다. 더이상 해당 섹션과 관련된 설명은 하지 않을 겁니다. 라이브러리 알고리즘을 나타내는 다음의 블록 다이어그램을 꼼꼼하게 읽어 보세요.
작성자: Andrey Emelyanov