Ошибки, баги, вопросы - страница 1614

 
Если в тестере выставленный SellLimit удаляется вследсвие экспирации (expired) или окончания бэктеста, то дата его экспирации становится ошибочно равна дате установки отложенника.

 

Если установить дату экпирации через TRADE_ACTION_MODIFY, то она не срабатывает в тестере.

 

Воспроизведение
void OnInit()
{
  MqlTradeRequest Request = {0};

  Request.action = TRADE_ACTION_PENDING;
  
  Request.symbol = Symbol();
  Request.volume = 1;
  Request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
  
  Request.type = ORDER_TYPE_SELL_LIMIT;

  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
  {
    Request.action = TRADE_ACTION_MODIFY;
    Request.order = Result.order;
    
    Request.type_time = ORDER_TIME_SPECIFIED;
    Request.expiration = TimeCurrent() + 10000;
    
    if (OrderSend(Request, Result))
      if (OrderSelect(Request.order))
        Print("SetExpiration = " + (string)(datetime)OrderGetInteger(ORDER_TIME_EXPIRATION)); // установили дату экспирации        
  }
}

void OnDeinit( const int reason )
{  
  if (HistorySelect(0, TimeCurrent()))
  {
    const ulong Ticket = HistoryOrderGetTicket(0);
   
    if (Ticket > 0)
    {
      // Дата экспирации изменилась - стала равна дате установки ордера!
      Print("NowExpiration = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_EXPIRATION));
     
      // При этом ордер по ранее установленной дате экспирации не удалился!     
      Print("DeleteTime = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_DONE));
    }
  }
}

 
Andrey Dik:

Исторические данные занимают довольно много места (это не претензия, констатация). Приходится использовать несколько терминалов и каждый из них собирает гигабайты истории, причем история дублируется в папках тестера и терминала.

Можно ли сложить все исторические файлы в одну папку а в терминалах указать папку по ссылке? Не возникнут ли проблемы доступа к истории между разными терминалами?

Попробовал. Теперь у меня несколько терминалов и их тестеры обращаются к одной единственной папке с историей. Кроме жалоб терминала типа:

 2016.07.19 16:39:02.276 Spreads config file open error [The process cannot access the file because it is being used by another process. (32)]

2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][The process cannot access the file because it is being used by another process. (32)]

никаких проблем в работе не наблюдаю. Ура!.. Получена экономия в сотни гигабайт дискового пространства!

В сервисдеске предупредили, что подобные действия с организацией доступа к общим данным могут нести риск. 


 
Andrey Dik:

Попробовал. Теперь у меня несколько терминалов и их тестеры обращаются к одной единственной папке с историей. Кроме жалоб терминала типа:

 2016.07.19 16:39:02.276 Spreads config file open error [The process cannot access the file because it is being used by another process. (32)]

2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][The process cannot access the file because it is being used by another process. (32)]

никаких проблем в работе не наблюдаю. Ура!.. Получена экономия в сотни гигабайт дискового пространства!

В сервисдеске предупредили, что подобные действия с организацией доступа к общим данным могут нести риск. 


а каким образом реализовали?
 
coderex:
а каким образом реализовали?

Создал отдельную паку Bases, в неё перенёс историю с одного из терминалов.  После этого во всех терминалах и их тестерах вместо реальных папок с историей поместил ссылки типа Junction на общую папку. 

Особенно актуально при использовании нескольких терминалов на одном VPS, можно получить реальную экономию в деньгах за счет выбора меньшего по размеру дискового пространства.

 
Работаю в тестере в оффлайне. Как сделать, чтобы лог не засорялся сотнями тысяч записей?
2016.07.21 07:48:41.578 MQL5.community  authorization failed

 
Как получилось в стандартной библиотеке обойтись без вызова ::OrdersTotal() ?
 
fxsaber:
Работаю в тестере в оффлайне. Как сделать, чтобы лог не засорялся сотнями тысяч записей?

В настройках коммюнити (Главное меню - Сервис - Настройки - вкладка Сообщество) сотрите свои авторизационные данные
 
Slawa:
В настройках коммюнити (Главное меню - Сервис - Настройки - вкладка Сообщество) сотрите свои авторизационные данные
Ни разу их там не прописывал. Не в этом дело.
 

А что торговых панелей не существует ? Или к какой группе их отнести ?

 

 

 
Vladimir Pastushak:

А что торговых панелей не существует ? Или к какой группе их отнести ?

 

 

Утилиты наверное нужно выбирать. Правда там совсем нет категорий.
Причина обращения: