Ошибки, баги, вопросы - страница 3168

x572intraday #:

  #define там, конечно, есть:

но это относится к другим строкам. Я же имел в виду совсем другие. https://www.mql5.com/ru/code/34280 — искать по "[el]". Но там массив по ссылке & — может, из-за этого?

посмотрел.
как и предполагал:

#define NUMBER 26

...


color ClrArray[NUMBER/2]={0x444444,0x616161,0x334432,
                          0x3c5c3b,0x41733f,0x418e3e,
                          0x31ab2b,0x30a774,0x18d3b8,
                          0x00d1ff,0x4fe3fc,0x1efffd,
                          0xf6f6f6};

color ClrAltArray[NUMBER/2]={0x590304,0x622a04,0x783c00,
                             0x8b5100,0xaa6f00,0xbd8d02,
                             0xda8300,0xf46c00,0xff6b59,
                             0xff848c,0xff9db6,0xffd8e2,
                             0xfff5f8};

color ClrAuxArray[NUMBER/2]={0x030359,0x040462,0x000078,
                             0x00008b,0x0000aa,0x0000c8,
                             0x0000da,0x0000f4,0x7855ff,
                             0xaf6eff,0xe469ff,0xfb7bd6,
                             0xff69ab};

ENUM_TIMEFRAMES PArray[NUMBER/2];

это не динамический массив, а статический. NUMBER это число  26, а не переменная. Изучите команды препроцессора.
других подстановок переменных при объявлении массива не обнаружил. 
так что - чудес не бывает.

Nikolai Semko #:

посмотрел.
как и предполагал:

это не динамический массив, а статический. NUMBER это число  26, а не переменная. Изучите команды препроцессора.
других подстановок переменных при объявлении массива не обнаружил. 
так что - чудес не бывает.

 Невнимательно смотрели... хотя оно и понятно — код-то большой. Я про совсем другие строки. Ищите:

PriceExtr[el]
TimeExtr[el]

Для el нет никакого #define.

 ...Хотя, есть такой вот код в struct TBuffer:

   double PriceExtremumFTZ[2];
   double TimeExtremumFTZ[2];

где объявляются статические массивы с числом 2, а потом передаются по ссылке &:

                     FindNearbyFractalsForFTZ(Buffer_Array[tf/2].PriceExtremumFTZ,
                                              Buffer_Array[tf-(UpOrDown-1)/2].PrepsBuffer[shift],
                                              Buffer_Array[tf/2].TimeExtremumFTZ,
                                              Buffer_Array[tf-(UpOrDown-1)/2].PrepTimesBuffer[shift],
                                              Buffer_Array[tf/2].bars_calculated,
                                              TFsSumVFlag,
                                              PArray[tf/2],
                                              ClrArray[tf/2],
                                              ClrAuxArray[tf/2],
                                              UpOrDown);
...
void FindNearbyFractalsForFTZ(double &PriceExtr[],
                              double PriceCur,
                              double &TimeExtr[],
                              double TimeCur,
                              int bars_calculated,
                              int visibility,
                              ENUM_TIMEFRAMES tf,
                              color clr,
                              color clr_aux,
                              char sign
                             )
Может, фокус именно в этом?
[Удален]
x572intraday #:

 Невнимательно смотрели... хотя оно и понятно — код-то большой. Я про совсем другие строки. Ищите:

Для el нет никакого #define.

 ...Хотя, есть такой вот код в struct TBuffer:

где объявляются статические массивы с числом 2, а потом передаются по ссылке &:

Может, фокус именно в этом?

Нет не в этом.

При объявлении статического массива, в скобках указывается его размер.

Он должен быть известен во время компиляции и он не может быть задан переменной.

При обращении к элементу массива, в скобках стоит индекс элемента.

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

x572intraday #:

 Граждане. Год назад зарелизил индикатор в КБ. Сейчас копнул — там аж в нескольких местах есть строки, где элементом массива абсолютно безмятежно служит переменная. Либо я вконец упоролся... В общем, кому интересно, могу показать.

Не элемент, индекс массива. Сперва запутался даже. Все верно, размерность целое число, индекс может быть переменной целой.

Koldun Zloy #:

Нет не в этом.

При объявлении статического массива, в скобках указывается его размер.

Он должен быть известен во время компиляции и он не может быть задан переменной.

При обращении к элементу массива, в скобках стоит индекс элемента.

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

 Точно! Я ж его не объявляю, а лишь доступаюсь к элементу по индексу. Совсем я того на старости лет.

 Набросил индикатор Fractals Билла Вильямса и Fractals из папки Examples:

Fractals1 vs Fractals2

 Модификация кода вторых:

start=rates_total-5;

(вместо 5 подставлял меньшие числа) ни к какому эффекту не привело. Модификация кода первых недоступна в принципе.

 Как прикажете всё это понимать? Это не мелочь и не ерунда какая-нибудь. Запаздывание отрисовки фрактала может неблагоприятно отразиться на принятии торгового решения.

 Как добиться последнего нижнего фрактала для второго случая?

 А что если первый — опережающий — вариант некорректный?

x572intraday #:

 Набросил индикатор Fractals Билла Вильямса и Fractals из папки Examples:

 Модификация кода вторых:

(вместо 5 подставлял меньшие числа) ни к какому эффекту не привело. Модификация кода первых недоступна в принципе.

 Как прикажете всё это понимать? Это не мелочь и не ерунда какая-нибудь. Запаздывание отрисовки фрактала может неблагоприятно отразиться на принятии торгового решения.

 Как добиться последнего нижнего фрактала для второго случая?

пока свеча не закрыта, то и нефик рисовать..правый вариант честнее

PS/ в оригинале Вильямса были дополнительные условия. но на них все забили болт

Maxim Kuznetsov #:

пока свеча не закрыта, то и нефик рисовать..правый вариант честнее

PS/ в оригинале Вильямса были дополнительные условия. но на них все забили болт

Какие? Книжку читал,, но что то пропустил видимо.

Valeriy Yastremskiy #:

Какие? Книжку читал,, но что то пропустил видимо.

https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/fractals

При выполнении функции HttpOpenRequestW (wininet.dll, internetlib.mqh) стало вылетать с ошибкой:

Раньше работало. А во встроенном WebRequest метод DELETE не реализован. Просьба реализовать или починить вызов wininet.dll.