По-хорошему, вся работа с таймером должна быть обернута в класс, и все части программы, где нужен таймер, должны им пользоваться через этот класс.
Иначе за ним не уследить.
причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.
причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.
Я пробовал и по фэн шую, и так - результат тот же. Дело в том, что все работает в 99% случаев, а мне нужно 100%. На данный момент мне главное логику правильно собрать, красоту буду потом наводить.
Забыл добавить только то, что вышеупомянутая ошибка появляется в тестере. Когда кидаю на график, такого не наблюдаю, или нужно просто дождаться необходимого экстремума, где эта ошибка опять себя проявит.
вещественные нужно сравнивать правильно
/*!
\brief Сравнение вещественных double
\return true в случае равно, иначе false
*/bool CompDouble(constdouble a_one,constdouble a_two) {
if(fabs(a_one - a_two) <= DBL_EPSILON * fmax(fabs(a_one), fabs(a_two)))
returntrue; // числа равны с относительной точностью DBL_EPSILON//---returnfalse;
}
/*!
\brief Сравнение вещественных float
\return true в случае равно, иначе false
*/bool CompFloat(constfloat a_one,constfloat a_two) {
if(fabs(a_one - a_two) <= FLT_EPSILON * fmax(fabs(a_one), fabs(a_two)))
returntrue; // числа равны с относительной точностью FLT_EPSILON//---returnfalse;
}
Хотел написать о уровне кодинга в сообществе в целом, однако опустим во избежания неприятностей... На мой взгляд, по хорошему, задача решается через реализацию синглтона или статического класса, который реализует управление таймером и предоставляет возможность "подписки" на событие таймера, "подписка" реализуется через передачу указателя на функцию, которая с определенной периодичностью должна вызываться.
По-хорошему, вся работа с таймером должна быть обернута в класс, и все части программы, где нужен таймер, должны им пользоваться через этот класс.
Иначе за ним не уследить.
причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.
причем в этом классе можно задефайнить OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, как это делал Фабер в библе Init_Sync.mqh. И тогда полный контроль. Хорошая идея. Спасибо.
Ждем в КБ ;)
Разумно было бы сделать это на уровне платформы, а нам дать возможность запускать несколько таймеров под разные нужды )
ну да...
Так было бы гораздо проще. Но легкие пути для пацанов, а мужы легких путей не ищут :))
Ждем в КБ ;)
Надеюсь, дойдут когда-нибудь руки...
Я пробовал и по фэн шую, и так - результат тот же. Дело в том, что все работает в 99% случаев, а мне нужно 100%. На данный момент мне главное логику правильно собрать, красоту буду потом наводить.
Забыл добавить только то, что вышеупомянутая ошибка появляется в тестере. Когда кидаю на график, такого не наблюдаю, или нужно просто дождаться необходимого экстремума, где эта ошибка опять себя проявит.вещественные нужно сравнивать правильно
Ждем в КБ ;)
Решение оказалось гораздо проще, чем я думал.
Пример индикатора, в котором можно узнать статус Таймера. Достаточно только добавить одну строчку #include <Timer.mqh> и OnTimer() под контролем.
А вот сам класс:
Результат:Решение оказалось гораздо проще, чем я думал.
...
Хотел написать о уровне кодинга в сообществе в целом, однако опустим во избежания неприятностей...
На мой взгляд, по хорошему, задача решается через реализацию синглтона или статического класса, который реализует управление таймером и предоставляет возможность "подписки" на событие таймера,
"подписка" реализуется через передачу указателя на функцию, которая с определенной периодичностью должна вызываться.
Результаты торговли отличаются от теста по всем тикам. Подскажите куда копать - котировки перерисовываются, или как?
Тест по всем тикам - всегда выдает один и тот же результат. Реальная торговля - дает лишние сделки на том самом периоде.
Советник не выключался 2 недели. Тест так-же 2 недели. Раз 50 прогнал - всегда одинаково
Результаты торговли отличаются от теста по всем тикам. Подскажите куда копать - котировки перерисовываются, или как?
Тест по всем тикам - всегда выдает один и тот же результат. Реальная торговля - дает лишние сделки на том самом периоде.
Советник не выключался 2 недели. Тест так-же 2 недели. Раз 50 прогнал - всегда одинаково
Тест по "всем тикам" или по "реальным тикам"?