При включении терминала вдруг выяснилось, что пропал некоторый последний период (точно сказать не могу, что-то ок. месяца) Событие произошло в середине марта.
//+------------------------------------------------------------------+ //| history.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() {int number_kotirovok=506231; //---- if(iBars("EURUSDm",PERIOD_M1)<number_kotirovok) MessageBox("Пропали котировки. Должно быть "+number_kotirovok+" Имеется в наличии "+iBars("EURUSDm",PERIOD_M1)); else MessageBox("Всё в порядке с котировками!"); //---- return(0); } //+------
number_kotirovok - это число баров котировок после восстановления из бэкапа и подкачки свежих данных.
Его буду просто вносить в скрипт ежедневно перед началом тестирования.
Конечно же этот скрипт - это полнейший примитив, сделанный как превентивная мера для своевременного обнаружения исчезновения котировок. А так в перспективе хотелось бы иметь нормальный скрипт с интеллектом, который бы точно знал по дням недели когда котировки точно должны быть, а когда нет. То есть он должен иметь какие-то внешние файлы с записью допустимых пропусков истории (например выходные дни и время сбоев на сервере брокера по историческим данным). И соответсвенно при поступлении новых данных он бы записывал времена пропусков во внешний файл а потом при своём запуске говорил бы о возможных пропажах котировок. Может быть кто-то мог бы такое сделать? Это было бы полезно всем!
"Вопрос о взаимосвязи котировок разных таймфреймов"
Я хотел добавить комментарий к нему на том сайте, но почему-то не удаётся добавить комментарий туда, хотя вроде бы и залогинился и окошко для ввода имеется. Ну да ладно, надеюсь, что автор скрипта Bagadul и этот форум читает также. Если этот скрипт доработать таким образом, чтобы он мог выводить данные по разрывам в следующем виде, представленном на картинке, то можно было очень просто обнаруживать внезапные потери котировок по какому-либо одному таймфрейму. То есть если на старшем таймфрейме котироки отсутсвуют, а на младшем имеются, то налицо аномальное явление (на картинке обведено красным).
Я конечно же потестировал работу скрипта на имеющейся истории и увидел, что в принципе дыры на разных ТФ в основном соответствуют друг другу. Я использовал следующие параметры, на мой взгляд наиболее рациональные для поиска разрывов. То есть минимальное время для разрыва выбрано в 10 минут.
extern int bars_ignore_M1 = 10;//3 // (по умолчанию)
extern int bars_ignore_M5 = 2;//3
extern int bars_ignore_M15 = 1;//2
extern int bars_ignore_M30 = 1;//2
Если данный скрипт будет доведён до реализации описанной выше идеи, то его наличие в МТ4 станет просто НЕЗАМЕНИМОЙ вещью для тех, кто действительно хочет получать при оптимизации экспертов актуальные параметры, а не что-то отфонарное, поскольку лично я уже 2 раза потратив достаточное количество времени на оптимизацию в результате имею неопределённость, а не ответ на вопрос об оптимальных параметрах эксперта. А всё это произвошло из-за поздно обнаруженной выборочной потери части данных котировок.
Ув. solandr
Это не аномалия
Renat 10.04.06 13:19
1. Если все нормально, то все данные для всех таймфреймов синхронизированы. НО каждый таймфрейм живет своей жизнью. Если кто-то удалит M1, то это никак не коснется остальных периодов.
поэтому нет необходимости представления всех таймфреймов в одном отчете, имхо
Скрипт holes_history_data_v2.mq4 реализован для представления отчета в формате .txt
Но в свете обнаружения непонятных исчезновений части котировок этим "кто-то" является МТ4. И мне лично задача по контролю исчезновений котировок нужна точно также как и собаке пятая нога. Возможно это особенности исключительно билда 191 и в 192 билде такого наблюдаться уже не будет? Но ведь мне нужно знать ответ на вопрос о достоверности результатов оптимизации именно сейчас, используя имеющиеся в реальности средства, а не то, что разработчики когда-нибудь пофиксят!
На самом деле я сейчас делаю следующее. Время от времени я распечатываю дыры по разным таймфреймам и сравниваю их совпадение держа в руках несколько листков бумаги. Если даже такого никогда не обнаружится (выпадение старших ТФ при наличии более младших), то в любом случае отчёт хуже от этого не станет, а наглядность представления данных только улучшится.
Действительно скрипт сделан для формата txt. И я прекрасно понимаю, что корректировка этого скрипта для вывода в указанную выше таблицу (CSV файл) по объёму работ сопоставима с созданием с самого начала уже написанного скрипта! Но если автор этого скрипта сможет написать новый скрипт для вывода данных в удобном виде, то данный скрипт будет ОЧЕНЬ востребован! И я думаю, что со стороны разработчиков будет очень рационально включить такой скрипт в стандартную поставку МТ4.
Не вижу разницы в количестве листов при распечатывании n-листов (данные по M1+M5+M15+M30+H1+H4) с одного файла от распечатывании n-листов с (данные по M1,M5,M15,M30,H1,H4) 6 файлов, получим теже n-листов
С этим не соглашусь, отчет от этого только усложнится и станет неудобочитаем, расположение дыр разных таймфреймов в горизонтальной плоскости отчета станет неэффективным за счет разности временных интервалов (представь, что на одну дырку в H4 может приходиться до 120 дыроr M1)
Данный скрипт носит информативный характер и не предполагает "раздачу" данных отчета для МТС, поэтому реализовываться в (CSV файл) не будет, почему?Если кто-нибудь использует данные несуществующих в чарте баров для МТС, то это больше похоже на подгонку МТС под историю, но это уже отдельная тема.
Если Ваша система устойчива, то ей до бороды небольшие дыры в короткие интервалов (для этого и существует в скрипте фильтр), а вот если реагирует, то тут три варианта, первый: эта МТС - полное дрм, второй: выкинуть или заштопать историю (загрузить новую), третий: неправильный.
С уважением.
Ваша оценка данного вопроса сильно преувеличена. При поиске дыр в котировках больших 10 минут Вашим скриптом (параметры
extern int bars_ignore_M1 = 10;
extern int bars_ignore_M5 = 2;
extern int bars_ignore_M15 = 1;
extern int bars_ignore_M30 = 1; )
мы имеем следующие результаты :
за период 10.2004-04.2006
H4: 6 дыр
H1: 15 дыр
M30: 18 дыр
М15: 24 дыры
M5: 28 дыр
М1: 28 дыр
Если Н4 имеет действительно немного дыр (часть из которых можно даже ещё и удалить списав на праздники), то количество дыр по остальным ТФ отличаются не более чем в 2 раза! А это вполне укладывается в достаточную наглядность представления данных. Для того чтобы организовать 120 дыр на М1 (длительностью от 10 минут и более) на 1 дыру в Н4 нужно специально преднамеренно это организовывать! Никакие случайные события, случившиеся самым естественным образом, такое количество дыр организовать не в состоянии (по данным за последние 1,5 года брокера InterbankFX).
Если Ваша система устойчива, то ей до бороды небольшие дыры в короткие интервалов (для этого и существует в скрипте фильтр), а вот если реагирует, то тут три варианта, первый: эта МТС - полное дрм, второй: выкинуть или заштопать историю (загрузить новую), третий: неправильный.
Я действительно не хотел бы поднимать эту уже измусоленно-зафлуженную тему о реагировании МТС на различные выборки котировок (при начале её обсуждения сразу же в течение короткого периода времени будет получено 3 страницы флуда в лучшем случае с повторением прописных истин, о которых уже неоднократно писалось в том числе и на этом форуме). Я в данной ветке поднял тему о контроле АКТУАЛЬНОСТИ (ДОСТОВЕРНОСТИ) котировок данных в свете обнаружения необъяснимых выборочных исчезновений котировок в МТ4. А это действительно очень РАЗНЫЕ темы! Поясню чуть подробнее для чего это нужно (хотя на мой взгляд уже и в самом первом посте это было описано). Представим себе до предела упрощённую ситуацию что имеется какая-то стратегия, которую оптимизируют на тестере (период М1(все тики)). При этом не обращают никакого внимания на то, что "кто-то" что-то "нечаянно" подтёр в котировках. Сидим, тратим изрядное количество времени на оптимизацию. И в итоге к примеру получаем оптимизированные параметры для прибыли стратегии в 45% годовых. Далее после этого мы так же "случайно" обнаруживаем, что в котировках имеются странные дыры, которых раньше определённо не было. Мы восстанавливаем отсутствующие котировки из бэкапа истории и проводим повторную оптимизацию параметров, тратя ещё раз такое же изрядное количество времени. В итоге мы имеем немного изменённые параметры (в пределах 5%) при которых стратегия даёт 60% годовых (670 сделок за 1,5 года). Вопрос следующий "Какие параметры стратегии выберете Вы для игры на РЕАЛЬНЫЕ деньги?" Или же для вас разница в 15% годовых абсолютно ничего не значит? В банках люди держат деньги всего лишь за 7% в год, а здесь мы можем выбросить на ветер целых 15% только из-за того, что "кто-то" что-то "нечаянно" подтёр в котировках! Не знаю как Вам, но я лично при наличии такого факта не остановлю поиски оптимальных параметров системы до тех пор пока не буду уверен в том, что имея в наличии только те возможности, которыми располагаю в НАСТОЯЩЕЕ время (текущий билд МТ4), что МТС с такими-то параметрами ДЕЙСТВИТЕЛЬНО могла получить такую-то прибыль на таком периоде времени. Ведь при наличии дыр в истории котировок параметры стратегии будут затачиваться под те же самые дыры, которых в РЕАЛЬНОСТИ в тот самый период не было! И соответсвенно в итоге вы получите НЕДОСТОВЕРНЫЕ данные, отличающиеся от того, что могло бы БЫТЬ В РЕАЛЬНОСТИ! Вот и всего навсего (То есть вопрос о том сливает стратегия или не сливает при разных подборках котировок в данной ветке вообще не ставился.)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Время от времени происходит выборочное исчезновение части истории котировок.
Например сегодня из минутной истории за последние 1,5 года внезапно исчезли котировки за февраль. При этом за январь и далее за март котировки присутствовали.
Это было обнаружено случайно после того как оптимизируя параметры эксперта затем захотелось посмотреть график баланса. При полученных оптимальных параметрах эксперта во время оптимизации и при записи соответствующих данных по оптимизации (кол-во сделок, прибыльность, математическое ожидание выигрыша и т.д.) я запустил эксперта для построения графика баланса и обнаружил резкое расхождение. То есть расхождение оказалось не только в разнице полученной прибыли (примерно в 2 раза), но также и в самом кол-ве сделок и так далее! При просмотре результатов работы эксперта было обнаружено, что сделок за февраль этого года вообще не было, хотя стратегия имеет в среднем 1-2 сделки в день. Потом посмотрев на график котировок я увидел, что котировок февраля НЕТ!!! Куда они делись, если вчера во время оптимизации были? Я естественно восстановил котировки от февраля месяца из архива. Но проблема от этого разумеется не исчезла. Примерно такая же ситуация была у меня уже неделю назад когда тестер начал показывать какой-то резко отфонарный результат по непонятной причине. И тогда также восстановление истории котировок решило проблему. Может быть для МТ4 история M1 размером чуть более полумиллиона баров является излишне чрезмерной? Какие могут быть предположения у разработчиков? Почему время от времени исчезает часть истории котировок? Если какие-то проблемы с жёстким диском, то почему не рушится весь файл котировок сразу? Никакие другие программы на компьютере проблем чтения-записи файлов пока что не показывают.
В связи с этим у меня возник такой вопрос. Можно ли каким-либо способом определить актуальность имеющейся истории котировок? То есть например запустить какой-нибудь скрипт, который мог бы входить в стандартный набор МТ4, который мог бы показать сколько баров истории отсутствует по непонятной причине и создать файл по отсутствующим барам. Проблем с созданием такого скрипта будет вполне достаточно, но его существование сможет сэкономить кучу времени, потраченного на оптимизацию параметров по некорректной истории котировок.
А может быть такие проблемы существуют только на моём компьютере и никто более с ними не встречался? Брокер InterbankFX. Сразу отмечу, что проблемы с исчезновением части истории котировок начали возникать с того самого дня, когда они запустили новый сервер в конце марта. Раньше таких проблем я не замечал! Что можно предположить в таком случае?