Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Поиск в документации доступен через MetaTrader 5. Ищи и изучай!
halk2009
94
halk2009 2015.07.13 00:33 

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

Есть такой фрагмент кода, он работает. Это сигналы при подходе к торговым уровням. 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);
Alexander
2441
Alexander 2015.07.13 06:26  

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

Если Вам надо, чтобы при  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";
halk2009
94
halk2009 2015.07.13 11:10  
Roger:

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

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

 message=

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

тогда

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

Dmitry Fedoseev
42882
Dmitry Fedoseev 2015.07.15 01:07  
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";
примерно так
halk2009
94
halk2009 2015.07.16 15:29  
Roger:

тогда

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

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

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

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

buy2_line!=0
Dmitry Fedoseev
42882
Dmitry Fedoseev 2015.07.17 01:23  
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);
halk2009
94
halk2009 2015.07.17 03:21  
Integer:

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

 

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


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

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

halk2009
94
halk2009 2015.07.17 08:31  
Integer:

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

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

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