Индикаторы: Индикатор корреляции - страница 2

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ладно, вчера немного погорячились, наверно Вы тоже отмечали "День пограничника" как и я.
Не дадите ссылку на правильную синхронизацию баров,а то я тоже использую примерно такой способ синхронизации по последнему бару и все?
Ссылку не дам (тк ещё не встречал ни у кого), но метод опишу.
метод касается именно синхронизации разных инструментов, хотя может использоваться и для синхронизации запросто с разных ТФ.
Я занимался этой проблемой довольно долго, и даже в СД сделали багофикс по выявленным мной багам этого метода.
Проблема синхронизации связана с тем что на разных инструментах имеется разное количество баров. Примерно одинаково - это ложный критерий, всё должно быть точно. Бар в бар. Иначе теряется смысл синхронизации.
Второй аспект этой проблемы как отобразить бар если на текущем инструменте его нет?
Так вот суть метода проста: данные по инструменту запрашиваются строго по таймам...
а образец тайма берётся из стандартного буфера индикатора time[]. Таким образом вы всегда точно знаете что перед вами бар пришедший синхронно с баром на другом инструменте.
Опять же если такого бара в текущем инструменте нет, то вы не будуте его запрашивать. А если в запрашиваемом инструменте нет такого бара как образец то вы получите в count ноль и сможете нормально обработать это исключение, в зависимости от логики вашей программы.
Реализация синхронизации (на MQL4) для любого количества ФИ (отсюда):
По аналогии для двух символов (отсюда):
Т.е. все довольно просто. Другое дело, что классическое побаровое (постоянная временная дискретность) представление ценовых ВР не является единственным, тем более всегда правильным. Иногда крайне полезно синхронизировать ценовые ВР другого временного измерения. Т.е. внося нелинейные с точки зрения классического времени искажения. Соответственно, тогда и корреляция будет показывать нелинейные взаимосвязи двух классических цВР.Спасибо за помощь!
Был не прав признаю, не думал, что так сложно происходит синхронизация.
Попробую разобраться и прямо на этом индикаторе синхронизовать бары так как он мне очень нужен.
Спасибо всем за информацию!
Немного переписал индикатор. Теперь, по идее, он должен пропускать плохие участки истории.
Раз уж начали, прошу проверить на наличие ошибок :)
Выскажусь все же еще раз за необходимость для всех индикаторов алгоритмической оптимизации. А также за встроенный механизм расчета значений индикатора в память (файл), чтобы во время тестерной оптимизации индикатор не вычислял одно и то же, а брал уже готовые значения оттуда.
Алгоритмическая оптимизация для каждого индикатора своя. Для разных способов использования корреляции делал, например, так и так.
Считывание же из памяти заранее рассчитанных на всей истории значений индикаторов проделывал лишь только в своей считалке. Т.е. универсального механизма у меня нет, т.к. использую лишь свои решения, собранные совсем не красиво. Но т.к. ратую за улучшение всего и вся, было бы здорово иметь подобный универсальный механизм на случай оптимизатора тестера MT5, т.к. это дает ускорение на несколько порядков (опыт использования в своей считалке), т.е. затмевает Cloud по эффективности.
Приветик
Иногда я провожу время, искажения кодов других, как правило, результаты незавершенных или неполной программы, как нехватка времени и отсутствие навыков.
На этот раз я попытался бы исказить этот замечательный индикатор, и пытались сделать что-то вроде этого:
- Рисование просто линия, а не пунктирной заговор
- Чтобы добавить много символов, таких как
Затем, чтобы создать 2 варианта исходного кода:
- Визуальный вариант: цветной линии для каждого из валютных пар корреляции 1 толстой линией, которая является просто среднее из 7 линий ((A+B+C+D+E+F+G)/7)
- Без визуального вариант: всего 1 строку, то есть в результате приведенной выше формуле ((A+B+C+D+E+F+G)/7)
Практически все равно, что добавить 7 (или 8) оригинал Индикатор корреляции, но все суммируется таким образом, чтобы просто средние, как с версией, одна из которых 7 строк + 1 (в среднем), и другая версия с 1 линия (только в среднем).
что-то вроде этого:
По ряду причин искаженного кода не делать то, что я хочу сделать, потому что полностью логических ошибок.
Основная проблема заключается в буферы, синхронизации и рекурсивной отступ часть кода:
if(bars1>bars2) { minBars=bars2; bars2=bars1-bars2; etc...
+ а также другие логические ошибки.
некоторые Print() функции были добавлены, чтобы помочь в деле отслеживания значений переменных и return 0 инструкции были прокомментировал для того, чтобы найти, где код логически не получается.
код и файл