기고글 토론 "MetaTrader 5에서 MetaTrader 4로 거래를 복제하는 방법" - 페이지 12

 

mt4에서 mt5로 복사한 후 다시 복사하는 방법

는 정상적으로 작동하지만 mt5 -> mt4에서만 지연이 발생합니다.

카운터가 없기 때문입니다. 그러나 일반적으로 잘 작동합니다.


그리고 W7 / Vista의 경우 터미널은 공통 폴더 MetaQuotes\Terminal\에 있어야합니다.

약간 우울합니다. 그러나 간단한 프로그램 (mql이 아닌)을 작성하려는 욕구가 있습니다.

1초 주기로 폴더에서 파일을 복사하는 간단한 프로그램을 작성하고 싶습니다.

폴더에서 mt4로, 사용 가능한 경우 다시 mt5로 파일을 복사합니다. 터미널을 건드리지 않기 위해

 
win7을 사용하면 나 자신이 스크립트를 넣는 데 지쳤습니다. 여기에 모든 사람들이 이미 논의되었고 모든 것이 이미 어떻게 넣는 지 명확하다고 썼지 만, 나는 "일부"로 MQ5의 프로그래머가 아니라 LAMER, 당신이 원한다면 더미라고 씁니다. (나는 아무 생각없이 글을 썼고 누구에게도 불쾌감을주고 싶지 않았습니다). 요컨대, 저와 같은 탱크에있는 모든 사람들 : 폴더 공개 MT5에 대한 권한을 설정해야하며 폴더 파일이 표시되지는 않지만 거기에 있습니다))))), 거기에 새 터미널 MT4를 설치합니다. 설치 후 MT4의 스크립트가 오류 생성을 중지하고 모든 것이 정상적으로 작동합니다. 스크립트 작성자에게 대단히 감사합니다. 요즘에는 아무것도 공유하고 싶어하는 사람이 거의없고 모두가 서로 섹스하고 싶어하지만 내 표현을 용서하지만 어떤지 알고 있습니다.
 
감사합니다!!!
매우 큰 요청, 특정 매직 번호가있는 주문으로 만 작업을 추가하십시오.
 
Im_hungry:

mt4에서 mt5로 복사한 후 다시 복사하는 방법

는 정상적으로 작동하지만 mt5 -> mt4에서만 지연이 발생합니다.

카운터가 없기 때문입니다. 그러나 일반적으로 잘 작동합니다.


그리고 W7 / Vista의 경우 터미널은 공통 폴더 MetaQuotes\Terminal\에 있어야합니다.

약간 우울합니다. 그러나 간단한 프로그램 (mql이 아닌)을 작성하려는 욕구가 있습니다.

1초 주기로 폴더에서 파일을 복사하는 간단한 프로그램을 작성하고 싶습니다.

폴더에서 mt4로, 사용 가능한 경우 다시 mt5로 파일을 복사합니다. 터미널을 건드리지 않도록

안녕하세요.
MT4에서 MT5로, 어떻게 실현할 수 있나요?
나는 기초적인 수준에서 mql을 이해합니다.
준비된 솔루션을 게시해 주시겠습니까?
MT4에서 거래의 개장 및 종가를 복사하려면 MT5가 필요합니다. 나는 중지를 사용하지 않습니다.
감사합니다.
 

컴파일할 때 이러한 경고가 표시됩니다. 물론 오류는 아니고 경고일 뿐입니다.

'Copyist_positions.mq4' 컴파일 중...
'cmd' - 비교 표현식 예상 C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - 비교 표현식 예상 C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 오류(s), 2 경고(s)

위는 다음 두 줄의 코드를 참조합니다:

//--- open price
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- close price
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

"if(cmd%2)"를 "if(cmd<2)"로 변경해야 한다고 생각하는데요. 로 변경해야 한다고 생각하지만 잘 모르겠습니다.

MT4에서 위 스크립트를 실행할 때 이런 오류가 발생합니다.

2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: 4103 파일 열기 오류
2013.02.26 06:16:38 Copyist_positions EURUSDm,H1: ArrayInitialize 함수 내부 오류

메타트레이더 4를 설치하고 스크립트를 실행할 때 사용한 경로는 다음과 같습니다:

C:\프로그램 파일\메타트레이더 5\MQL5\파일\메타트레이더 4\전문가\스크립트

몇몇 사람들이 같은 문제를 겪고 있는 것 같습니다. 문제를 해결하는 방법이나 파일의 새 클린 버전에 대한 도움을 주시면 감사하겠습니다.

Documentation on MQL5: Array Functions / ArrayInitialize
  • www.mql5.com
Array Functions / ArrayInitialize - Documentation on MQL5
 
Jeysun:

컴파일할 때 이러한 경고가 표시됩니다. 물론 오류는 아니고 경고일 뿐입니다.

'Copyist_positions.mq4' 컴파일 중...
'cmd' - 비교 표현식 예상 C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (120, 46)
'cmd' - 비교 표현식 예상 C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts\Copyist_positions.mq4 (122, 46)
0 오류(s), 2 경고(s)

위는 다음 두 줄의 코드를 참조합니다:

//--- open price
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- close price
double price_close(string symbol,int cmd){if(cmd%2)return(ask(symbol));else return(nd(symbol,bid(symbol));}

"if(cmd%2)"를 "if(cmd<2)"로 변경해야 한다고 생각하는데요. 로 변경해야 한다고 생각하지만 잘 모르겠습니다.

나는 코드가 정확하고 가독성이 좋지 않고 끔찍하다고 말할 수도 있지만 정확하다고 생각합니다. 나는 CMD가 주문 / 연산 유형 OP_BUY가 0 OP_SELL이 1이므로 OP_BUY%2 = 0 OP_SELL%2 = 1, 0과 1이 거짓과 참과 같다고 가정합니다. 따라서 OP_SELL의 경우 (cmd%2)는 참이고 OP_SELL의 시가는 Bid이고 종가는 Ask입니다.
Documentation on MQL5: Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants
  • www.mql5.com
Standard Constants, Enumerations and Structures / Indicator Constants / Price Constants - Documentation on MQL5
 
Jeysun:

메타트레이더 4를 설치하고 스크립트를 실행할 때 사용한 경로는 다음과 같습니다:

C:\프로그램 파일\메타트레이더 5\MQL5\파일\메타트레이더 4\전문가\스크립트

몇몇 사람들이 같은 문제를 겪고 있는 것 같습니다. 문제를 해결하는 방법이나 파일의 새 클린 버전에 대한 도움을 주시면 감사하겠습니다.

UAC 문제일 수 있으므로 프로그램 파일이 아닌 다른 폴더(예: C:\MT4Installs\)에 설치해 보십시오.
 

RaptorUK:
UAC 문제일 수 있으므로 프로그램 파일이 아닌 다른 폴더(예: C:\MT4Installs\)에 설치해 보십시오.

설명과 제안에 감사드립니다.

메타트레이더 5를 "C:\메타트레이더 5 (2nd)\"에, 메타트레이더 4를 "C:\메타트레이더 5 (2nd)\MQL5\파일\MT4\"에 새로 설치했지만 "카피리스트 위치" 스크립트를 실행하면 여전히 동일한 오류가 발생합니다. 내 운영 체제는 Windows 8입니다.

"카피리스트 포지션"이 읽을 파일을 작성하지 않는 것 같아서 "번역가 포지션" 파일이 무엇을하고 있는지 생각하고 있습니다. 이해하려면 mql5를 조금 배워야 할 것 같습니다. "카피리스트_포지션" 스크립트는 스크립트보다는 EA로 사용하는 것이 더 적합할 것 같습니다. MT4에서 MT4로 거래하는 복사기가 있는데 잘 작동합니다. 제대로 작동하는 MT5에서 MT4로 거래하는 복사기를 찾는 데 어려움을 겪고 있습니다.

 
코드 주셔서 감사합니다. 유용하게 사용했습니다.
 
Im_hungry:

하지만 1초 주기로 폴더에 파일을 복사하는 간단한 프로그램을 작성하고 싶었습니다.

1초 주기로 폴더의 파일을 복사하는 간단한 프로그램을 작성하고 싶었습니다.

폴더에서 mt4로, 사용 가능한 경우 다시 mt5로 파일을 복사합니다. 터미널을 건드리지 않기 위해

간단한 복사기를 만들었습니다. 어디서부터 어디로 복사할지, 복사 간격을 설정했습니다.

"저장/시작" 버튼으로 복사를 시작합니다. 작업 중에 깜박입니다)))).

번역기 위치.MQ5에서 int han=FileOpen(subfolder+"\\\experts\\\files\\\"+folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); 를 int han=FileOpen(폴더+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); 즉, 파일이 \\Program Files\MetaTrader 5\MQL5\Files 폴더에 쓰여집니다.

파일:
CopyFile.zip  168 kb