Там такой индикатор, который работает в режиме "здесь и сейчас". Он историю не прорисовывает, он только на текущем баре, если условия подходящие, может стрелку поставить.
Как эту буферную стрелку уловить на текущем баре?
Алг:
1. сохранить список объектов и их кол.во
2. периодически (по таймеру, OnChartEvent ) сверять кол-во, если изменилось, то перебрать объекты в поисках искомого+нового на текущем баре. Заодно скорректировать список и кол-во
hint: при создании объекта получается событие OnChartEvent - можно прямо там смотреть. Но это ненадёжно, всё одно придётся периодически перепроверять всё
Алг:
1. сохранить список объектов и их кол.во
2. периодически (по таймеру, OnChartEvent ) сверять кол-во, если изменилось, то перебрать объекты в поисках искомого+нового на текущем баре. Заодно скорректировать список и кол-во
hint: при создании объекта получается событие OnChartEvent - можно прямо там смотреть. Но это ненадёжно, всё одно придётся периодически перепроверять всё
А там не объекты, там она буферная.
В том индикаторе, который отслеживается, пишет:
buf_1[0]=Low[0];
в моменты создания стрелок.
Алг:
1. сохранить список объектов и их кол.во
2. периодически (по таймеру, OnChartEvent ) сверять кол-во, если изменилось, то перебрать объекты в поисках искомого+нового на текущем баре. Заодно скорректировать список и кол-во
hint: при создании объекта получается событие OnChartEvent - можно прямо там смотреть. Но это ненадёжно, всё одно придётся периодически перепроверять всё
тыкай в текущий бар и сортируй - все объекты - объекты типа стрелка (код стрелки) и время установки этого объекта - есть объект - есть сигнал, как-то так
uchar ArrowCodeBuy = 233; //Arrow Code for Buy uchar ArrowCodeSell = 234; //Arrow Code for Sell datetime ObjBuyTime = 0; datetime ObjSellTime = 0; for(int o=0; o < objtotal; o++) { string NameObj = ObjectName(o); if((ObjectType(NameObj)==OBJ_ARROW)&&(ObjectGetInteger(0,NameObj,OBJPROP_TIME)>TimeCurrent()-((_Period*60*LookBack)+600))) { //Comment(NameObj); if((ObjectGetInteger(0,NameObj,OBJPROP_ARROWCODE)==ArrowCodeBuy)&&ObjectGetInteger(0,NameObj,OBJPROP_TIME)>ObjBuyTime) { SignalArrowB = true;ObjBuyTime=ObjectGetInteger(0,NameObj,OBJPROP_TIME); } if((ObjectGetInteger(0,NameObj,OBJPROP_ARROWCODE)==ArrowCodeSell)&&ObjectGetInteger(0,NameObj,OBJPROP_TIME)>ObjSellTime) { SignalArrowS = true;ObjSellTime=ObjectGetInteger(0,NameObj,OBJPROP_TIME); } } }
то есть индикатор запущен отдельно ?
был какой-то злобный хак - как через WinAPI вытащить данные из DataWindow (табличка, которая по Ctrl-D открывается)
где-то в дебрях форума или на просторах интернета видел такое
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как эту буферную стрелку уловить на текущем баре?