- 2월 14, 2014
- 게시자: 외환 위키 팀
- 범주: 무료 외환 EA
이름: |
|
||
작가: | 미클리 (2014.02.06 15:31) | ||
평가: | 10 | ||
다운로드됨: | 324 | ||
다운로드: |
|
||
설명:mt4R, originally developed by Bernd Kreuss and distributed 여기, 새로운 MQL4에서는 올바르게 작동하지 않습니다.. 새로운 MQL4를 지원하기 위해 dll과 포함 파일을 수정했습니다.. 최신 버전:You can get the latest version from GitHub releases. (Due to update time lag by moderation, the attached binary may be older than the latest release at GitHub) Changelog is also at CHANGES.md 그리고 GitHub commits. Update history:Feburary 10, 2014: v1.4.0-b7: Added sample experts: Arb-O-Mat and Trend-O-Mat(GitHub#5). Feburary 9, 2014: v1.4.0-b6: Fixed the bug of RGetBool/RGetInteger(Github#4). Feburary 9, 2014: v1.4.0-b5: Fixed the bug of RAssignString(Github#3). Feburary 9, 2014: v1.4.0-b4: Fixed the bug of RAssignStringVector(GitHub#1), and updated the minor version number in DLL hardcoded. Feburary 7, 2014: v1.4.0-b1: Changed MQL file encoding to UTF-16 Feburary 6, 2014: v1.4.0-b0: Initial snpashot Source:Source codes are distributed at a branch of my GitHub repository. 메모:
|
|||
Thanks for your great work! 하지만, the R chart created by Arbomat seems to come and go in a fraction of a second at the moment of loading the EA. What could be the reason? R chart created by Trendomat is appearing good. I'm using the same PC and the same MT4. 또한, sometimes appears this message in the experts tab: 13.02.2014 23:41 kaleb
TJmclovin:
Excellent job! Thanks for the instant fixes 🙂 !!! Two more things:
Again, thank your very much ! Great thank you and I'm sorry about terrible porting quality... I've fixed RGetBoo/RGetInteger bug at v1.4.0-SNAPSHOT-b6.
편집하다: Next time I'll just open an issue at your repo if you don't mind. I don't want to spam the comments section here ;)
I'll welcome for iissue from you if you feel to report something about this! 08.02.2014 21:08 미클리
Excellent job! Thanks for the instant fixes 🙂 !!! Two more things:
Again, thank your very much ! 편집하다: Next time I'll just open an issue at your repo if you don't mind. I don't want to spam the comments section here 😉 08.02.2014 20:46 TJmclovin
TJmclovin:
Thanks for fixing it! Works great! One more minor change is required though: // assign string to variable given by name procedure RAssignString(AHandle: LongInt; AVariable: PWideChar; AValue: PChar (should also be PWideChar?)); stdcall; begin if isValid(AHandle) then TRConsole(AHandle).AssignString(WideStringToString(AVariable, CP_ACP), WideStringToString(AValue, CP_ACP)); end;
Thanks for bug report, I've fixed at v1.4.0-SNAPSHOT-b5. Please update the dll and the include file, because of minor version number is changed from before b3. 08.02.2014 20:09 미클리
TJmclovin:
It crashes when trying to execute Rf("타임스",타임스);
Thanks for your bug report! From the investigation, the array processing in RAssingStringVector is not correctly ported to new MQL4. I've updated the DLL, so please get the latest version from GitHub. In this version, DLL-hardcoded minor version number updated to 4, so please also copy MQL4/Include/mt4R.mqh. 08.02.2014 19:54 미클리
Thanks for fixing it! Works great! One more minor change is required though: // assign string to variable given by name procedure RAssignString(AHandle: LongInt; AVariable: PWideChar; AValue: PChar (should also be PWideChar?)); stdcall; begin if isValid(AHandle) then TRConsole(AHandle).AssignString(WideStringToString(AVariable, CP_ACP), WideStringToString(AValue, CP_ACP)); end;
08.02.2014 19:51 TJmclovin
모두의 주먹: Thank you so much for porting it to the new version! Excellent job! 하지만, I've encountered a problem. See this simple script: //+------------------------------------------------------------------+ //| TestNewMt4R.mq4 | //| | //| | //+------------------------------------------------------------------+ #재산 저작권 "" #속성 링크 "" #property version "1.00" #property strict #include <mt4R.mqh> #define RPATH "디:/Program Files/R/R-3.0.2/bin/i386/Rterm.exe --no-save" #define RDEBUG 2 string times[1000]; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { StartR(RPATH,RDEBUG); ~을 위한(int i=0; 나<1000; i++) { 타임스[나]=TimeToString(iTime(상징(),기간(),나),TIME_DATE|TIME_SECONDS); } Rf("타임스",타임스); Rx("gc()"); StopR(); } //+------------------------------------------------------------------+ It crashes when trying to execute Rf("타임스",타임스);
And I don't know why. I think the problem might be the one you mentioned regarding strings. 하지만, I cannot resolve it by myself so help is very much appreciated. 감사해요! 편집하다: I checked DebugView and it seems that the whole String handling is somehow broken, 예를 들어, void OnStart() { StartR(RPATH,RDEBUG); string testString = "This is a string copy test."; Rs("rString", testString); Rx("gc()"); StopR(); } Results in: 08.02.2014 16:28 TJmclovin
Thanks for the explanation, and the update!
07.02.2014 08:57 FXEZ
FXEZ:
Can you specify what changes were necessary to update the dll? I wasn't aware that dlls need to be changed to fit MQL5's format. Have you any links on this subject? string in new MQL4 is not an array of char but an array of wchar_t. If your old indicator/script/EA which worked on MT4 build509 or earlier uses string and passes it to DLL functions, you MUST change the function to wchar_t 버전. 예를 들어, if it uses ShellExecuteA, change it to ShellExecuteW. Unfortunately if the dll you use does not provide wchar_t version functions like mt4R.dll, you must modify DLL implementation, or convert an string to an array of char ~에 의해 WideCharToMultiByte Win32API. 메모: I haven't tried WideCharToMultiByte yet on new MQL4, so I don't know you can use WideCharToMultiByte without or with any problem. At the 짓다 600 release topic, it is said as follows: Changes in MQL4 Language
07.02.2014 07:07 미클리
acushnir:
Thanks for your contribution. It's nice to know somebody takes care about useful projects. best regards Can you specify what changes were necessary to update the dll? I wasn't aware that dlls need to be changed to fit MQL5's format. Have you any links on this subject? |