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

 
zhserg:

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

exe 파일을 아카이브에 복사합니다.
 
Warstein:
감사합니다!!!
매우 큰 요청, 특정 마술 번호가있는 주문으로 만 작업을 추가하십시오.

나는 아이디어를지지하고 누군가가 글을 쓸 것이므로 코드 덕분에 모든 것이 훌륭합니다! 나는 좋은 상인을 찾고 투자를 요청해야합니다 ;)

 

추가해야 할 사항이 있습니다.

1. 로트 비례 - 5자리에서 4자리로 - 로트도 1자리씩 이동합니다.

일반적으로 로트가 아니라 여유 마진과 로트와 다이트, 그리고 수신기에서 사용 가능한 여유 마진 및 견적 소수점에 따라 로트를 다시 계산하는 것이 좋습니다.

이렇게하면 매니 관리가 보존됩니다. 매니 관리가 없으면 프로그램이 의미를 잃게됩니다.

2. 기호에 접두사-접미사-때때로 DC는 거래 기호를 EURUSD가 아닌 EURUSD_byaka라고 부릅니다 (별도의 구성 파일에 "어느 기호에서 어느 기호로"대응을 복제하는 것이 더 좋을 것입니다).

3. 하나의 파일을 여러 개의 mt4 파일로 복사하는 기능을 구현하면 좋을 것 같습니다.

예를 들어 mt5 폴더에서 mt4 파일을 받는 식으로요:

#import "kernel32.dll"
   bool CopyFileA(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
#import

/////////////////

CopyFileA(TerminalPath()+CharToStr(92)+"experts"+CharToStr(92)+"files"+CharToStr(92)+fSymbol+".txt",CopyTo1+fSymbol+".txt",false);

이렇게 하면 mt4 파일 샌드박스를 뛰어넘을 수 있습니다.

안타깝게도 mql5에서는 이와 유사한 MSDN 트릭이 작동하지 않습니다.

일반적으로 시도해보고 버그가 없으면 지금은 직접 작성하지 않겠습니다. 고마워요.

 
zhserg:

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

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

번역기 위치.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 폴더에 쓰여집니다.

부트닉을 사용할 수 있습니다. 네트워크와 컴퓨터 내부에 모두있을 것입니다.

@Echo off
:loop
xcopy "F:\folder\*.txt" "\\Comp1\folder" /Y /R /C /I /G /Z /D >nul
xcopy "C:\Program Files\MetaTrader 5\MQL5\Files\Translator positions.csv" "C:\Program Files\MetaTrader 4\experts\files" /Y /R /C /I /G /Z /D >nul
timeout /t 1
goto :loop

그건 그렇고, 메가 파일 동기화의 경우 Microsoft SyncToy 2 .1 http://www.microsoft.com/en-us/download/details.aspx?id=15155.

SyncToy 2.1
SyncToy 2.1
  • www.microsoft.com
Note: There are multiple files available for this download. Once you click on the “Download” button, you will be prompted to select the files you need. Overview There are files from all kinds of sources that we want to store and manage. Files are created by our digital cameras, e-mail, cell phones, portable media players...
 
이 모든 것은 더 이상 관련이 없으며 기사가 오래되었고 고급 기능이 포함 된 새로운 컴파일러 mql4 ++가 곧 출시 될 예정이며 모든 것이 변경 될 것입니다.
 

문제는 메타트레이더가 데이터를 저장하는 위치와 관련이 있다고 생각합니다. 최신 버전의 Windows에서는 설치 폴더의 하위 폴더를 사용하지 않습니다.

서버 2008(제 경우)에서 MT5는
C:\사용자\[사용자 이름]\앱데이터\로밍\MetaQuotes\터미널\[긴 16진수]\MQL5\등...을 사용합니다.

각 터미널 설치는 이 위치에 고유한 [긴 16진수]가 있는 자체 폴더를 사용합니다. 위의 폴더 경로에 MT4를 설치하려고 시도했지만 자체 고유 데이터 폴더에서 읽고 쓰기 때문에 그것도 작동하지 않습니다. 어쨌든 이 위치에서 프로그램을 실행하는 것은 좋은 생각이 아닐 것입니다.

Windows 8에서도 이 문제가 있는 것 같습니다.

지금은 아이디어가 떠오르지 않지만 이 정보가 도움이 되었기를 바랍니다.

 

Windows Server 2008에서 내 MT4 데이터 파일 위치:

C:\사용자\[사용자명]\앱데이터\로컬\가상스토어\프로그램 파일\[MT4 프로그램 폴더 이름]

OS가 파일 작업을 리디렉션하는 것 같습니다.

 

4103 - 파일 열기 오류, MT5가 일부 파일에 트레이딩을 쓰고 있는데 MT4가 이를 '찾을 수 없음'을 의미합니다.

이는 MT5가 MT4와 다르게 작동하기 때문에 발생합니다. MT5에서는 설치하는 폴더와 실행하는 폴더가 다릅니다. 예를 들어, MT5는 C:\Accounts\MT5에, MT4는 C:\Accounts\MT5\MQL\Files\MetaTrader 4에설치했습니다 .

MT5는 C:\사용자\[사용자 이름]\AppData\로밍\MetaQuotes\터미널\[긴 16진수]\MQL5\등 폴더를 만들었고 실제로 여기서 실행됩니다. 따라서 MT5는 이 폴더의 어딘가에 거래를 기록합니다.

원래 기사에서와 같이 MT4는 MT5 폴더 '내부'에 있어야 합니다. 따라서 해결책은 MT5 설치 폴더를 실행 폴더와 "동일"하게 만드는 것입니다. 가장 간단한 방법은 다음과 같습니다:

1. 모든 MT5 인스턴스를 제거합니다.

2. C:\사용자\[사용자명]\AppData\로밍\에서 'Metaquotes' 폴더를 삭제합니다.

이제 설치 폴더를 실행 폴더와 동일하게 만듭니다:

3. MT5를 재설치합니다. 프로그램 파일 폴더에 있지 않아야 하며, 예를 들어 C:\Accounts\MT5에 설치합니다. 설치하는 동안 '완료 후 실행'을 선택 해제합니다(중요 단계).

4. MT5를 처음 실행하기 전에 바탕화면에서 MT5 바로가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭한 다음 경로에 따옴표 없이 "/portable"을 추가합니다. 즉, C:\Accounts\MT5\terminal.exe /portable이 됩니다. (터미널.exe 뒤에 공백이 있고, 슬래시, 대문자 없이 portable이 있어야 합니다). 확인을 클릭합니다.

이제 MT4를 설치하고, EA를 복사하고, 터미널을 실행합니다.

5. C:\Accounts\MT5\MQL\Files\MetaTrader 4에 MT4를 설치합니다. (폴더 이름은 MetaTrader 4 또는 그 무엇이든 EA의 이름과 동일해야 합니다).

6. 번역기 및 카피스트 EA를 각 폴더에 복사합니다.

7. MT5 마스터와 MT4 슬레이브를 모두 실행합니다.

8. 즐기세요 !!!

Tip: 제대로 완료되지 않은 경우 다음 단계로 진행하지 마십시오.

'비전문적'인 언어를 사용하여 죄송합니다. 이것이 의사에게 기대할 수있는 최대치입니다!

 
doctornasir:

4103 - 파일 열기 오류, MT5가 일부 파일에 트레이딩을 쓰고 있는데 MT4가 이를 '찾을 수 없음'을 의미합니다.

이는 MT5가 MT4와 다르게 작동하기 때문에 발생합니다. MT5에서는 설치하는 폴더와 실행하는 폴더가 다릅니다. 예를 들어, MT5는 C:\Accounts\MT5에, MT4는 C:\Accounts\MT5\MQL\Files\MetaTrader 4에설치했습니다 .

MT5는 C:\사용자\[사용자 이름]\AppData\로밍\MetaQuotes\터미널\[긴 16진수]\MQL5\등 폴더를 만들었고 실제로 여기서 실행됩니다. 따라서 MT5는 이 폴더의 어딘가에 거래를 기록합니다.

원래 기사에서와 같이 MT4는 MT5 폴더 '내부'에 있어야 합니다. 따라서 해결책은 MT5 설치 폴더를 실행 폴더와 "동일"하게 만드는 것입니다. 가장 간단한 방법은 다음과 같습니다:

1. 모든 MT5 인스턴스를 제거합니다.

2. C:\사용자\[사용자명]\AppData\로밍\에서 'Metaquotes' 폴더를 삭제합니다.

이제 설치 폴더를 실행 폴더와 동일하게 만듭니다:

3. MT5를 재설치합니다. 프로그램 파일 폴더에 있지 않아야 하며, 예를 들어 C:\Accounts\MT5에 설치합니다. 설치하는 동안 '완료 후 실행'을 선택 해제합니다(중요 단계).

4. MT5를 처음 실행하기 전에 바탕화면에서 MT5 바로가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭한 다음 경로에 따옴표 없이 "/portable"을 추가합니다. 즉, C:\Accounts\MT5\terminal.exe /portable이 됩니다. (터미널.exe 뒤에 공백이 있고, 슬래시, 대문자 없이 portable이 있어야 합니다). 확인을 클릭합니다.

이제 MT4를 설치하고, EA를 복사하고, 터미널을 실행합니다.

5. C:\Accounts\MT5\MQL\Files\MetaTrader 4에 MT4를 설치합니다. (폴더 이름은 MetaTrader 4 또는 그 무엇이든 EA의 이름과 동일해야 합니다).

6. 번역기 및 카피스트 EA를 각 폴더에 복사합니다.

7. MT5 마스터와 MT4 슬레이브를 모두 실행합니다.

8. 즐기세요 !!!

Tip: 제대로 완료되지 않은 경우 다음 단계로 진행하지 마십시오.

'비전문적'인 언어를 사용하여 죄송합니다. 이것이 의사에게 기대할 수있는 최대치입니다!

시간을 내어 작성해 주셔서 감사합니다.

또 다른 방법은 기본 설치 설정을 유지하고 두 폴더를 심볼릭 링크로 연결하는 것입니다.

http://en.wikipedia.org/wiki/NTFS_symbolic_link

 

mql4++ 컴파일러

추가 매개 변수가 있는 MT4의 수신기용 새 버전인가요?