Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1012

 
Alexey Viktorov:

Обратите внимание в этом сообщении на слова "У всех терминалов есть общие папки."


Поищите информацию о том как это делается и в путь... Это называется линковка папок.

Значит можно сделать такое. Написать библиотеку и открыть доступ к этой библиотеке с разных терминалов и они смогут обмениваться данными или подключить одного робота к 2ум терминалам. Читал немного про линковку пока не разобрался. Может есть темы где можно подробнее об этом спросить?

 
Seric29:

Значит можно сделать такое. Написать библиотеку и открыть доступ к этой библиотеке с разных терминалов и они смогут обмениваться данными или подключить одного робота к 2ум терминалам. Читал немного про линковку пока не разобрался. Может есть темы где можно подробнее об этом спросить?

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

 
Alexey Viktorov:

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

Спасибо за совет. Я использовал жёсткую ссылку



, для этого нужно чтобы терминалы были установлены в одном томе

, я тупо добавил единицу далее я соединил файлы ex4 и mq4, в итоге всё работает с обеих сторон теперь можно писать общие библиотеки и пользоваться ими. Не знаю насколько это надёжно но робота бросил на график считает. При компилировании кода фалы меняются с 2ух сторон, но обновление расчётов происходит с одной стороны, если бросать робота работать в онлайн режиме то нужно чтобы программа была одинаковой и дописана и откомпилирована как будет работать неизвестно, может у кого есть возможность проверте, я пока не могу проверить.

 
Seric29:

Спасибо за совет. Я использовал жёсткую ссылку



, для этого нужно чтобы терминалы были установлены в одном томе

, я тупо добавил единицу далее я соединил файлы ex4 и mq4, в итоге всё работает с обеих сторон теперь можно писать общие библиотеки и пользоваться ими. Не знаю насколько это надёжно но робота бросил на график считает. При компилировании кода фалы меняются с 2ух сторон, но обновление расчётов происходит с одной стороны, если бросать робота работать в онлайн режиме то нужно чтобы программа была одинаковой и дописана и откомпилирована как будет работать неизвестно, может у кого есть возможность проверте, я пока не могу проверить.

Так есть-же прям в компиляторе волшебная папка, или не подходит?


 
Seric29:

Спасибо за совет. Я использовал жёсткую ссылку

А зачем было делать ссылки на конкретные файлы? Не лучше-ли сделать симлинки на папки и все файлы этой папки будут доступны в тех терминалах где эти ссылки сделаны.

Приметно вот так:

На снимке 00.png слева сама папка, а справа ссылка из одного терминала

На снимке 11.png так-же, ссылка из другого терминала

А на снимке 22.png содержимое, слева сама папка, а справа содержимое по ссылке.

Файлы:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

Так есть-же прям в компиляторе волшебная папка, или не подходит?


Так я же и спрашиваю можно ли сделать такое и будет ли оно надёжно работать. Мне дали ответ что нет. Посоветовали некую программу я конечно с ней поигрался но нечего не вышло. Потом дали совет с командной строкой, я 3 часа поигрался вроде получилось что-то но я не знаю как то оно не надёжно сначала обновлялась и дата файла и содержимое а потом стало меняться только содержимое а дата не менялась, странно это немного. Где прочитать про ваш способ? Насколько надёжно работает, смогут ли роботы взаимодействовать друг с другом онлайн?

 
Alexey Viktorov:

А зачем было делать ссылки на конкретные файлы? Не лучше-ли сделать симлинки на папки и все файлы этой папки будут доступны в тех терминалах где эти ссылки сделаны.

Приметно вот так:

На снимке 00.png слева сама папка, а справа ссылка из одного терминала

На снимке 11.png так-же, ссылка из другого терминала

А на снимке 22.png содержимое, слева сама папка, а справа содержимое по ссылке.

Видел я такое, синхранизация через TotalComander, но как я понял эта штука переносит только файлы (например картинки), а если речь идёт о том что имеется текстовый файл и он меняется, измениться ли он если я в файл что-то допишу? Насколько надёжно работает связь через TotalComander, смогут ли роботы взаимодействовать друг с другом онлайн или это только для написания кода будет удобно?

 
Seric29:

Видел я такое, синхранизация через TotalComander, но как я понял эта штука переносит только файлы (например картинки), а если речь идёт о том что имеется текстовый файл и он меняется, измениться ли он если я в файл что-то допишу? Насколько надёжно работает связь через TotalComander, смогут ли роботы взаимодействовать друг с другом онлайн или это только для написания кода будет удобно?

TotalComander это только для показа содержимого двух папок. Да он и привычней мне чем виндовый проводник. А все симлинки я так-же делал в командной строке. Только ключ не /H делал, а /D и не на файл, а на папку. И по этой ссылке из разных мест есть доступ к одному и тому-же файлу.

Хотя, я вот только сейчас подумал, а будет-ли доступен файл тогда когда он используется одним терминалом... Лучше напиши в личку Сегею Тарболину. Как я понял, он этим пользуется и наверное точно знает.

 
Alexey Viktorov:

TotalComander это только для показа содержимого двух папок. Да он и привычней мне чем виндовый проводник. А все симлинки я так-же делал в командной строке. Только ключ не /H делал, а /D и не на файл, а на папку. И по этой ссылке из разных мест есть доступ к одному и тому-же файлу.

Хотя, я вот только сейчас подумал, а будет-ли доступен файл тогда когда он используется одним терминалом... Лучше напиши в личку Сегею Тарболину. Как я понял, он этим пользуется и наверное точно знает.

Я поигрался с Тотал Командер, в общем как я понял, то там только синхронизация в момент нажатия кнопки происходит, а через консоль по ключу H содержимое файла меняется в реальном времени, но когда нажимаешь кнопку компилировать на оригинале расчёты которые робот произвёл по ссылке не меняются, приходится нажимать кнопку компилировать и на ссылке, но если робот одинаковый и код не трогать работает, не знаю будет ли работать онлайн, пока нет возможности проверить могу  сбить незаконченные настройки программы. Но раз файлы меняют свойство то я думаю должны работать. В общем тут либо через консоль либо паренёк что-то выше предложил но я инфы не нашёл нормальной. Напишу человеку что вы посоветовали.

 

Всем привет, подскажите пожалуйста как правильно переделать функцию с MQL4 на MQL5 :

//+------------------------------------------------------------------+
// Кол-во закрытых Sell_Order на последнем баре
 int Anz_g_Sell_Order()
  {
   int count = 0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
    {
     if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true
        && OrderSymbol() == Symbol() && OrderType() == OP_SELL
        && OrderMagicNumber() == Magic_Nr
        && OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
      {
       count++;
      }
    }
      return(count);
  }
//+---------------------------------------------------------------------+

я переписал, но почему-то не работает, где ошибка? :

//+------------------------------------------------------------------+
// Кол-во закрытых Sell_Order на последнем баре
 int Anzahl_g_Sell_Order()
  {
   int count = 0;
   if(HistorySelect(0,INT_MAX))
    {
      for(int i=HistoryDealsTotal()-1;i>=0;i--)
      {
       ulong ticket = HistoryDealGetTicket(i);
       if(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
          && HistoryDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL
          && HistoryDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
          && DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
        {
        count++;
        }
      }
    }
      return(count);
  }
//+---------------------------------------------------------------------+

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