Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1885 1...187818791880188118821883188418851886188718881889189018911892...2748 Новый комментарий Mihail Matkovskij 2022.01.25 21:49 #18841 Владимир Казаков #: Разложил выражения на действия... и о чудо теперь результаты одинаковые выдает!!? значит все таки с приведением типов что то не так работает, как мне бы хотелосьиз знатоков и понимающих может кто то пояснить в чем все же была проблема?!ну чтоб не повторять ошибок)) ПС: вот в таком формате выражение то же стало работать одинаково методом исключения получилось ерундило приведение инт к дублю надеюсь я верно все понял double a = (double) ((d*pow(10,_Digits-2))*(180/M_PI)*(double) coefAngle); double a = (double) ((d*pow(10,_Digits-2))*(180.0/M_PI)*(double) coefAngle); Andrei Sokolov 2022.01.26 19:30 #18842 Приветствую, подскажите, пожалста, робот, мт5. Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах. Как такое "принято" делать? Vitaly Muzichenko 2022.01.26 19:42 #18843 Andrey Sokolov #: Приветствую, подскажите, пожалста, робот, мт5. Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах. Как такое "принято" делать? ArraySetAsSeries Andrei Sokolov 2022.01.26 19:43 #18844 Vitaly Muzichenko #: ArraySetAsSeries Спасиб. те это не только в индикаторах, но и в роботах работает? Vitaly Muzichenko 2022.01.26 19:55 #18845 Andrey Sokolov #: Спасиб. те это не только в индикаторах, но и в роботах работает? Не знаю вашу задачу, но массив переворачивает Andrei Sokolov 2022.01.26 19:57 #18846 Vitaly Muzichenko #: Не знаю вашу задачу, но массив переворачивает Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах. те нужно, чтоб как в индикаторах, значения по индексам соответствовали свечам после появления новых свечей. Vitaly Muzichenko 2022.01.26 20:00 #18847 Andrey Sokolov #: Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах. те нужно, чтоб как в индикаторах, значения по индексам соответствовали свечам после появления новых свечей. Попробуйте, должно работать Andrei Sokolov 2022.01.26 20:21 #18848 Vitaly Muzichenko #: Попробуйте, должно работать вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет. #property strict int bars; double arr[]; int OnInit()//////////////***OnInit()****///*************OnInit()*******/////////***/////////////////////OnInit() { Comment(""); bars = Bars(NULL, 0); bool series = ArraySetAsSeries(arr, true); int size = ArraySize(arr); int res = ArrayResize(arr, bars); arr[0] = 300; return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+ void OnDeinit(const int reason)//////////////**////////*OnDeinit()****////////////////////*************OnDeinit() { Comment(""); }//+------------------------------------------------------------------+ void OnTick()//////////////***OnTick()****///*************OnTick()**********/////////////////////////////OnTick() { if(bars!=Bars(NULL, 0)) { bars=Bars(NULL, 0); int res = ArrayResize(arr, bars); } Comment(TimeCurrent(), " ", bars, " ", arr[0], " ", arr[1], " ", arr[2], " " , arr[3]); }//+------------------------------------------------------------------+ Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное. Обсуждение статьи "Жидкий график" Что-то не работает... у Ошибка или так и Vitaly Muzichenko 2022.01.26 20:45 #18849 Andrey Sokolov #: вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет. Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное. Переворачивает, но нет в этом смысла #property strict int bars; double arr[]={}; int OnInit()//////////////***OnInit()****///*************OnInit()*******/////////***/////////////////////OnInit() { Comment(""); bars = Bars(NULL, 0); int size = ArraySize(arr); int res = ArrayResize(arr, bars); arr[res-1] = 300; ArraySetAsSeries(arr, true); return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+ void OnDeinit(const int reason)//////////////**////////*OnDeinit()****////////////////////*************OnDeinit() { Comment(""); }//+------------------------------------------------------------------+ void OnTick()//////////////***OnTick()****///*************OnTick()**********/////////////////////////////OnTick() { static int res; if(bars!=Bars(NULL, 0)) { bars=Bars(NULL, 0); res = ArrayResize(arr, bars); } Print(res, " ", arr[0], " ", arr[1], " ", arr[2]); }//+------------------------------------------------------------------+ Заполнять нужно другим образом Alexey Viktorov 2022.01.26 21:09 #18850 Andrey Sokolov #: вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет. Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное. Да, штатное есть… Добавить в массив и удалить из массива. Массив должен быть динамическим. Точней ищите в документации, я не помню как они пишутся… 1...187818791880188118821883188418851886188718881889189018911892...2748 Новый комментарий
Разложил выражения на действия... и о чудо теперь результаты одинаковые выдает!!?
значит все таки с приведением типов что то не так работает, как мне бы хотелось
из знатоков и понимающих может кто то пояснить в чем все же была проблема?!
ну чтоб не повторять ошибок))
ПС: вот в таком формате выражение то же стало работать одинаково
методом исключения получилось ерундило приведение инт к дублю
надеюсь я верно все понял
Приветствую, подскажите, пожалста, робот, мт5.
Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах.
Как такое "принято" делать?
Приветствую, подскажите, пожалста, робот, мт5.
Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах.
Как такое "принято" делать?
ArraySetAsSeries
ArraySetAsSeries
Спасиб. те это не только в индикаторах, но и в роботах работает?
Спасиб. те это не только в индикаторах, но и в роботах работает?
Не знаю вашу задачу, но массив переворачивает
Не знаю вашу задачу, но массив переворачивает
Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах.
те нужно, чтоб как в индикаторах, значения по индексам соответствовали свечам после появления новых свечей.
Нужно чтоб в массиве, индексы совпадали со значением сдвигa относительно текущего бара, как в индикаторных буферах.
те нужно, чтоб как в индикаторах, значения по индексам соответствовали свечам после появления новых свечей.
Попробуйте, должно работать
Попробуйте, должно работать
вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет.
Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное.
вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет.
Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное.
Переворачивает, но нет в этом смысла
Заполнять нужно другим образом
вот так не работает. При ините записываю 300 в индекс 0, с появлением новой свечи должно быть 300 в индексе 1, но нет.
Могу сам написать "смещение " всего массива в цикле при новых свечах, но в языке для работы с графиками, возможно, есть что-то штатное.
Да, штатное есть… Добавить в массив и удалить из массива. Массив должен быть динамическим. Точней ищите в документации, я не помню как они пишутся…