Анализ истории на наличие дыр и разрывов - скрипт для MetaTrader 4
Скрипт history_data_analysis_v3 проверяет историю на отсутствующие бары, определяет размер дыр, разрывов и составляет их перечень. Сразу скажу, что оригинал лежит здесь: history data analysis.
Я изменил формат выходного файла на *.csv и сильно переработал вывод вообще. Теперь после открытия в MS Excel файла с результатами работы скрипта получаем готовую таблицу для машинной оценки. В принципе, вывод сводки можно вообще отключить. В Excel анализировать данные и проще, и удобнее, и функций больше, хотя бы автофильтр данных.
Скрипт также может брать данные не только с графика, но и напрямую из hst-файла, что может быть полезным, например, при сборке истории из кусочков (пропустили через скрипт один hst, второй, третий, свели в одну таблицу, смотрим, какие дыры можно "залатать").
Перечень параметров:
| input_from_file | bool | true - анализ hst-файла, false - анализ графика; |
| input_file_name | string | имя входного файла. Должно иметь расширение hst. Игнорируется, если выбран ввод с графика; |
| input_file_in_history | bool | true - входной файл в текущей папке истории (каталог_терминала\history\server_name) терминала. false - входной файл в папке \\experts\files. Игнорируется, если выбран ввод с графика; |
| bars_ingnore | bool | true - будет использован фильтр минимального размера дыры. При этом дыры, размером меньше определённого значения, таковыми считаться не будут. false - дырой будет считаться любой отсутствующий бар; |
| min_hole | int | минимальное количество баров, которое будет считаться дырой. Игнорируется, если такой фильтр отключен; |
| breakup_min | int | критерий того, что дыра считается разрывом. Позволяет разбить сводку на две части - по дырам (hole_min - breakup_min) и разрывам (>=breakup_min). Должен быть больше либо равен hole_min. Если равен hole_min, каждая дыра считается разрывом; |
| gap_ignore | bool | true - будет использован фильтр минимального гэпа дыры, false - будут учитываться даже дыры с нулевым ценовым разрывом; |
| gap_min | int | минимальный ценовой разрыв, считаемый дырой. Игнорируется, если такой фильтр отключен; |
| report_summary | bool | true - в отчёт будет выведена сводка, false - не будет; |
| report_table | bool | true - в отчёт будет выведена таблица, false (не рекомендуется: из-за неё всё затевалось) - не будет; |
При прямом открытии Excel те, у кого в системе в качестве десятичного разделителя выбрана запятая, могут на месте дробных чисел получить даты, которые назад в числа уже не вернёшь. У меня уже много-много лет стоит точка, поэтому особо не заморачиваюсь этой проблемой. В самой таблице дробных чисел нет и быть не может.