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

 

Как-то упустил момент или уже забыл:

на виртуальном хостинге значения объектов нормально возвращаются?

т.е. если допустим в стратегии используются линии, то смогу ли получить значение этих линий на виртуальном хостинге метаквотов?

 
Nikolai Semko:

Не поможет. Особенно, если таймер уже включен до включения в классе, например с периодичностью несколько часов или дней. Тогда такой класс разрушит всю логику программы.

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

Иначе за ним не уследить.

 
Andrey Khatimlianskii:

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

Иначе за ним не уследить.

разумно

 
Nikolai Semko:

разумно

Разумно было бы сделать это на уровне платформы, а нам дать возможность запускать несколько таймеров под разные нужды )

 
Andrey Khatimlianskii:

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

Иначе за ним не уследить.

причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.

 
Nikolai Semko:

причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.

Ждем в КБ ;)

 
Andrey Khatimlianskii:

Разумно было бы сделать это на уровне платформы, а нам дать возможность запускать несколько таймеров под разные нужды )

ну да...
Так было бы гораздо проще. Но легкие пути для пацанов, а мужы легких путей не ищут  :))

 
Andrey Khatimlianskii:

Ждем в КБ ;)

Надеюсь, дойдут когда-нибудь руки...

 
Dmitri Custurov:

Я пробовал и по фэн шую, и так - результат тот же. Дело в том, что все работает в 99% случаев, а мне нужно 100%. На данный момент мне главное логику правильно собрать, красоту буду потом наводить.

Забыл добавить только то, что вышеупомянутая ошибка появляется в тестере. Когда кидаю на график, такого не наблюдаю, или нужно просто дождаться необходимого экстремума, где эта ошибка опять себя проявит.

вещественные нужно сравнивать правильно

/*!
   \brief   Сравнение вещественных double
   \return true в случае равно, иначе false
*/
bool CompDouble(const double a_one,const double a_two) {
   if(fabs(a_one - a_two) <= DBL_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью DBL_EPSILON
//---
   return false;
}
/*!
   \brief   Сравнение вещественных float
   \return true в случае равно, иначе false
*/
bool CompFloat(const float a_one,const float a_two) {
   if(fabs(a_one - a_two) <= FLT_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью FLT_EPSILON
//---
   return false;
}
 
Спасибо за совет. Работает. Я уже на OrderSelect грешил.
Причина обращения: