//+------------------------------------------------------------------+ //| CheckObjectGetValueByShift.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ru/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/ru/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern string LineName="Sample"; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i,limit,firstBar=WindowFirstVisibleBar()-WindowBarsPerChart(); //---- if (ObjectFind(LineName)==0 && ObjectType(LineName)==OBJ_TREND) { if (counted_bars==0) limit=Bars; if (counted_bars>0) limit=Bars-counted_bars; limit--; Print("limit=",limit," firstBar=",firstBar); for (i=limit;i>=firstBar;i--) { ExtMapBuffer1[i]=ObjectGetValueByShift(LineName,i); if (i<0 && i>-10) Print("ObjectGetValueByShift(LineName,",i,")=",ObjectGetValueByShift(LineName,i)); } } else ArrayInitialize(ExtMapBuffer1,0); //---- return(0); } //+------------------------------------------------------------------+И сделал видеоинструкцию по его использованию :)
Я написал простой индикатор, который может дать ответ на этот вопрос.
И сделал видеоинструкцию по его использованию :)
Спасибо, Rosh. Это все понятно, хотя видео я почему-то не увидел.
И это не совсем то, что мне хотелось бы понять. Если проиллюстрировать,
что имелось ввиду: Time[1]-Time[2] - это практически таймфрейм. Time[0]
- постоянно растет.
Какое значение цены возвращается при расчете ObjectGetValueByShift(Name,0):
а) соответствующее Time[0], которое постоянно ползет и при этом
меньше или равно Time[1]-Time[2]?
б) соответствующее Time[1] плюс таймфрейм, то есть по достижении
промежутка Time[1]-Time[2], добавленного к Time[1], когда нулевой бар ДОЛЖЕН
ПОЛНОСТьЮ сформироваться?
Не хотел забамбуривать своими вроде как простейшими вопросами,
да вот не могу сам разобраться, сорри.
цена открытия, объем (который меняется), High и Low (которые могут меняться) и Close (который обязательно менятся , пока свеча не сформирована).
сами бы и написали не так уж это и сложно..
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите, пожалуйста... Функция ObjectGetValueByShift проектируется на заданный бар. Если этот бар - нулевой, какое значение возвращается - для текущего времени или для времени, когда этот бар должен сформироваться?
P.S. Искал, не нашел.