IsEqual() и IsZerro() под вопросом, нагугленные из неких источников как "trick for double"
IsNan() работает, а IsInf() нет
IsInf(DBL_MIN_DENORM) == true
С каких пор денормализованные числа стали бесконечностью?
Ну и все эти сравнения с epsilon - epsilon нужно увеличивать пропорционально операндам. Да и вообще, нет здесь универсального рецепта, вот я в качестве epsilon испоьзую Point (с округлением оперндов), сравнивать разницу с DBL_EPSILON желания не возникает (да и не нужно).
Ну и все эти сравнения с epsilon - epsilon нужно увеличивать пропорционально операндам. Да и вообще, нет здесь универсального рецепта, вот я в качестве epsilon испоьзую Point (с округлением оперндов), сравнивать разницу с DBL_EPSILON желания не возникает (да и не нужно).
Показывает, сколько в Терминале всего (с момента запуска) было отправлено успешных синхронных торговых приказов (OrderSend) и сгенерировано асинхронных.
Пример использования X Macro (не обессудьте за непонятные типы, выдрал из рабочего кода. Вектор - динамический массив):
Например:
vector_fund<upindex_t> seg2; vector_ref<vector_fund<upindex_t>> seg2_sub;
vector_fund<upindex_t> seg3; vector_ref<vector_fund<upindex_t>> seg3_sub;
vector_fund<upindex_t> seg4; vector_ref<vector_fund<upindex_t>> seg4_sub;
for (uint i = 0; i < 5114; ++ i) {
restore_image(seg2, "seg2"); restore_subimages(seg2_sub, "seg2");
restore_image(seg3, "seg3"); restore_subimages(seg3_sub, "seg3");
restore_image(seg4, "seg4"); restore_subimages(seg4_sub, "seg4");
if (true) {} // тест №1, использует seg2 и seg2_subif (true) {} // тест №2, использует seg3 и seg3_subif (true) {} // тест №3, использует seg4 и seg4_sub
}
1. Определять вектора хочется за циклом для предотвращения постоянных аллокаций.
2. Каждый из тестов может быть выключен (на самом деле их много).
3. restore_image() и restore_subimages(), тяжелая и очень времязатратная функция (чтение граф. объектов с графика).
4. Если ни один из тестов не использует seg2, например, то хочется в одно действие убрать и определение, и соответствующий restore...(), для предотвращения ситуации, когда vector определён, но пустой из-за закомментированного restore...(), что даст ошибочные результаты.
Просто комментируем ненужные segx в DEFSEG_LIST. Это сгенерит то же, что и в первом коде. Вообще жаль, что компилятор не умеет показать выхлоп процессора (аналог gcc -E).
IsInf() и IsNaN() рабочие,
IsEqual() и IsZerro() под вопросом, нагугленные из неких источников как "trick for double"
IsNan() работает, а IsInf() нет
С каких пор денормализованные числа стали бесконечностью?
Ну и все эти сравнения с epsilon - epsilon нужно увеличивать пропорционально операндам. Да и вообще, нет здесь универсального рецепта, вот я в качестве epsilon испоьзую Point (с округлением оперндов), сравнивать разницу с DBL_EPSILON желания не возникает (да и не нужно).
Ну и все эти сравнения с epsilon - epsilon нужно увеличивать пропорционально операндам. Да и вообще, нет здесь универсального рецепта, вот я в качестве epsilon испоьзую Point (с округлением оперндов), сравнивать разницу с DBL_EPSILON желания не возникает (да и не нужно).
нашел статью, которую вчера с ТВ читал https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
да, нужно другой пример использовать где задавать точность сравнения
IsNan() работает, а IsInf() нет
С каких пор денормализованные числа стали бесконечностью?
нормализация в MQL вроде до 8-го знака, т.е. если NormalizeDouble() добавить в IsInf(), результат все равно будет не лучше
нормализация в MQL вроде до 8-го знака, т.е. если NormalizeDouble() добавить в IsInf(), результат все равно будет не лучше
Нормализация в мкл это совсем не то, я не знаю зачем функцию так назвали. https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0
Показывает, сколько в Терминале всего (с момента запуска) было отправлено успешных синхронных торговых приказов (OrderSend) и сгенерировано асинхронных.
Использую в Тестере (в конце), чтобы понять, сколько раз модифицировал ордера.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
OnTick() не работает в экземпляре класса?
fxsaber, 2019.10.31 23:45
Наследуйтесь от BASE, тогда методы OnTick в классах будут вызываться автоматически.
Пример использования X Macro (не обессудьте за непонятные типы, выдрал из рабочего кода. Вектор - динамический массив):
Например:
1. Определять вектора хочется за циклом для предотвращения постоянных аллокаций.
2. Каждый из тестов может быть выключен (на самом деле их много).
3. restore_image() и restore_subimages(), тяжелая и очень времязатратная функция (чтение граф. объектов с графика).
4. Если ни один из тестов не использует seg2, например, то хочется в одно действие убрать и определение, и соответствующий restore...(), для предотвращения ситуации, когда vector определён, но пустой из-за закомментированного restore...(), что даст ошибочные результаты.
Что делать?
Просто комментируем ненужные segx в DEFSEG_LIST. Это сгенерит то же, что и в первом коде. Вообще жаль, что компилятор не умеет показать выхлоп процессора (аналог gcc -E).
Иногда при генетической оптимизации достаточно первых нескольких тысячей проходов, чтобы уже понять исход более-менее.
Когда автоматически запускаешь много оптимизаций, то хочется, чтобы это все отработало побыстрее. Поэтому требуется механизм прерывания оптимизации.
Применение.
Инструкция открытия чарта с Null-символом.
Если во время определения класса со статическими полями тут же создается его объект, будет ошибка компиляции.