Микро-вопрос по программированию MQL4!

 

Здравствуйте,

В журнал Эксперта уходит информация среди которой есть число. Подскажите как сделать так, что бы в журнале перед положительным числом был знак "+" ?

 
halk2009:

Здравствуйте,

В журнал Эксперта уходит информация среди которой есть число. Подскажите как сделать так, что бы в журнале перед положительным числом был знак "+" ?


   int s=7;
   Print(s>0?"+":"",s);
 

Используйте функцию PrintFormat. Что-то типа

PrintFormat("число со знаком %+d",int_number);
 

Не получается...

У меня сообщение выглядит так:

message = Symbol()+" TF:"+TF_in_String()+" Price SELL 1:"+DoubleToStr( (Bid - Price_Line)/Point,0)+" RSI:"+DoubleToStr(ExtRSIBuffer[0] - Price_RSI_Line, 2);


Так?:

Int sell1 =DoubleToStr( (Bid - Price_Line)/Point,0);

message = Symbol()+" TF:"+TF_in_String()+" Price SELL 1:"+Print(sell1>0?"+":"",sell1)+" RSI:"+DoubleToStr(ExtRSIBuffer[0] - Price_RSI_Line, 2);


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

Я чайник в программировании)) Напишите пожалуйста как нужно?!)

 

Всё! Разобрался))

Вот так всё работает!:

Int sell1 =DoubleToStr( (Bid - Price_Line)/Point,0);

message = " Price SELL 1:"+(sell1>0?"+":"")+sell1;

Спасибо что подсказали!

Метод ТЫКА - очень крутой метод))

 
vicmos:
А можно поподробней логическую составляющую формулы?
 
eevviill:
А можно поподробней логическую составляющую формулы?
есть линия уровня на графике, эта линия sell1, если выше неё, то значение положительное (типа ушли за уровень), если ниже - значение отрицательное (не дошли до уровня). Потом это сообщение уходит на телефон. Нужно было добавить знак "+" что бы сообщение соответствовало смыслу и читалось проще.
 
halk2009:
есть линия уровня на графике, эта линия sell1, если выше неё, то значение положительное (типа ушли за уровень), если ниже - значение отрицательное (не дошли до уровня). Потом это сообщение уходит на телефон. Нужно было добавить знак "+" что бы сообщение соответствовало смыслу и читалось проще.

Гы. Это я понял.

Я про

int s=7;
   Print(s>0?"+":"",s);
 

Это

s>0?"+":""
Если s больше 0 то печатается "+" иначе "" пустая строка.
 
AlexeyVik:

Это

Если s больше 0 то печатается "+" иначе "" пустая строка.
если не ошибаюсь это древний си,давно хочу поинтересоваться всё забываю что по идее быстрей if(...) или такой вид представления как вы предложили?
 
Я не предлагал. Я только расшифровал тому кто не умеет читать документацию. А по скорости не знаю.
Причина обращения: