Обсуждение статьи "Копирование торговли из MetaTrader 5 в MetaTrader 4" - страница 11

 
Warstein:
Спасибо за отличную вещь!!!
Очень большая просьба, добавьте работу только с ордерами с определенным магик номером.

Поддерживаю идею, может кто напишет, а так код отличный спасибо автору всё супер! Осталось только трейдера хорошего найти и попросить инвест ;)

 

 

Надо бы добавить.

1. Соразмерность лота - с 5-ти знаковых на 4-х знаковые - лот двигается тоже на 1 знак.

А вообще лучше тянуть не лот, а свободную маржу и лот и dights, а на приемнике пересчитывать лот в соответствие с имеющейся свободной маржой и знаками котировки после запятой.

Так мани-менеджмент сохранится - без него прога смысл теряет.

2. Префиксы-суффиксы к символам - иной раз ДЦ торговый символ называет не EURUSD, а EURUSD_бяка (наверно лучше сделать соответствие "с какого в какой" символ дублировать отдельным настроечным файлом)

3. Неплохо бы реализовать копирование файла в несколько мт4

Например приемом мт4 файла из папки мт5 с помощью:

#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:

Сделал простенький копировщик. Задаем откуда, куда и интервал копирования.

Старт копирования кнопкой "Сохранить/старт". Во время работы она будет подмаргивать )))

 В Translator positions.MQ5 можно изменить строку int han=FileOpen(subfolder+"\\experts\\files\\"+folder+".csv",FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); на   int han=FileOpen(folder+".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

Кстати для мега синхронизации файлов рекомендую Майкософтовский 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++ с расширенными возможностями, всё поменяется.
 

компилятор mql4++

это новая версия для приемника в mt4, с дополнительными параметрами? 

 
scorp_sys:

компилятор mql4++

это новая версия для приемника в mt4, с дополнительными параметрами? 

Это всё теперь можно будет делать на mutex
 
awkozlov:

You can batch file. And across the network and within the company.

By the way file synchronization for mega Maykosoftovsky recommend SyncToy 2.1 http://www.microsoft.com/en-us/download/details.aspx?id=15155

     string Path = TerminalInfoString(TERMINAL_PATH) +"\\experts\\files\\";
      if (  CopyFileA (Path+folder+".csv","c:\\"+folder+"csv", true  ))
         PrintFormat("%s file moved",folder);
      else
         PrintFormat("Error  %s ! Code  %d",Path+folder ,GetLastError());
    
 
Urain:
Это всё теперь можно будет делать на mutex

Не могу понять как можно скопировать торговлю из одного теримнала в другой на mutex 

 
ToporMT5:

Не могу понять как можно скопировать торговлю из одного теримнала в другой на mutex 

Ну если для копирования торговли применять современные методы межпрограммного обмена, то можно и без мьютексов, а если применять древние, файловые, то без мьютексов сложно синхронизировать операции записи и чтения.
Это как с почтой - можно послать по телефону и через инет, а можно и наземным транспортом, при этом ктото должен регулировать дорожное движение.
В общем то, средства синхронизации (семафоры, мьютексы, ивенты), придуманы давно - около полувека тому назад, просто к нам в MQL, немного запоздали.
 

 

.. а что делать, если МТ4 не может открыть файл ?

пишет:  copyist_positions EURUSD,H4: Ошибка открытия файла5004

Причина обращения: