Форум » Статьи MQLabs » Детализация истории котировок » Ответить

Детализация истории котировок

Scriptong: Часть 1. Создан простой сборщик тиков, дополнительными опциями которого являются: 1. Отображение тикового графика 2. Создание нестандартных таймфреймов с периодом, кратным одной секунде. 3. Создание таймфреймов равновысоких свечей. Часть 2. Вторая версия сборщика тиков: 1. Одновременная работа двух и более индикаторов на одном и том же символе (настраивается пользователем) 2. Создание эквиобъемных графиков, вплоть до тикового. Также создана новая версия всеми любимого ZigZag с отображением статистической информации.

Ответов - 19, стр: 1 2 All

Balbesik: Добрый, вечер! Картинки прикреплять не умею. Возникшие вопросы решил задать здесь. Благодарность Скриптонгу! Индикатор TicksCollector_v2 В первую очередь хочу отметить, что касаемо графика равновысоких свечей это единственный индикатор (известный мне), находящийся в свободном доступе, позволяющий строить графики на которых работают советники. Меня интересует только такого вида график, т.к. позволяет работать в одной размерности по осям, что упрощает делать расчеты в индикаторах и не «мудрствовать» с безразмерными величинами (что не является решением, а так «от лукавого»). Пока трудно оценить, т.к. возникли следующие вопросы 1. Рис. Различия – http://shot.qip.ru/00ef73-3FK151opF/ Здесь не понятно, то ли сбой отображения, то ли корректное построение, т.к. вытекает из следующего. 2. Рис. Сбой – http://shot.qip.ru/00ef73-4FK151opG/ В процессе работы после быстрых движениях отображение показывает «ненормальный» бар, где H = O = C = L. Проверял на 2-х компьютерах (скорость приличная). Хотелось бы отметить, что у аналога - Синбар такого сбоя не фиксировалось ни разу. При моделировании ситуации путем отключения – включения интернета индикатор Начинает работу с начало (с «0»). Получить картинку, как в реале, не удалось и причина не понятна. 3. Рис Сбой_2 – http://shot.qip.ru/00ef73-3FK151opH/ Говорит о том, что запись в файл идет, а через открыть автономно график идет сбой. При этом в журнале фиксируются ошибка – ….. HistoryBase: …. errors in 'EURUSD313' Работа графика не всегда запускается на продолжение и накопить историю не возможно. Пожелание – разобраться с проблемой. Индикатор JustZigZag Очень интересный индикатор. В данной версии, на мой взгляд, сделан ближе к визуальному восприятию. Хотелось бы небольшую доработку для графика равновысоких свечей – «….Периодичность появления его экстремумов настраивается первыми двумя параметрами индикатора: i_pointsForReversal и i_percentsForReversal. Первый параметр указывает минимальную высоту свинга в пунктах, а второй - в процентах от предыдущего экстремума. Если значение параметра i_pointsForReversal больше нуля, то используется минимальная высота в пунктах, а значение второго параметра игнорируется. Для указания минимальной высоты свинга в процентах от цены предыдущего экстремума, первому параметру необходимо присвоить значение 0 или меньше. В этом случае будет использовано значение параметра i_percentsForReversal….» Дополнительно функцию включать i_pointsForReversal и i_percentsForReversal одновременно. Зная высоту бара и высоту для построения свинга практически решается много проблем, Например Рис. 5 минут – http://shot.qip.ru/00ef73-4FK151opI/ Это стандартный график 5 минут и построение JustZigZag экстремумов, а на равновысоких свечах это легко обходиться не дорабатывая индикатор JustZigZag. Не знаем заранее величину предыдущего свинга, а объединение двух параметров позволяет решать интересующие задачи. В качестве пожелания, для работы с индикатором, в коде добавить мин. 4 – 5 экстремумов (а не 2-х) с № бара и ценой. Возможность принта этих значений дало бы сразу понять, что там на графике сборщика тиков при сбое? P.S. Рис. Адрес и Адрес_2 – http://shot.qip.ru/00ef73-3FK151opJ/ и http://shot.qip.ru/00ef73-3FK151opK/ Это не обязательно вирус и в общем-то не страшно, но раньше заходя к Вам на форум такого не было. Один из этих адресов Ваш видимо, они чередуются на одном включении.

Balbesik: "...... В итоге к одному графику символа можно прикрепить индикатор, собирающий тики, а к другому графику (или к тому же самому графику) того же символа можно прикрепить индикатор с отключенной функцией сбора тиков. Такой тандем будет работать корректно. Один индикатор может генерировать нестандартные графики одного периода, а второй индикатор - другого периода ....." Этот момент я вообще не смог реализовать для разновысоких свечей. Может быть нужен какой - нибудь Виндос 8 или иные требования?

Scriptong: Balbesik пишет: В процессе работы после быстрых движениях отображение показывает «ненормальный» бар, где H = O = C = L. Проверял на 2-х компьютерах (скорость приличная). Этот момент описан в первой статье (см. рис. 4). Дело ведь не в скорости компьютера, а в том, как изменяется цена. К примеру, один тик был по цене 1.3200, а следующий - 1.3220. Размер равновысокой свечи выбран 10 пунктов. По этой причине та свеча, которая формировалась до тика 1.3220, прекращает свое формирование (не может свеча быть больше 10 пунктов) и остается с той высотой, которая была достигнута (в данном случае - 1 пункт). Следующая свеча начинает свое отображение с цены 1.3220. Между ними образуется "честный" геп, а не так, как в исходном синбаре, который рисует в этом гепе несколько свечей, которых на самом деле не было. Balbesik пишет: P.S. Рис. Адрес и Адрес_2 – http://shot.qip.ru/00ef73-3FK151opJ/ и http://shot.qip.ru/00ef73-3FK151opK/ Это не обязательно вирус и в общем-то не страшно, но раньше заходя к Вам на форум такого не было. Один из этих адресов Ваш видимо, они чередуются на одном включении. Написано же - исходящее соединение. Это означает, что шпион находится внутри компьютера. Его и нужно выловить. Balbesik пишет: "...... В итоге к одному графику символа можно прикрепить индикатор, собирающий тики, а к другому графику (или к тому же самому графику) того же символа можно прикрепить индикатор с отключенной функцией сбора тиков. Такой тандем будет работать корректно. Один индикатор может генерировать нестандартные графики одного периода, а второй индикатор - другого периода ....." Этот момент я вообще не смог реализовать для разновысоких свечей. Может быть нужен какой - нибудь Виндос 8 или иные требования? Нет, ничего сверхъестественного не нужно. Один индикатор подключается со значением параметра i_collectTicks = true, а другой - с i_collectTicks = false. В итоге индикаторы не будут конфликтовать. Да, еще нужно позаботиться о том, чтобы они обновляли разные автономные графики: параметры i_resultTimeTFInMinutes, i_resultPointsTFInMinutes и i_resultTicksTFInMinutes имели разные значения в каждой из копий индикаторов.


Balbesik: Scriptong пишет: Этот момент описан в первой статье (см. рис. 4). Дело ведь не в скорости компьютера, а в том, как изменяется цена. К примеру, один тик был по цене 1.3200, а следующий - 1.3220. Размер равновысокой свечи выбран 10 пунктов. По этой причине та свеча, которая формировалась до тика 1.3220, прекращает свое формирование (не может свеча быть больше 10 пунктов) и остается с той высотой, которая была достигнута (в данном случае - 1 пункт). Следующая свеча начинает свое отображение с цены 1.3220. Между ними образуется "честный" геп, а не так, как в исходном синбаре, который рисует в этом гепе несколько свечей, которых на самом деле не было. К сожалению Рис. Сбой – http://shot.qip.ru/00ef73-4FK151opG/ картинка плохо видна - такие бары, когда H=O=С=L идут до бесконечности. Попробуйте в процессе сбора тиков отключить интернет и включить через минут 15-20 (желательно не на флете) у Вас или не продолжит работу индикатор или получите все бары с H=O=С=L (плюс пойдет ошибка в журнале). Scriptong пишет: Нет, ничего сверхъестественного не нужно. Один индикатор подключается со значением параметра i_collectTicks = true, а другой - с i_collectTicks = false. В итоге индикаторы не будут конфликтовать. Да, еще нужно позаботиться о том, чтобы они обновляли разные автономные графики: параметры i_resultTimeTFInMinutes, i_resultPointsTFInMinutes и i_resultTicksTFInMinutes имели разные значения в каждой из копий индикаторов. Это я понимаю и делал, поэтому и задал вопрос о требованиях к компу. Например терминал ОАНДЫ (родной) без новой Явы не работает. У меня например советник, который должен делать оптимизацию, не работает правильно и не могу понять почему. Может быть какого-нибудь Пака_№ не хватает. Например Никита Кабанов предоставляет программу по СОТ со СМЕ там нужен 10 Эксель. Я не прошу разбираться в моих проблемах, я прошу посмотреть, т.к. эффект "ловиться" на 2 разных компах. P.S. Еще картинка по 33 на штатном графике - http://shot.qip.ru/00efZ0-3AD7h3Kl0/

Balbesik: Так, кажется проблема решается. Действительно, путем уменьшения количества баров в окне графика, все заработало и второй индикатор тоже "пошел". Тогда вопрос - историю мы берем с графика или скрипт преобразует файл в котором накапливается история. Если с графика, то какое мах возможное количество баров задавать?

Scriptong: Balbesik пишет: Тогда вопрос - историю мы берем с графика или скрипт преобразует файл в котором накапливается история. Если речь идет об индикаторе TicksCollector_v2, а под "историей" имеется в виду то, что отображается на автономном графике, то ответ: "На автономном графике отображается то, что сохранено в виде тиков в файлах .tks. То есть, сколько собрано тиков, столько и имеем истории нестандартных графиков." Balbesik пишет: Если с графика, то какое мах возможное количество баров задавать? На работу индикатора TickCollector_v2 количество баров на графике влияет лишь косвенно с позиции хватит/не хватит памяти. Если памяти не хватит, то он попросту не будет работать. Если же индикатор уже запущен, то количество баров уже не имеет никакого значения. P. S. Вообще при запуске любого индикатора следует учитывать, что независимо от его алгоритма, терминал МТ4 выделяет для индикатора память на всю доступную глубину истории. К примеру, если глубина истории 1 000 000 баров, то запуск индикатора с одним буфером приводит к выделению памяти на 1 000 000 ячеек для записи вещественных чисел. Каждое вещественное число занимает 8 байт. То есть памяти для такого индикатора выделяется на 8 Мб. Если у индикатора больше одного буфера, то памяти будет выделено в такое же количество раз больше. Поэтому при наличии ограниченного размера оперативной памяти (к примеру, 2Гб ОЗУ при работе даже с одним терминалом на глубокой истории - мало) следует позаботится либо о малом количестве окон графиков с индикаторами, либо об уменьшении количества видимых баров в окне графика. Для TicksCollector_v2, если требуется только собирать котировки, можно вообще указать глубину истории в 100 баров и закрыть вопрос о нехватке памяти раз и навсегда.

Balbesik: Надо было писать у себя в ветке, но Скриптонг правильно сводит в одно место. Суть – по индикатору TicksCollector_v2 - true не работает, идет конфликт. Отлично работает с true с разнесением по ТФ. Нет вопросов вообще. Сделать аналог по синбару не удалось, но машинка не хуже, а по работе с советниками лучше. Память «в данном случае не при делах» при не возможности работы 2-х графиков (сбои), спокойно без сбоев идет 8 на штатных. На этапе отработки нового индикатора считаю очень неплохо.

Scriptong: Balbesik пишет: Суть – по индикатору TicksCollector_v2 - true не работает, идет конфликт. Евгений, приведи пожалуйста больше сведений, которые помогут воспроизвести этот конфликт. Я, как не настраиваю, не могу найти каких-либо ошибок или конфликтов.

Balbesik: Scriptong пишет: Евгений, приведи пожалуйста больше сведений, которые помогут воспроизвести этот конфликт. Я, как не настраиваю, не могу найти каких-либо ошибок или конфликтов. Здравствуйте, Игорь! Я смотрю только равновысокие бары. Уменьшив количество баров в окне графика сначала пошел без сбоев один TicksCollector_v2. Попытка поставить второй TicksCollector_v2 с функцией false и другими i_pointsPerBar и i_resultPointsTFInMinutes, как на отдельный, так и на тот же штатный график приводило к появления со временем – случайным образом, сбоя в виде Н = О = С = L. Установка отдельно на разные штатные графики (М1, М 5, М 15, М 30, 1Н, 4Н, D1, W1) по индикатору TicksCollector_v2 с функцией true дало результат. Все полученные разные 8 графиков равновысоких баров стали работать без сбоев. Хотя закрыв терминал и повторно открыв не все «пошли» пришлось переустановить. Причин такой работы у себя не знаю. Я не понимаю в программировании, поэтому возможно пишу глупую версию, предполагаю, т.к. именно такой тип графика не имеет, как такового времени, работа индикаторов на одних формируемых данных (с функцией false) приводит к конфликту – время формирование баров разное. Писали, что после 500 билда в МТ4 стало 8 независимых потоков расчета. По повторному запуску, предполагаю, что все таки «дыра», т.к. помню дебаты на форуме «Хвостов», что эта проблема серьезная, здесь опять же согласование времени. Т.е. специфика графика. P.S. Бар – размах33 – колено 33 = одна база – задаваемый бар.

Scriptong: Вот теперь понятнее. Ошибку нашел. Предлагаю попробовать третью версию: http://files.mail.ru/82FE3848AA1347F6A8757B286196CD94 Если доступ через mail.ru не подходит, то скопировал еще и на zalil.ru: http://zalil.ru/34748154 Последовательность действий должна быть такой (пример для EURUSD): 1. Удалить файл EURUSD.tks из папки терминала experts\files, если он там есть. 2. Открыть два графика EURUSD. 3. Присоединить индикатор на первый график, изменив параметр i_convertToPoints на true, а i_pointsPerBar на необходимое кол-во пунктов для одной свечи. 4. Присоединить индикатор на второй график, изменив значения трех параметров на следующие: i_collectTicks = false, i_convertToPoints = true, i_resultPointsTFInMinutes = 315. Если требуется высота свечей, отличная от 10, то изменить значение параметра i_pointsPerBar на нужную высоту свечи. 5. Открыть автономно графики EURUSD, M313 и EURUSD, M315. Первое время свеча на автономных графиках будет одна (видна только половина), но со временем (когда цена сдвинется более чем на i_pointsPerBar пунктов) появится вторая свеча.

Balbesik: Игорь! Индикатор - классный (лучше версия 2), аналогов лучше для МТ4 не найдете.

Balbesik: Сейчас буду смотреть.

Balbesik: Еще раз, надо вникнуть и посмотреть - очень обширно. Вот работа на перспективу, на посмотреть - http://codebase.mql4.com/ru/9034 Все может поменяться. А ты дашь направление.

Balbesik: Поймал быстрое движение (Геп). Что получается - Версия 3 обрыв связи или перезагрузка терминала - начинается построение с начало (с "0"). Версия 2 хотя не все графики, но некоторые продолжали построение. Версия 3 при сбое с функцией true - сбой, но с функцией false - все нормально Версия 2 при сбое везде сбои. http://shot.qip.ru/00ennx-38eyNuJTu/ Реализация, если это возможно, сразу по истории построение графика, а в процессе сбор тиков (построение по истории не даст начинать с "0") - решает все проблемы. Версия 3 с режимом false и плюс история - будет готовый индикатор.

Genry: Админ и Коллеги! Есть предложение:Комната для дискуссий



полная версия страницы