Поймать момент закрытия свечи (бара)

 

Добрый день всем трейдерам-разработчикам! :)

Подскажите, пожалуйста, как определить момент закрытия свечи, получить цену этого закрытия и сразу же открыть позицию по этой цене?

Благодарен заранее :)

 

Вот так, в самом простейшем случае:

//задать в глоб. переменных
static int prevtime = 0;




int start()
{

if(Time[0] == prevtime)   return(0);//ждём появления нового бара
   prevtime = Time[0];//если появился новый бар , включаемся

// всё, что задается ниже - будет работать по "ценам открытия"
//нового бара, т.е. будет срабатывать в момент его появления
//на том графике, на кот. стоит советник
 
dreamcutter писал(а) >>

Добрый день всем трейдерам-разработчикам! :)

Подскажите, пожалуйста, как определить момент закрытия свечи, получить цену этого закрытия и сразу же открыть позицию по этой цене?

Благодарен заранее :)

Сам момент (время) закрытия и цена закрытия бара априори неизвестны.

Объяснякется это тем что нам неизвестно сколько тиков/сделок пройдёт за последние секунды/минуты ещё не закрытого бара.

Цена и время закрытия образуются с открытием нового бара, что и продемонстрировано в конструкции rid'а

 
Спасибо большое! Скажите, а это гарантирует мне, что я смогу открыть позицию по цене открытия свечи?
 
dreamcutter писал(а) >>
Спасибо большое! Скажите, а это гарантирует мне, что я смогу открыть позицию по цене открытия свечи?

Если применить конструкцию rid'a или аналогичную, то очень даже вероятно.

Если реквотами не отобьют или по другой причине отказа не будет.

 
dreamcutter >>:
Спасибо большое! Скажите, а это гарантирует мне, что я смогу открыть позицию по цене открытия свечи?

Можно по объему - открытие бара всегда имеет Volume==1 для тикового объема. В случае советника if(Volume[0] != 1 return;

 
Моя задача - максимально оперативно реагировать на закрытие (открытие) свечи. Подскажите, как лучше - через Volume или Time?
 
dreamcutter >>:
Моя задача - максимально оперативно реагировать на закрытие (открытие) свечи. Подскажите, как лучше - через Volume или Time?

Разница в том, что по объему ловится реальное открытие бара - если есть пропущенные тики в начале (например, переход пришелся на вычисления), то такой бар не обрабатывается. По времени же определяется факт того, что предыдущий тик относился к предыдущему бару, но НЕ гарантируется, что поступивший вслед - это ПЕРВЫЙ тик нового бара - т.е. открытие бара. Это будет просто первый пойманный тик нового бара, но не обязательно первый для бара.

Так что вы уж сами определитесь, что вам нужнее - обрабатывать бары, только если они пойманы в самом начале, или просто новые, в каком бы месте их новизна не определилась.

 
dreamcutter писал(а) >>

Добрый день всем трейдерам-разработчикам! :)

Подскажите, пожалуйста, как определить момент закрытия свечи, получить цену этого закрытия и сразу же открыть позицию по этой цене?

Благодарен заранее :)

расчитайте среднюю выхода тика в сек за последнюю минуту (5 мин, зависит от таймфрейма и т.п.) и откройте за среднюю величину до формирования бара думаю получите наиболее точное значение, но конечно изврат.

 
Svinozavr писал(а) >>

Можно по объему - открытие бара всегда имеет Volume==1 для тикового объема. В случае советника if(Volume[0] != 1 return;

Пётр, не всегда такая конструкция будет работать корректно.

Бывает значение Volume[] увеличивается не на единицу и даже не на 2, а больше, т.е можем перепрыгнуть через условие (Volume[0]==1)

 
goldtrader >>:

Пётр, не всегда такая конструкция будет работать корректно.

Бывает значение Volume[] увеличивается не на единицу и даже не на 2, а больше, т.е можем перепрыгнуть через условие (Volume[0]==1)

Дык я ж постом выше это упомянул:

Разница в том, что по объему ловится реальное открытие бара - если есть пропущенные тики в начале (например, переход пришелся на вычисления), то такой бар не обрабатывается.

Но подчеркнуть это лишний раз не помешает - если вы пропустили, то невомкуэленный чел и подавно.

Причина обращения: