как узнать открылся новый бар

  • Автор темы Автор темы 165
  • Дата начала Дата начала

165

Местный знаток
привет всем.
сразу не смейтесь над просьбой, просто появилась небольшая проблемка и меня прямо поставила в ступор. точнее я могу ее решить, но это сильно увеличит код, ну и само врермя выполнения проги. ну теперь о самой проблеме:
в индикаторе использую обращение к разным валютным парам и к разным таймам (вообщем мультивалютник такой). создание нового бара привязал к текущей валюте и тайму. сделал на времени открытии 0 бара. если например х не равно времени открытия 0 бара, то у нас новый бар.
Все бы ничего, но вот допустим на текущей паре появился новый бар, а на других бывает еще не создался и получается, что выдает мне информацию не первого бара, а второго.
понятно, что можно ввести переменную на каждую валютную пару и проверять время открытия, но может есть метод попроще?
если не совсем понятно Все изложил спрашивайте, просто пишу с планшета, а тут не рисунок нормально вставить не могу.
 

eevviill

Заблокирован
привет всем.
сразу не смейтесь над просьбой, просто появилась небольшая проблемка и меня прямо поставила в ступор. точнее я могу ее решить, но это сильно увеличит код, ну и само врермя выполнения проги. ну теперь о самой проблеме:
в индикаторе использую обращение к разным валютным парам и к разным таймам (вообщем мультивалютник такой). создание нового бара привязал к текущей валюте и тайму. сделал на времени открытии 0 бара. если например х не равно времени открытия 0 бара, то у нас новый бар.
Все бы ничего, но вот допустим на текущей паре появился новый бар, а на других бывает еще не создался и получается, что выдает мне информацию не первого бара, а второго.
понятно, что можно ввести переменную на каждую валютную пару и проверять время открытия, но может есть метод попроще?
если не совсем понятно Все изложил спрашивайте, просто пишу с планшета, а тут не рисунок нормально вставить не могу.
http://forexsystemsru.com/indikatory-foreks/69427-indikatory-ot-eevviill-5.html#post596494
Open on new bar
 

165

Местный знаток
http://forexsystemsru.com/indikatory-foreks/69427-indikatory-ot-eevviill-5.html#post596494
Open on new bar

Ну я же написал, что как раз и использую такой способ. Но способ подходит к текущей валюте, допустим на евро/доллар появился новый бар, это не значит что на паре фунт/доллар появился новый бар и при обращении к допустим iClose("GBPUSD",15,1) мы получим значение не последней закрытой свечки.
 

eevviill

Заблокирован
Ну я же написал, что как раз и использую такой способ. Но способ подходит к текущей валюте, допустим на евро/доллар появился новый бар, это не значит что на паре фунт/доллар появился новый бар и при обращении к допустим iClose("GBPUSD",15,1) мы получим значение не последней закрытой свечки.
А при обращении к iTime("GBPUSD",15,0)?
Да. Надо на отдельную пару отдельную переменную. Проще не будет.
 
  • Like
Реакции: 165

165

Местный знаток
А при обращении к iTime("GBPUSD",15,0)?
т.е. предлагаешь для GBPUSD сделать еще переменную, например
prevtime1 = iTime("GBPUSD",15,0) и дальше сверяем, появился новый бар мы увидим.
Но в своем первом сообщении я описал уже такой способ и назвал его сложным, так как у меня обращение ко всем парам которые есть в терминале, а это повлечет что переменных prevtime будет довольно большое количество. Ну конечно это не так сложно, но забивает код. Вот и думал, может есть какой более простой способ узнать на другой валютной паре появился новый бар или нет.
 

Ugar

Гуру форума
Создать массивы или структуру величина 1 измерения = количеству символов.
В строчном массиве символы, в временном время последнего обращения по символу, в булевом флаг нового бара по символу.
В цикле перебрать все символы в поиске нового бара. Если по символу новый бар открылся, взвести соответствующий флаг в массиве. Если все флаги взвелись, значит по всем парам открылся новый бар - выдать сигнал и сбросить все флаги.
 
  • Like
Реакции: 165
Верх