Микро-вопрос по MQL4

 

Здравствуйте, подскажите пожалуйста как тут сделать?

Есть такой фрагмент кода, он работает. Это сигналы при подходе к торговым уровням. buy1_line - это уровень на графике, buy1 - расстояние цены в пунктах от соответствующего уровня. Дело в том что в коде есть возможность отключать не нужные уровни. В этом случае Значение уровня buy1_line (0.00000) а расстояние - отображается 6-ти значным числом, которое в принципе не имеет смысла. (уровень выключен, знать расстояние не нужно) Вопрос! Как обнулить расстояние до уровня - buy1, если соответствующий уровень выключен? (или в место этой цифры написать OFF ?)

string buy1_line=DoubleToStr(Price_Line,Digits);
string buy2_line=DoubleToStr(Price_Line2,Digits);
string buy1=     DoubleToStr((Price_Line-Bid)/Point,0);
string buy2=     DoubleToStr((Price_Line2-Bid)/Point,0);       

message=
 "buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"+
 "buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";

SendNotification(message);
 

Этот кусок кода отправляет уведомления.

Если Вам надо, чтобы при  buy1_line (0.00000) уведомление не отправляло эту строку, замените

 message=

 "buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"+
 "buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";
на
if(Price_Line>0){
message=
 "buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"+
 "buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";
}
else message=  "buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";
 
Roger:

Этот кусок кода отправляет уведомления.

Если Вам надо, чтобы при  buy1_line (0.00000) уведомление не отправляло эту строку, замените

 message=

Не совсем так, мне нужно что бы эта строка была, только вместо Buy1 подставлялось 0 или OFF.
 

тогда

 else message= "0 \n buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";

 
message=""
if(buy1_line!=0)message=message+"buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"; else message=message+"buy1_line = 0\n";
if(buy2_line!=0)message=message+"buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n"; else message=message+"buy2_line = 0\n";
примерно так
 
Roger:

тогда

 else message= "0 \n buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n";

Не получается ((. Сообщение приходит таким же.
 
Integer:
примерно так

Я не совсем понял куда этот кусок нужно вставлять,.. в общем по разному пытался, - результат не меняется.

Вставлял До сообщения, После, в середину.. везде где только можно) ... Ещё и предупреждение пишет " implicit conversion from 'number' to 'string' "  На ноль ругается.

buy2_line!=0
 
halk2009:

Я не совсем понял куда этот кусок нужно вставлять,.. в общем по разному пытался, - результат не меняется.

Вставлял До сообщения, После, в середину.. везде где только можно) ... Ещё и предупреждение пишет " implicit conversion from 'number' to 'string' "  На ноль ругается.


Нужно не до, не после, а вместо того. Да и вообще лучше бы начать с начала - с введения в программирование. 

string buy1_line=DoubleToStr(Price_Line,Digits);
string buy2_line=DoubleToStr(Price_Line2,Digits);
string buy1=     DoubleToStr((Price_Line-Bid)/Point,0);
string buy2=     DoubleToStr((Price_Line2-Bid)/Point,0);       

message=""
if(buy1_line!=0)message=message+"buy_1 ("+buy1_line+"):"+(buy1>"0"?"+":"")+buy1+"   \n"; else message=message+"buy1_line = 0\n";
if(buy2_line!=0)message=message+"buy_2 ("+buy2_line+"):"+(buy2>"0"?"+":"")+buy2+"   \n"; else message=message+"buy2_line = 0\n";
SendNotification(message);
 
Integer:

Нужно не до, не после, а вместо того. Да и вообще лучше бы начать с начала - с введения в программирование. 

 

Сделал так, как вы сказали. 1 ошибка ( 'if' - semicolon expected),  2 предупреждения (implicit conversion from 'number' to 'string' ).
 
halk2009:
Сделал так, как вы сказали. 1 ошибка ( 'if' - semicolon expected),  2 предупреждения (implicit conversion from 'number' to 'string' ).


Ну уж такую-то ошибку вы сами должны быть в состоянии исправить. Или вообще не стоит браться за все это дело.

 После message="" нужно поставить точку с запятой. 

 
Integer:

Ну уж такую-то ошибку вы сами должны быть в состоянии исправить. Или вообще не стоит браться за все это дело.

 После message="" нужно поставить точку с запятой. 

Я не программист)) просто надо чуток подправить код. Изначально в ветку новичков писал, но мне там не ответили. Поставил там точку с запятой. остались предупреждения, и всё равно всё осталось по прежнему. Число не обнулилось...(
Причина обращения: