Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1074

 
Artyom Trishkin:

А ты распечатай числовые значения флагов. Общий флаг должен содержать в себе все значения нужных флагов. А чему равно OBJ_PERIOD_H3-1 ? Если сумме всех флагов, что до него - тогда - да, а если нет, то где-то косяк.

Не... Я тут как-то в одной теме общался по поводу флагов и экспериментировал над такими строками

Print("summa_flag = ", 1 | 2 | 4);

даёт сумму 7

а

Print("summa_flag = ", 1 | 2 | 3);

даёт только 3


Добавлено:

Вот смотри, флаг 4... сумма до него 3.

флаг 16... сумма до него 15

и так далее.

 
Alexey Viktorov:

Не... Я тут как-то в одной теме общался по поводу флагов и экспериментировал над такими строками

даёт сумму 7

а

даёт только 3

Естественно. Всё верно тут.

Каждый последующий флаг имеет, обязан иметь значение больше предыдущего в два раза.

А вводя вместо 4 значение 3, ты тем самым продублировал первые два флага: 1 и 2
 
Alexey Viktorov:
Конечно. Всего одна короткая строка. Только надо определить какой старший ТФ в списке флагов.

У нас работает! Отличное решение!

 
Anzhela Sityaeva:

У нас работает! Отличное решение!

Это если только вам нужно чтобы всё было видимым ДО самого старшего таймфрейма. Как только захотите убрать любой из тех, что находятся до старшего, то ничего не выйдет с такой конструкцией.

ЗЫ, простите, а "Вы", "У нас" - это "наше величество"?

 
Artyom Trishkin:

Это если только вам нужно чтобы всё было видимым ДО самого старшего таймфрейма. Как только захотите убрать любой из тех, что находятся до старшего, то ничего не выйдет с такой конструкцией.

Артём, всё получится.

Например надо отобразить все младшие кроме М15...

Тогда будет

ObjectSetInteger(ch_id, name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H3-1-OBJ_PERIOD_M15);
 
Alexey Viktorov:

Артём, всё получится.

Например надо отобразить все младшие кроме М15...

Тогда будет

Ну так... а я о чём...

Продолжи - и покажи что будет если нужно отобразить все старшие до W1 включительно и один младший...

 
Artyom Trishkin:

ЗЫ, простите, а "Вы", "У нас" - это "наше величество"?

ДА. Нас ведь двое.)))

 
Alexey Viktorov:

ДА. Нас ведь двое.)))

Ты путаешь своё второе "мы" - показал способ, работающий в одной только ситуации - только когда нужно отобразить ВСЁ: от, и до.., и не более.

А далее - потеря гибкости, и опять нужно перечислять, но уже ненужные флаги

 
Artyom Trishkin:

Это если только вам нужно чтобы всё было видимым ДО самого старшего таймфрейма. Как только захотите убрать любой из тех, что находятся до старшего, то ничего не выйдет с такой конструкцией.

ЗЫ, простите, а "Вы", "У нас" - это "наше величество"?

Нет, конечно, просто я тут не одна, и по большей части на мне общение... Партнеры не любители чатов и т.п....

 
Artyom Trishkin:

Ну так... а я о чём...

Продолжи - и покажи что будет если нужно отобразить все старшие до W1 включительно и один младший...

Уточни. Я не совсем понял.

Артём, с флагами я разбирался с твоей подачи. И пересчитывал все их не только программно, но и на калькуляторе. Уверяю тебя, всё будет работать. Только надо понимать из какого флага надо сколько вычесть, чтобы остались только нужные флаги.

Ну сам посчитай, сколько надо вычесть из 32 чтобы осталась сумма флагов 1|2|8

По сути, сам флаг 32 не содержит ни один из перечисленных флагов. Но если из него вычесть 1, то останется сумма флагов 1|2|4|8|16 = 31

Следовательно если имеем флаг 32 который не нужен, из него надо вычесть 1 и из 31 вычесть сумму 4|16 тогда останутся только 1|2|8

Причина обращения: