Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй свой счет с помощью банковских карт через Gate2Shop
R_fan
10
R_fan 2012.11.18 15:49 
Привет всем. 

На сайте нашол очень полезную библиотеку, которая позволяет мне использовать все функции R. Только один вопрос. Есле у меня программа написана на R и она довольно длинная, содержит несколько моих собственных функций, как мне ее зопустить на mql4 ? Может как то можно исполнять сразу всю программу, написанную на R, а не по отдельности команды через RExecute() ? Допустим, у меня в R написана программа, которая получает котировки из мт4, обробатывает их и в коце выдаёт одно число. Программа длинная, в ней много пользователских функций. Как мне ее проше всего зопустить в mql4? Небуду же я каждую строчку программы прогонять через RExecute(). Что мне надо, это чтобы программа исполнилась и пресвоила переменной, скажем x, значение. А потом я это значение достаю с помошью RGetDouble() и использую для себя дальше.

Alexandre
601
Alexandre 2012.11.18 22:53  
R-Script, вероятно, поможет. Но, скорее всего, придётся его прикручивать к интерфейсной библиотеке и заново её компилировать.
СанСаныч Фоменко
5443
СанСаныч Фоменко 2012.11.19 15:58  
R_fan:
Привет всем. 

На сайте нашол очень полезную библиотеку, которая позволяет мне использовать все функции R. Только один вопрос. Есле у меня программа написана на R и она довольно длинная, содержит несколько моих собственных функций, как мне ее зопустить на mql4 ? Может как то можно исполнять сразу всю программу, написанную на R, а не по отдельности команды через RExecute() ? Допустим, у меня в R написана программа, которая получает котировки из мт4, обробатывает их и в коце выдаёт одно число. Программа длинная, в ней много пользователских функций. Как мне ее проше всего зопустить в mql4? Небуду же я каждую строчку программы прогонять через RExecute(). Что мне надо, это чтобы программа исполнилась и пресвоила переменной, скажем x, значение. А потом я это значение достаю с помошью RGetDouble() и использую для себя дальше.

Объедините свои строчки R в одну функцию (набор функций) и вызывайте RExecute эту функцию или по очереди набор функций. Результат можно получить как результат функции, а можно внутри функции присвоить глобальной переменно по <<-

Возможно, примерно так:

   for (i   =  0; i  <  NumberBars;   i++)
      Buf_EUR[i]              =  iOpen("EURUSD",   TimeFrame,   i);
//    Передать очередную порцию котира в  R   
   RAssignVector     (R, "eur",   Buf_EUR, ArraySize(Buf_EUR));
   RExecute          (R, "eur      <-   rev(eur)");    // Обратный порядок к МТ4 для EUR
   RExecute          (R, "ResultR  <-   Dosometh( eur)") 
   RGetVector        (R, "ResultR", ResultR, ArraySize(ResultR));  

 Послали кусок котира, обработали в функции Dosometh(), а результат получили в массиве (векторе R) в виде одного или многих значений.

Все чрезвычайно удобно. 

Удачи. 

R_fan
10
R_fan 2012.11.24 16:11  

Спосиби всем, кто ответил. Написал автору. Любой файл, написанный на R можно исполнить в советнике через 

RExecute(handle,"setwd('C:/my/working/dir')");
RExecute(handle,"source('myfile.R')");

 теперь можно хоть 1000 строковые проги писать в R и исполнять их в mql4

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий