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

 

есть такой вот ламерский вопрос.

когда делать ArrayResize массива объектов (указателей), то CheckPointer не возвращает ==POINTER_INVALID и !=POINTER_DYNAMC.
То есть массив указателей типа нормальные.

это баг ? 

помогает если сделать для всех новых element=NULL, но вроде ж как вновь созданные указатели должны возвращать хотя  бы  POINTER_INVALID
 мне кажется это баг. указатели ведь начальные пустые... (хоть и не явно заданные NULL при ArrayResize)

 
marketeer:
Еще по смежной теме вопрос: позиции sell отображаются на чарте синими линиями, а buy - красными. В МТ4 наоборот было. В чем идея?
Ошибка исправлена. Исправление будет доступно в следующем билде.
 
Rosh:
Я не вижу всей истории. Возможно, размер открытой на продажу позиции был значительно больше, чем затем было куплено. Таким образом, после операции покупки позиция все равно осталась короткой. Трудно гадать по скриншоту в данном случае как все было.
Можете сами посмотреть - это чемпионат 800170. Позиция открывалась сразу и закрывалась сразу полностью. Тем более должно быть красным, если бы продавалось больше, чем было куплено.
 

 Кстати, о фракталах... https://www.mql5.com/ru/code/30.

 Согласно определению, "фрактал вверх - это серия из минимум пяти последовательных баров, в которой перед самым высоким максимумом и за ним находятся по два бара с более низкими максимумами." Правильно ли я понимаю, что -2-ой и +2-ой максимумы не обязаны быть ещё ниже -1-ого и +1-ого соответственно? То есть главное, чтобы -2-ой, -1-ый, +1-ый, +2-ой максимумы были строго ниже 0-го (самый высокий, срединный), но между собой два левых, как и два правых максимума, могут иметь произвольную относительную высоту? Это первый вопрос.

 Второй вопрос: даже если на первый вопрос будет ответ, что крайние боковые фракталы не обязаны выстраиваться ниже предпоследних, описывая в совокупности строго пирамидку из 5 последовательных баров, то в любом случае для образования фрактала необходимо учесть не менее 5 последовательных баров. Тогда как объяснить вот это?

неужели и это фракталы?! 

 Но если и этому тоже найдётся разумное объяснение, то на закуску остаётся третий вопрос: разве могут быть на одном баре сразу фрактал вверх и вниз?

 оба фрактала на одном баре

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

Fractals
Fractals
  • голосов: 8
  • 2010.01.26
  • MetaQuotes Software Corp.
  • www.mql5.com
Фракталы (Fractals) — это один из пяти индикаторов торговой системы Билла Вильямса, позволяющий обнаруживать дно или вершину.
 

x100intraday:

не противоречит ли это не техническому определению, а здравому смыслу или какой-то скрытой логике?

так это же теханализ. он весь такой, противоречивый.
 
sergeev:
так это же теханализ. он весь такой, противоречивый.

 Тогда переформулирую вопрос: а то ли имел в виду Билл Вильямс в описании своей пятикомпонентной торогвой системы? А то он нам про Фому, а программисты, реализовавшие этот индикатор, - про Ерёму... Самого Билла мы тревожить не будем, поэтому вопрос адресован тем, кто хорошо знаком с его теоретическими трудами.

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

 

 Вообще, если вникнуть в довольно-таки простой код индикатора фракталов, то он симметричен относительно середины (собственно фрактала) как для High:

         if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
так и для Low. И, на первый взгляд, выделенные красными прямоугольниками зоны вроде как не должны были возникнуть...

 Подозрения на >/>=.

 

Добрый день.

Интересен такой момент: в mql4 переменная в конце блока { int var; } не уничтожается, отсюда вопрос правильно ли объявлять переменную в цикле ???

Пример:

for(int i = 0; i < 500; i ++)

    {

       int var; // что происходит с переменной при ретерациях?

    }

 

Извиняюсь что немного не по адресу, но где еще есть диалог с разработчиками я не знаю. 

Спасибо.

 
220Volt:

Добрый день.

Интересен такой момент: в mql4 переменная в конце блока { int var; } не уничтожается, отсюда вопрос правильно ли объявлять переменную в цикле ???

Пример:

for(int i = 0; i < 500; i ++)

    {

       int var; // что происходит с переменной при ретерациях?

    }

 

Извиняюсь что немного не по адресу, но где еще есть диалог с разработчиками я не знаю. 

Спасибо.

При каждой интерации цикла в этом случае переменная будет обнуляться. Тут зависит от задачи. если организовывается какой либо счетчик то переменную необходимо объявить за пределами цикла

int var=0;

for(int i = 0; i < 500; i ++)
{
 var++;
}
 
sergey1294:

При каждой интерации цикла в этом случае переменная будет обнуляться. Тут зависит от задачи. если организовывается какой либо счетчик то переменную необходимо объявить за пределами цикла

не будет

 

Справочник MQL5 / Основы языка / Переменные / Инициализация переменных      
  

Инициализация переменных

Любая переменная при определении может быть инициализирована. Если не произведена явная инициализация переменной, то значение, 
хранящееся в данной переменной может быть каким угодно. Неявная инициализация не производится.
Причина обращения: