Ошибки, баги, вопросы - страница 2053

 

Почему компилятор это пропускает? (МТ4/МТ5)

double x=1;
double a=1/(x*0);

Только во время исполнения всплывает деление на 0. 

 
Kirill Belousov:

Почему компилятор это пропускает? (МТ4/МТ5)

Только во время исполнения всплывает деление на 0. 

Наверное потому, что компилятор не вычисляет значение, а просто переводит программный код в машинный.

 
А что с рейтингом сигналов?

То на последнем месте, то в середине сижу
 

Что в MT5 с сеткой Ганна? Нельзя двигать концы управляющей линии по оси Y?

 
В тестере стратегий, когда в коде прописаны автозамены на переменные инпута, в виде комментов, то в настройках оптимизации супер, а после оптимизации в табличке реальные названия переменных. Получается путаница - надо постоянно в код заглядывать.
 

Уважаемая Администрация.

Баг в отчете тестера стратегий МТ5 1653

брокер ActiveTrades

эксперт сначала открывает позицию, потом модифицирует стопы(Маркет исполнение SYMBOL_TRADE_EXECUTION_MARKET) 

в логах это отображается нормально.

Но при сохранении отчета! в отчете нет стопов. 

SYMBOL_FILLING_MODE=3 SYMBOL_TRADE_EXEMODE=2 SYMBOL_EXPIRATION_MODE=7 SYMBOL_TRADE_MODE=4 SYMBOL_TRADE_STOPS_LEVEL=0 SYMBOL_TRADE_FREEZE_LEVEL=0 SYMBOL_ORDER_MODE=127 SYMBOL_START_TIME=0 SYMBOL_EXPIRATION_TIME=0 SYMBOL_SPREAD=5 SYMBOL_SESSION_DEALS=0
IE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   market buy 0.01 EURUSD (1.18278 / 1.18283 / 1.18278)
JP      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal #2 buy 0.01 EURUSD at 1.18283 done (based on order #2)
OH      0       09:43:35.667    Core 1  2017.08.01 02:10:00   deal performed [#2 buy 0.01 EURUSD at 1.18283]
LN      0       09:43:35.667    Core 1  2017.08.01 02:10:00   order performed buy 0.01 at 1.18283 [#2 buy 0.01 EURUSD at 1.18283]
EQ      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify  2 POSITION_TYPE=0 stoploss=1.17678 takeprofit=0.0 request.sl=1.17678 request.tp=0.0 POSITION_SL=0.0 POSITION_TP=0.0 SYMBOL_BID=1.18278 SYMBOL_ASK=1.18283 stops_level=0
OR      0       09:43:35.667    Core 1  2017.08.01 02:10:00   position modified [#2 buy 0.01 EURUSD 1.18283 sl: 1.17678]
DE      0       09:43:35.667    Core 1  2017.08.01 02:10:00   ModifyOrders Modify = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed
CL      0       09:43:35.667    Core 1  2017.08.01 02:10:00   Result = 10009 symbol EURUSD volume 0.0 action 6 tp 0.0 sl 1.17678 type 0 price 0.0   Request completed


поля Стоплосса и тейкпрофита пустые. 


Такое только на SYMBOL_TRADE_EXECUTION_MARKET 

Хотя при закрытии по стоплоссу, все указывается верно.. 

 
Alexey Viktorov:

Наверное потому, что компилятор не вычисляет значение, а просто переводит программный код в машинный.

Если в знаменателе константы, например x/(5*0), то ошибка обнаруживается на этапе компиляции.

т.е. компилятор не просто переводит код, а производит вычисление.

Мне кажется, что компилятор должен обнаруживать случай, когда знаменателем является произведение, в котором один из членов равен 0 (константа), то компилятор должен выдавать ошибку деления на 0.

 
FileReadArray() не читает массив данных, когда размер файла превышает INT_MAX байт.
 
Roffild:
FileReadArray() не читает массив данных, когда размер файла превышает INT_MAX байт.

Это не FileReadArray, это массив не может быть больше такого размера. Не ошибка, это by design.

 
Kirill Belousov:

Если в знаменателе константы, например x/(5*0), то ошибка обнаруживается на этапе компиляции.

т.е. компилятор не просто переводит код, а производит вычисление.

Мне кажется, что компилятор должен обнаруживать случай, когда знаменателем является произведение, в котором один из членов равен 0 (константа), то компилятор должен выдавать ошибку деления на 0.

А вы знаете такой язык и его компилятор, чтобы отлавливал такие ошибки?

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