Какие приёмы и методы могут использоваться в мультифреймовых индикаторах для предотвращения получения красивой картинки из-за подглядывания в будущее на старших ТФ ? - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вроде да. Только к bar_Shift_W1 еще бы добавить 1, чтобы был сформированный бар.
Зачем обращаться к предыдущему недельному бару, если он берёт цену открытия?
в личных библиотеках, при обращении к таймсериям и им подобным данным, номер бара "по умолчанию" = 1. Хотя актуальный 0.
просто значения индикаторов на незакрытых барах не являются полностью определёнными.
double daily_macd=D1[MACD]; // это MACD на вчера
можно дёрнуть D1[MACD][0], но это неправильно, в последнем дне меньшее число часов чем в других, это немного не MACD совсем.
вообще, надо учитывать, что при обращении к другим таймфреймам стоит добавлять 1 к индексам, чтобы не учитывать в них "незакрытый бар".
В OnCalculate индикаторов, чтобы не обманывать самого себя - обращения через время, то есть сначала получаем индекс ТФ через время и добавляем 1.
Если так не делать, то картинка получается очень красивой, но совершенно бесполезной
PS/ но до нашего кодо-спамера такое не доходит и кодобейз забита кривыми мультитф.
Зачем обращаться к предыдущему недельному бару, если он берёт цену открытия?
Да, не обратил внимания, тогда не надо 1.
Лучше вообще не заморачиваться на цены открытия.
Вроде да. Только к bar_Shift_W1 еще бы добавить 1, чтобы был сформированный бар.
Значит вы считаете, что цену открытия текущего бара старшего ТФ использовать нельзя?
Да, не обратил внимания, тогда не надо 1.
Лучше вообще не заморачиваться на цены открытия.
Что значит не заморачиваться? А если мне цена открытия текущего бара старшего ТФ нужна для расчёта сигнала?
в личных библиотеках, при обращении к таймсериям и им подобным данным, номер бара "по умолчанию" = 1. Хотя актуальный 0.
просто значения индикаторов на незакрытых барах не являются полностью определёнными.
double daily_macd=D1[MACD]; // это MACD на вчера
можно дёрнуть D1[MACD][0], но это неправильно, в последнем дне меньшее число часов чем в других, это немного не MACD совсем.
вообще, надо учитывать, что при обращении к другим таймфреймам стоит добавлять 1 к индексам, чтобы не учитывать в них "незакрытый бар".
В OnCalculate индикаторов, чтобы не обманывать самого себя - обращения через время, то есть сначала получаем индекс ТФ через время и добавляем 1.
Если так не делать, то картинка получается очень красивой, но совершенно бесполезной
PS/ но до нашего кодо-спамера такое не доходит и кодобейз забита кривыми мультитф.
Значит вы считаете, что цену открытия текущего бара старшего ТФ использовать нельзя? Добавляем 1 к чему? Чтобы получить что? Знаком с понятием индекс бара, но не знаком с понятием индекс ТФ.
Значит вы считаете, что цену открытия текущего бара старшего ТФ использовать нельзя? Добавляем 1 к чему? Чтобы получить что?
предположим что рабочий таймфрейм M5, сейчас 10:38, нужно нечто на 9:17 от H1
чтобы получить данные H1, берём iBarShift(_Symbol,PERIOD_H1,"9:17") и добавляем 1, получаем индекс бара H1 уже закрытого к моменту 9:17. Вот по нему уже можно брать в рассчёт данные бара и индикаторов.
предположим что рабочий таймфрейм M5, сейчас 10:38, нужно нечто на 9:17 от H1
чтобы получить данные H1, берём iBarShift(_Symbol,PERIOD_H1,"9:17") и добавляем 1, получаем индекс бара H1 уже закрытого к моменту 9:17. Вот по нему уже можно брать в расчёт данные бара и индикаторов.
Давайте поконкретней, речь идёт о мультифреймовом индикаторе и мы находимся внутри цикла перебора индекса бара текущего младшего ТФ. И там мы не используем константы типа "9:17".
И вообще о какой единице речь, разве индексы двух соседних баров старшего ТФ отличаются на единицу? Ведь находясь внутри цикла перебора индекса бара текущего младшего ТФ, мы индекс бара старшего ТФ выражаем через индекс бара текущего младшего ТФ. А стало быть добавление 1 не даст значение индекса предыдущего бара старшего ТФ. Добавлять надо не 1, а число, равное количеству баров текущего младшего ТФ, содержащихся внутри бара старшего ТФ.
Давайте поконкретней, речь идёт о мультифреймовом индикаторе и мы находимся внутри цикла перебора индекса бара текущего младшего ТФ. И там мы не используем константы типа "9:17".
И вообще о какой единице речь, разве индексы двух соседних баров старшего ТФ отличаются на единицу? Ведь находясь внутри цикла перебора индекса бара текущего младшего ТФ, мы индекс бара старшего ТФ выражаем через индекс бара текущего младшего ТФ. А стало быть добавление 1 не даст значение индекса предыдущего бара старшего ТФ. Добавлять надо не 1, а число, равное количеству баров текущего младшего ТФ, содержащихся внутри бара старшего ТФ.
Что значит не заморачиваться? А если мне цена открытия текущего бара старшего ТФ нужна для расчёта сигнала?
Если нужна именно цена открытия, это другое дело.