Erros, bugs, perguntas - página 2053

 

Porque é que o compilador está a saltar isto? (MT4/MT5).

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

Só em tempo de execução é que aparece a divisão por 0.

 
Kirill Belousov:

Porque é que o compilador está a saltar isto? (MT4/MT5).

Só em tempo de execução é que aparece a divisão por 0.

Provavelmente porque o compilador não calcula o valor, ele apenas traduz o código do programa em código de máquina.

 
E quanto à classificação do sinal?

Estou ou em último lugar ou no meio
 

O que se passa com a grelha de Gann em MT5? Não é possível mover as extremidades da linha de controlo ao longo do eixo Y?

 
No testador de estratégias, quando o código tem substituições autocompletas por exemplo variáveis sob a forma de comentários, então nas configurações de optimização super, mas após a optimização os nomes reais das variáveis estão na tabela. É confuso - tem de se estar sempre a olhar para o código.
 

Cara Administração.

Bug in the MT5 Strategy Tester report 1653

corretor ActiveTrades

o meu Conselheiro Especialista primeiro abre uma posição, depois modifica as paragens (SYMBOL_TRADE_EXECUTION_MARKET)

Isto é mostrado nos registos normalmente.

Mas ao salvar o relatório! não há paragens no relatório.

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


Os campos Stop Loss e Take Profit estão vazios.


Isto acontece apenas em SYMBOL_TRADE_EXECUTION_MARKET.

Embora, quando fecho por Stop Loss, tudo é ajustado correctamente.

 
Alexey Viktorov:

Provavelmente porque o compilador não calcula o valor, ele apenas traduz o código do programa em código de máquina.

Se o denominador for uma constante, por exemplo x/(5*0), o erro é detectado no momento da compilação.

ou seja, o compilador não se limita a traduzir o código, ele executa o cálculo.

Parece-me que o compilador deve detectar um caso em que o denominador é um produto em que um dos termos é 0 (constante), então o compilador deve produzir uma divisão por erro 0.

 
FileReadArray() não lê um conjunto de dados quando o tamanho do ficheiro excede os bytes INT_MAX.
 
Roffild:
FileReadArray() não lê a matriz de dados quando o tamanho do ficheiro excede os bytes INT_MAX.

Não é um FileReadArray, é uma matriz que não pode ser maior do que esse tamanho. Não é um erro, isto é por desenho.

 
Kirill Belousov:

Se o denominador for uma constante, por exemplo x/(5*0), o erro é detectado no momento da compilação.

ou seja, o compilador não se limita a traduzir o código, ele executa o cálculo.

Parece-me que o compilador deve detectar um caso em que o denominador é um produto em que um dos termos é 0 (constante), então o compilador deve produzir uma divisão por erro 0.

Conhece uma língua e o seu compilador que possa apanhar tais erros?

Razão: