Советники: Сборщик тиков (TickSave)

 

Сборщик тиков (TickSave):

Эксперт сохраняет тиковую историю по указанным символам в csv-файлы.

Author: Andrey Khatimlianskii

 
Спасибо
 

Здравствуйте, Андрей.

Подскажите, плз:

if (  NormalizeDouble( dBID_Current - dBID_Prev, curDigits ) < 0.00000001 && 
      NormalizeDouble( dBID_Prev - dBID_Current, curDigits ) < 0.00000001 ) { continue; }

1. Можно ли эту конструкцию заменить следующей (я ориентировался на Операции отношения):

if (NormalizeDouble(MathAbs (dBID_Current - dBID_Prev), curDigits) < 0.00000001 ) { continue; }

или следующей:

 if (NormalizeDouble((dBID_Current - dBID_Prev), curDigits) == 0) { continue; }

2. Я правильно понял, что если котировка не изменилась, то ее записи в файл не происходит?

 
Chen:
1. Можно ли эту конструкцию заменить следующей (я ориентировался на Операции отношения):
if (NormalizeDouble(MathAbs (dBID_Current - dBID_Prev), curDigits) < 0.00000001 ) { continue; }
Да, так можно.

Chen:

или следующей:

 if (NormalizeDouble((dBID_Current - dBID_Prev), curDigits) == 0) { continue; }
Нет, так нельзя. Почитайте про сравнение вещественных чисел, например - Вопрос к мастерам MQL4. Опять про Double Compare.

Chen:

2. Я правильно понял, что если котировка не изменилась, то ее записи в файл не происходит?

Да, именно так.
 
komposter:
...Почитайте про ...

Спасибо за наколку. Изучу более пристально. Я уже пересекался с этой инфой и была задняя мысль, что не случайно у Вас код усложнен, но наткнулся на явное от разработчиков (я ссылался на Операции отношения):

Два ненормализованных числа с плавающей точкой нельзя связывать операциями == или !=. Следует из одного числа вычесть другое и нормализованный результат сравнить с нулем.

Что собственно и сделал во втором варианте (убежав от необходимости разбираться в сравнениях вещественных чисел - я все таки не профи-кодер) и обратился к Вам за консультацией.
 
Chen:
Что собственно и сделал во втором варианте (убежав от необходимости разбираться в сравнениях вещественных чисел - я все таки не профи-кодер) и обратился к Вам за консультацией.
Да я, собственно, тоже не профи.
Просто знаю, что лучше сравнивать даблы с допуском.
 
В новой версии (03.01.2008) добавлено отключение записи информации о разрывах связи и остановке эксперта, и добавлены Год и Месяц в имя файла.
 

спасибо!

 

полагаю в логировании тиков нужно ставить запятую "," а не "пробел" и ";" по идее должно получиться не так как у вас

а так

 

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

Нужно чтобы работал в режиме каждого тика и Control Points.

 

Tick Save в настоящее время, в терминалах МТ4 после 600, не работает. Кукарекает алертом. В компляторе – 7 замечаний.  Автор, исправьте, пожалуйста, советник под новый терминал.

Файлы:
Причина обращения: