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

 
Valeriy Yastremskiy #:
Это второй вопрос) каммон папка поверх терминальных, тоже не удобно, надо в имя файла брокера прописывать, что бы различить) 
TerminalInfoString(TERMINAL_DATA_PATH)
 
Valeriy Yastremskiy #:
Ну это не совсем правильно. И открыть сторонней программой все равно не получится. Вопрос то как открытый по хендлу индикатор в тестере завершить штатно. 

Почему не получится?

В OnDeinit эксперта IndicatorRelease вызывается?
 
Tretyakov Rostyslav #:

Не понял, зачем нам путь папки терминала? Это не песочница метаквот, это папки екзешника терминала и редактора) Что это даст?

 
JRandomTrader #:

Почему не получится?

В OnDeinit эксперта IndicatorRelease вызывается?

Спасибо, не знал даже, но не помогла. Хендл убирается, и он скорее всего убирается и по окончании теста, но ОнДеИнит индикатора не отрабатывает, а в реале все норм.

ЗЫ из справки тока заметил

IndicatorRelease

При работе в тестере стратегий функция IndicatorRelease() не выполняется.

 
Alexey Viktorov #:

Пишите в общую папку и читайте оттуда…

К тому же агенты тестера тоже находятся в  общей папке агентов тестера, поэтому в тестере это тоже не поможет.

 
Как в тестере 5ке поставить спред 0? в спецификации плавающий, ставлю ноль, не воспринимает. Печатаю бид аск, спред плавающий) тест по по ОХЛС М1
 

Что то длинные выходные)))

Что то нет, видимо погода хорошая)))

Зы... уеду в деревню до среды.... Ну может кто то зайдет в ветку!!!!!!!!!!!!!!!

 
К ночи... что то к ночи)))
 

Коллеги вопрос сам разобрал и решил, кому надо сумма лотов ордеров по направлениям: считаю лоты ордеров по направлениям бай и селл

 

           " Лоты ордеров в buy = ", GetLotOrder(_Symbol,OP_BUYLIMIT,-1) + GetLotOrder(_Symbol,OP_BUYSTOP,-1)," \n ",
           " Лоты ордеров в sell = ",GetLotOrder(_Symbol,OP_SELLLIMIT,-1) + GetLotOrder(_Symbol,OP_SELLSTOP,-1)," \n ",   


double GetLotOrder(string sy="", int op=-1, int mn=-1) {  
  double   l_b=0;  
  double   l_s=0;
  int i, j=OrdersTotal();
  if (sy=="0") sy=Symbol();
  for (i=j-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op))
        {
        if (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP) 
         {
          if (mn<0 || OrderMagicNumber()==mn) l_b = NormalizeDouble(l_b + OrderLots(),2);
         }
        if (OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP) 
         {
          if (mn<0 || OrderMagicNumber()==mn) l_s = NormalizeDouble(l_s + OrderLots(),2);
         }         
         
      }
    }
  }
  
  if (op == OP_BUYLIMIT  || op == OP_BUYSTOP)    return(l_b); 
  if (op == OP_SELLLIMIT || op == OP_SELLSTOP)   return(l_s); 
 return(-1);
}
 
Roman Shiredchenko #:

Коллеги вопрос сам разобрал и решил, кому надо сумма лотов ордеров по направлениям: считаю лоты ордеров по направлениям бай и селл

 


Здесь
Причина обращения: