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

 

Копирование с мт4 -> мт5 и обратно по вашему способу

отлично работает - только при мт5 -> мт4 задержка потиковая

т.к. счетчика там нету. Ну а в общем норм.


Да и для W7 / Vista терминал нуно в общую папку MetaQuotes\Terminal\

немного удручает. Но появилось желание написать простую прогу (не mql)

с циклом в 1 сек - которая бы копировала файлы из папки

мт4 в мт5 и обратно при наличии таковых. Чтобы терминалы не трогать

 
С win7 сам замучался ставить скрипт, тут все пишут что уже обсуждалось и типа всё уже понятно как ставить - да нифига, я не программер в MQ5 как "некоторые" Я ЛАМЕР, чайник если позволите. (я написал без всяких задних мыслей, и никого не хотел обидеть). Короче всем кто в танке как я: надо права на папке выставить общедоступные МТ5 и появится папочка Files,  её не видно но она есть))), туда устанавливаем новый терминал МТ4. После установки скрипт в МТ4 перестанет выдавать ошибку и будет всё как надо. Автору скрипта большое человеческое спасибо, в наше время мало кто чем хочет делится просто так, все хотят друг друга поиметь извиняюсь за выражение ну вы и сами в курсе как оно и есть. 
 
Спасибо за отличную вещь!!!
Очень большая просьба, добавьте работу только с ордерами с определенным магик номером.
 
Im_hungry:

Копирование с мт4 -> мт5 и обратно по вашему способу

отлично работает - только при мт5 -> мт4 задержка потиковая

т.к. счетчика там нету. Ну а в общем норм.


Да и для W7 / Vista терминал нуно в общую папку MetaQuotes\Terminal\

немного удручает. Но появилось желание написать простую прогу (не mql)

с циклом в 1 сек - которая бы копировала файлы из папки

мт4 в мт5 и обратно при наличии таковых. Чтобы терминалы не трогать

Доброго времени суток.
С МТ4 на МТ5, как это реализовать?
в mql разбираюсь на примитивном уровне.
можете пожалуйста выложить готовое решение?
мне надо чтоб МТ5 копировал открытие и закрытие сделок с МТ4. стопы не использую.
благодарю.
 

Я получаю эти предупреждения при компиляции. Правда, это только предупреждения, а не ошибки.

Компиляция '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 ошибок(ы), 2 предупреждения(и)

Вышеуказанное относится к этим двум строкам кода:

//--- цена открытия
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- цена закрытия
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

Вот путь, который я использовал для установки Metatrader 4 и использовал для запуска скрипта:

C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

Похоже, что несколько человек испытывают те же проблемы. Любая помощь по устранению проблем или новая чистая версия файла будет оценена по достоинству.

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 ошибок(ы), 2 предупреждения(и)

Вышеуказанное относится к этим двум строкам кода:

//--- цена открытия
double price_open(string symbol,int cmd) {if(cmd%2)return(bid(symbol));else return(nd(symbol,ask(symbol));}
//--- цена закрытия
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 равны false и true. Таким образом, (cmd%2) истинно для OP_SELL, и цена открытия для 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:

Вот путь, который я использовал для установки Metatrader 4 и запуска скрипта:

C:\Program Files\MetaTrader 5\MQL5\Files\Metatrader 4\experts\scripts

Похоже, что несколько человек испытывают те же проблемы. Любая помощь по устранению проблем или новая чистая версия файла будет оценена по достоинству.

Возможно, это проблема UAC, попробуйте установить в папку, отличную от Program Files, например, C:\MT4Installs\
 

RaptorUK:
Возможно, это проблема UAC, попробуйте установить в папку, отличную от Program Files, например, C:\MT4Installs\

Спасибо за объяснение и предложение.

Попробовал установить Metatrader 5 в папку "C:\MetaTrader 5 (2nd)\" и Metatrader 4 в папку "C:\MetaTrader 5 (2nd)\MQL5\Files\MT4\", но все равно возникают те же ошибки при запуске скрипта "copyist positions". Моя операционная система - Windows 8.

Я думаю, что это может быть связано с файлом "Translator positions", поскольку он, похоже, не записывает файл для чтения "copyist positions". Возможно, мне придется немного изучить mql5, чтобы понять это. Кажется, что скрипт "copyist_positions" лучше использовать как советник, а не как скрипт. У меня есть торговый копировщик с MT4 на MT4, который отлично работает. Мне трудно найти работающий копировщик из MT5 в MT4.

 
Большое спасибо за код, пригодился.
 
Im_hungry:

Но появилось желание написать простую прогу (не mql)

с циклом в 1 сек - которая бы копировала файлы из папки

мт4 в мт5 и обратно при наличии таковых. Чтобы терминалы не трогать

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

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

 В 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.  

Файлы:
CopyFile.zip  168 kb