오류, 버그, 질문 - 페이지 2053

 

컴파일러가 이것을 건너뛰는 이유는 무엇입니까? (MT4/MT5)

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

런타임 에만 0으로 나누기가 팝업됩니다.

 
Kirill Belousov :

컴파일러가 이것을 건너뛰는 이유는 무엇입니까? (MT4/MT5)

런타임 에만 0으로 나누기가 팝업됩니다.

컴파일러가 값을 계산하지 않고 단순히 프로그램 코드를 기계어로 번역하기 때문일 수 있습니다.

 
신호 등급은 어떻습니까?

이제 마지막 자리에, 그 다음 가운데에 내가 앉는다.
 

Gann 그리드 가 있는 MT5에는 무엇이 있습니까? Y축을 따라 제어선의 끝을 이동할 수 있습니까?

 
전략 테스터 에서 입력 변수에 대한 자동 교체가 주석 형식으로 코드에 작성되면 최적화 설정이 슈퍼이고 최적화 후 변수의 실제 이름이 테이블에 있습니다. 혼란스러운 것으로 나타났습니다. 코드를 지속적으로 살펴봐야 합니다.
 

친애하는 행정부.

MT5 전략 테스터 보고서 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


손절매 및 TakeProfit 필드가 비어 있습니다.


이것은 SYMBOL_TRADE_EXECUTION_MARKET에만 있습니다.

손절매로 닫을 때 모든 것이 올바르게 표시됩니다.

 
Alexey Viktorov :

컴파일러가 값을 계산하지 않고 단순히 프로그램 코드를 기계어로 번역하기 때문일 수 있습니다.

분모가 x/(5*0)와 같은 상수이면 컴파일 시간에 오류가 감지됩니다.

저것들. 컴파일러는 코드를 번역할 뿐만 아니라 계산을 수행합니다.

컴파일러는 분모가 항 중 하나가 0(상수)인 제품인 경우를 감지해야 하는 것 같습니다. 그러면 컴파일러는 0으로 나누기 오류를 발생시켜야 합니다.

 
FileReadArray()는 파일 크기가 INT_MAX 바이트를 초과할 때 데이터 배열을 읽지 않습니다.
 
Roffild :
FileReadArray()는 파일 크기가 INT_MAX 바이트를 초과할 때 데이터 배열을 읽지 않습니다.

FileReadArray가 아니라 이 크기보다 클 수 없는 배열입니다. 실수가 아니라 의도한 것입니다.

 
Kirill Belousov :

분모가 x/(5*0)와 같은 상수이면 컴파일 시간에 오류가 감지됩니다.

저것들. 컴파일러는 코드를 번역할 뿐만 아니라 계산을 수행합니다.

컴파일러는 분모가 항 중 하나가 0(상수)인 제품인 경우를 감지해야 하는 것 같습니다. 그러면 컴파일러는 0으로 나누기 오류를 발생시켜야 합니다.

그러한 오류를 잡아내는 언어와 컴파일러를 알고 있습니까?