Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ilunga:
P.S. Я правильно понимаю, что в моем (и вашем) коде bar_info[1] - это максимум текущего бара?
А про текущий никто не говорил. :)
Я просто ваш пример переделал. если вам нужен именно текущий то нужно:
1. Определить направление серии массива (0 бар -текущий или самый певый).
если как у нас массив вынесен, то можно сделать один раз в блоке инициализации. Если прячем массив в функцию, то определяем по месту.
2. если массив как серия объявлен то текущий бар будет нулевым, а закрытый до этого 1.
По крайней мере как я помню.
Возможно я что-то упустил, но для того чтобы по текущему бару открывать (с учетом всех дополнений) нужно так.
Массив перенес в функцию!
А про текущий никто не говорил. :)
Я просто ваш пример переделал. если вам нужен именно текущий то нужно:
1. Определить направление серии массива (0 бар -текущий или самый певый).
если как у нас массив вынесен, то можно сделать один раз в блоке инициализации. Если прячем массив в функцию, то определяем по месту.
2. если массив как серия объявлен то текущий бар будет нулевым, а закрытый до этого 1.
По крайней мере как я помню.
Расширил массив до 3 элементов. Получил несостыковку текущей цены и того, что в нем находится. Скорее всего причина в этом
Результаты (тестирование проводилось на GBPUSD):
Получаем, что и Ask и Bid больше чем максимум нулевого и больше чем максимум второго бара
Если же тест запустить на EURUSD, то все нормально:
Такое ощущение, что при тесте "не по своей" паре получилась ситуация "информация по барам обновилась, а тика еще нету".
Расширил массив до 3 элементов. Получил несостыковку текущей цены и того, что в нем находится. Скорее всего причина в этом
Результаты:
Получаем, что и Ask и Bid больше чем максимум нулевого и больше чем максимум второго бара
Вы серийность массивов не учитываете, в своем коде. Не кто не поручиться за то что при таком исходе что 0 бар не окажется скажем в 2000 году.
Я код выше дал он для всех ТФ подходит при варианте с массивом.
Там вот этот код не зря дан
Если же вам нужен только дневной ТФ (D1) для определения максимума бара и вовсе не нужно возится с массивом, просто меняем первую часть функции на эту
Вы серийность массивов не учитываете, в своем коде. Не кто не поручиться за то что при таком исходе что 0 бар не окажется скажем в 2000 году.
Я код выше дал он для всех ТФ подходит при варианте с массивом.
Там вот этот код не зря дан
Вы серийность массивов не учитываете, в своем коде. Не кто не поручиться за то что при таком исходе что 0 бар не окажется скажем в 2000 году.
Я код выше дал он для всех ТФ подходит при варианте с массивом.
Там вот этот код не зря дан
ок, делаем массив динамическим.
Вместо ххх ставим по очереди true и false.
Результаты:
и
Порядок в массиве изменился, результат нет. Bid больше, чем максимум [0]-го бара массива
ArraySetAsSeries только для динамических массивов вроде?
Не помню если честно. Но результат того кода что я выше привел совпадает с тем что вот так получаем (По Евре цена открытия 1.24516 по Фунту 1.56721)
Хотя да, без ArraySetAsSeries нормально работает при таком раскладе
PS
т.е. если вам нужно получить текущий бар вы совершенно зря копируете в массив три бара вот в этой строке
PS
т.е. если вам нужно получить текущий бар вы совершенно зря копируете в массив три бара вот в этой строке
Спасибо! Данный вариант отрабатывается без ошибок и его полностью хватает в данном случае.
Однако остался подвисшим вопрос чуть выше, каким образом Bid может быть больше максимума =(
ilunga:
Однако остался подвисшим вопрос чуть выше, каким образом Bid может быть больше максимума =(
Для начала нужно определить за какой период берется этот максимум.
Если массив объявлен как double bar_info[n] то текущий бар в нем будет самым большим индексом.
при n = 2 вот этот код будет работать со вчерашним дневным баром
а вот этот с текущим
Т.е. в вашем случае при копировании нескольких баров для того чтобы достать текущий бар нужно устроить что-то вроде этого (хотя могут понадобиться доп. проверки на количество баров которые были скопированы в массив)
Для начала нужно определить за какой период берется этот максимум.
Если массив объявлен как double bar_info[n] то текущий бар в нем будет самым большим индексом.