Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Давайте, для начала, тогда уточним, что каждый из нас вкдадывает в понятие перерисовывание, а то, я чувствую, что мы это истолковываем по разному. Если Вы под этим имеете ввиду, что при каждом старте индикатора графики перерисовываются заново,
Если изменения вносятся только в значения индикатора на 0 - ом баре, а на остальных барах не меняются, то индюк нормальный.
Выше я пояснил, что если нет видимых изменений на предыдущих барах, это еще не значит, что все нормально, т.к. перерисовывается весь график по принципу работы самого МТ4, и эти изменения внутри цикла просто не всегда видны.
По-моему здесь какое-то излишнее усложнение. Ну допустим МТ4 перерисовывает график индикатора на каждом тике. Но это подробность программной реализации и это, имхо, правильно. Если индикатор не меняет значения буфера для всех баров, кроме текущего, то и после перерисовывания график (кроме может быть 0-й точки) будет тем же. Если алгоритм вычисления индикатора построен так, что его значение на N-ом баре не зависит от N (при N<>0), то зачем пересчитывать его заново ? Если же этот алгоритм зависит от N (то есть фактически зависит от значений цены на барах из промежутка [N-1,0] - будущего по отношению к N-ому бару), то значения на данном баре будут меняться при изменении его номера N. А значит будет меняться и форма всей кривой индикатора. Это и есть то перерисовывание о котором идет речь.
Что касается использования вейвлет-разложения, то оно воспроизводит кривую цены в точности и, казалось бы, с течением времени кривая не меняется. Однако, если при сглаживании отбросить коэффициенты самых высоких частот, то полученная сглаженная кривая очень сильно зависит от положения текущего бара. В результате хвост индикатора болтается какой бы он ни был длины. Об этом я и спрашивал.
И вы не ответили ничего ни про граничные искажения, ни про используемые вами граничные условия. Спрошу прямо: вы придумали что-то оригинальное для решения этих вопросов или используете известные методы ?
Выше я пояснил, что если нет видимых изменений на предыдущих барах, это еще не значит, что все нормально, т.к. перерисовывается весь график по принципу работы самого МТ4, и эти изменения внутри цикла просто не всегда видны.
1. МТ4 не пересчитывает, т.е. и не перерисовывает, график на каждом тике. (Исключение: програмист конкретного индикатора конкретно тупит.)
2. Нормальные индикаторы не изменяют свои значения для 1-го, 2-го и последующих баров независимо от того, что происходит на нулевом баре. Индикатор изменяющий значение для баров в прошлом тем самым правит историю, а значит в сад такой индикатор.
Но тема вейвелетов мне интересна. Мультивалютность кстати тоже. Душой и всем прочим чуствую, что и там и там, есть очень нехилые возможности.
Еще на эти темы можно посмотреть здесь, если ранее не читали: 'Эффективная торговая стратегия основанная на мультивалютном анализе нескольких ДЦ'
Спасибо, понял. Я тоже изначально все свои индикаторы пишу так, что буфер индикатора объявлен на глобальном уровне и в функции start() происходит расчет только последнего знавения. Для этого, естественно, подходят только такие индикаторы, которые не меняют своих значений в прошлом. И это полностью решает проблему перерисовывания истории.
А что из себя представляют ваши фильтры и какое отношение они имеют к вейвлет-преобразованию ?
1. Что является базисной функцией в Вашем вейвлет преобразовании ?
2. Как выставляется порог (правило по которым отсекаются малозначимые коэффициенты) ?
3. Обработка идет тиков, или баров (Close) ?
4. Каким образом индикатор собирает данные других валютных пар?
5. Как выполняется синхронизация, тики же приходят не синхронно ?
Спасибо, понял. Я тоже изначально все свои индикаторы пишу так, что буфер индикатора объявлен на глобальном уровне и в функции start() происходит расчет только последнего знавения. Для этого, естественно, подходят только такие индикаторы, которые не меняют своих значений в прошлом. И это полностью решает проблему перерисовывания истории.
А что из себя представляют ваши фильтры и какое отношение они имеют к вейвлет-преобразованию ?
В принципе, любой индикатор - фильтр, и вайвлет - преобразования, также осуществляют функцию фильтрации данных. Я Использую для фильтрации не только вайвлеты, но и полиномы, а также Зиг-заги, и им подобные, о которых я уже писал в других темах, использую только свои индикаторы.
1. Что является базисной функцией в Вашем вейвлет преобразовании ?
2. Как выставляется порог (правило по которым отсекаются малозначимые коэффициенты) ?
3. Обработка идет тиков, или баров (Close) ?
4. Каким образом индикатор собирает данные других валютных пар?
5. Как выполняется синхронизация, тики же приходят не синхронно ?
1. Чаще всего использую db и sym, но иногда и другие.
2. Эмпирическим путем.
3. Баров.
4. С помощью ф-ции iClose.
5. Синхронизирую все относительно инструмента на котором установлен индикатор, за счет опроса по приходу нового бара.
Спасибо, понял. Я тоже изначально все свои индикаторы пишу так, что буфер индикатора объявлен на глобальном уровне и в функции start() происходит расчет только последнего знавения. Для этого, естественно, подходят только такие индикаторы, которые не меняют своих значений в прошлом. И это полностью решает проблему перерисовывания истории.
А что из себя представляют ваши фильтры и какое отношение они имеют к вейвлет-преобразованию ?
Чтобы ответить на этот вопрос конкретно, надо хоть что-то знать о том как Вы организуете свои расчеты.
А общая рекомендация такая. Буферы и все массивы и переменные, которые не должны менять своих значений при перезапуске start(), надо объявлять вне start(), то есть в начале самого эксперта. Внутри start() имеет смысл объявлять только рабочие переменные, которые используются там для вспомогательных целей.
Расчетов за пределами функции start() у меня нет, кроме, конечно, предварительной подготовки данных в init() перед началом работы советника. В основном вся эта кухня опирается на соответствующим образом проработанный алгоритм, а не на место расчетов. Идея проста: при появлении нового тика пересчитываться должно только то, что изменилось, остальное не трогать.