[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 20

 
Dimka-novitsek:
Тьфу, не сглаженность, а Замедление. Вот десять:

Вот глянь, как в учебнике стохастик считают.

 

Chiripaha:

Текст привязываю к цене линии + 3*Point (т.е. ставлю чуть выше), но все равно, когда меняю размеры графика (окна) текст то выше линии, то ниже, то на уровне линии (скачет)... Почему это происходит? - Я же вроде даю точную координату по цене. Как это решается?

Я посмотрел и попробовал, как делают другие, но там эффект аналогичный. Хочу понять как от этой "прыгалки" избавляются. И главное почему она появляется, раз координаты жесткие: цена и время?

TarasBY:

Текст вводят в описание объекта и на графике разрешают показывать описания объектов (один из способов).

Как это программно реализовать? Поискал, потыкался - не нашел. Руками получается, а что за команды должны быть....
 
Chiripaha:
Как это программно реализовать? Поискал, потыкался - не нашел. Руками получается, а что за команды должны быть....

bool ObjectSetText( string name, string text, int font_size, string font_name=NULL, color text_color=CLR_NONE)
Изменение описания объекта. Для объектов OBJ_TEXT и OBJ_LABEL это описание отображается на графике в виде текстовой строки. В случае успеха функция возвращает значение TRUE, иначе FALSE. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Параметры font_size, font_name и text_color используются только для объектов OBJ_TEXT и OBJ_LABEL. Для объектов других типов эти параметры игнорируются.
См. также ObjectDescription().
Параметры:
name -   Имя объекта.
text -   Текст описания обьекта.
font_size -   Размер шрифта в пунктах.
font_name -   Наименование шрифта.
text_color -   Цвет текста.
Пример:
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);
 
TarasBY:


См. также ObjectDescription().

Вооооот... Дескрипшион... : )))) А я то обыскался где это такое делается.... Спасибо огромное! : )))

 
Chiripaha:

Вооооот... Дескрипшион... : )))) А я то обыскался где это такое делается.... Спасибо огромное! : )))

ObjectDescription() только возвращает свойство (в данном случае описание), НО не устанавливает его!!!

 
TarasBY:

ObjectDescription() только возвращает свойство (в данном случае описание), НО не устанавливает его!!!

Да... Вот, как раз с этим разобрался... А как его установить то?.. : ((

Вручную оно же там отражается, если через окошко свойств его устанавливать.

 
Chiripaha:

Да... Вот, как раз с этим разобрался... А как его установить то?.. : ((

Вручную оно же там отражается, если через окошко свойств его устанавливать.

А кому я отвечаю??? - https://forum.mql4.com/ru/52892/page20#732354
 
TarasBY:
А кому я отвечаю??? - https://forum.mql4.com/ru/52892/page20#732354

: ))))))) Ура! я разобрался... - Сейчас поэкспериментировал после взбучки. Я же не знал что так можно делать... : )) Я посмотрел как у других делается и делал по аналогии. А оказывается эта функция "..СетТекст" самостоятельная. Я думал только после создания текстового объекта.

Спасибо еще раз большое! : ))) Еще чему-то научился. : ))

 
rigonich:


Распечатайте состояние флагов отдельно для каждого условия. У вас получается так потому, что в условиях не учитывается состояние второго флага.

P.S. И удобнее, чтобы не путаться распечатывать Print("flag=",flag,"flagg=",flagg);


распечатал Print("flag=",flag,"flagg=",flagg);

принтует flag=1 flagg=0 КАК И ПОЛОЖЕНО!

но почему-то сигнал проходит КАЖДЫЙ ТИК!

т.е. условие   if(Ma_1<Ma_2 && flag==0)  flag игнорируется ПОЛНОСТЬЮ! как так? флаг печатает flag=1 и тут же прходит  if(Ma_1<Ma_2 && flag==0)  ->ЗВУК 

 -----------------

вообще можно упростить код до следующего

 if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1 } 

в результате звук должен проходить ОДИН РАЗ. А он сигналит на каждом тике!!!  

 
lottamer:


распечатал Print("flag=",flag,"flagg=",flagg);

принтует flag=1 flagg=0 КАК И ПОЛОЖЕНО!

но почему-то сигнал проходит КАЖДЫЙ ТИК!

т.е. условие   if(Ma_1<Ma_2 && flag==0)  flag игнорируется ПОЛНОСТЬЮ! как так? флаг печатает flag=1 и тут же прходит  if(Ma_1<Ma_2 && flag==0)  ->ЗВУК 

 -----------------

вообще можно упростить код до следующего

 if(Ma_1<Ma_2 && flag==0) {PlaySound("ok.wav"); flag=1 } 

в результате звук должен проходить ОДИН РАЗ. А он сигналит на каждом тике!!!  


У вас  flag -- локальная переменная?

 P.S. Когда не совсем понятно, что происходит, лучше лишний раз распечатать значения переменных, до и после проверяемых функции или оператора, чтобы видеть, как именно они их меняют. Иногда значения на входе оказываются не такими, которых мы там ожидаем, и найти  в коде, гдеи почему они становятся такими , какие есть, гораздо проще, чем угадать, почему программа работает неправильно.
Причина обращения: