Erros, bugs, perguntas - página 621

 
sergey1294:
Antes de mais nada, divida os números inteiros para obter um número inteiro, leia sobre a conversão do tipo https://www.mql5.com/ru/docs/basis/types/casting
Sim, de facto, mas não era esse o caso antes. Nem sequer me preocupei.
 
ivandurak:
Sim, de facto, mas antes não o era. Nem sequer me preocupei.

Costumava estar em quatro? porque em cinco estava desde o início e será sempre assim (1/2=0; 1,/2,=0,5).

Se quiser especificar duplicados, acrescente explicitamente um ponto.

// Script program start function                                    
void OnStart()
  {
   int i;
   double   a,b ;
   for(i=0;i<10;i++)
      {
         a=1./2.;
         b=1./2.;
         Print("a=",a," ","b=",b) ;
      }   
  }
 
Urain:

Costumava estar em quatro? Porque estava em cinco desde o início.

Se quiser especificar explicitamente as duplicações, acrescente uma paragem completa.

Este nunca foi o caso, nem em quatro nem em cinco.

A aritmética inteira (e mesmo sob a forma de constantes inteiras puras) é inequívoca.

 

Encontrei uma discrepância entre o testador e a conta de demonstração:

Após o sucesso das operações comerciais, os campos de preços são preenchidos de forma diferente na estrutura de resposta do servidor comercial. Na conta de demonstração tudo é como deveria ser no campo do preço - o preço a que a transacção foi feita, no testador este campo permanece 0.

Para testes, esbocei um Expert Advisor que compra cada tick e exibe o código de retorno e o preço no registo:

//+------------------------------------------------------------------+
//|                                                  test-expert.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
         MqlTradeRequest trade_request;
         MqlTradeResult  trade_result;
         ZeroMemory(trade_request);
         ZeroMemory(trade_result);
         trade_request.action=TRADE_ACTION_DEAL; 
         trade_request.volume=0.1; 
         trade_request.type=ORDER_TYPE_BUY; 
         trade_request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK); 
         trade_request.symbol=_Symbol;
         OrderSend(trade_request,trade_result);
         Print(trade_result.retcode, "купили по цене ",trade_result.price);
  }
//+------------------------------------------------------------------+

Quando o executo numa conta de demonstração, o registo contém as seguintes cordas:

2012.01.16 12:48:29 test-expert (EURUSD,H1) 10009 comprado a 1.266

E ao correr no visualizador estes :

2012.01.16 12:49:12 2011.12.30 00:00:11 10009 comprado a um preço de 0.0

Diz-me se isto é um insecto, um insecto, ou se eu faço algo de errado ?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

Existe alguma forma de controlar a pré-história no testador?

Um teste durante 1 hora, desde o período de 1.01.2011 até hoje, carrega apenas 6000 barras. Nas definições é - barras máximas ilimitadas. o histórico é todo carregado a partir de 1971 no minuto.

 

Esta questão surgiu de forma inesperada:

Ao carregar um indicador através do iCustom num Expert Advisor, o indicador é carregado e funciona correctamente - a única coisa é que a sua função OnTimer não é chamada.

É suposto ser assim, ou é um insecto?

O mesmo indicador apenas anexado a um gráfico funciona bem.

Construir 574.

 
Dima_S:

Esta questão surgiu de forma inesperada:

Ao carregar um indicador através do iCustom num Expert Advisor, o indicador é carregado e funciona correctamente - a única coisa é que a sua função OnTimer não é chamada.

É suposto ser assim ou é um insecto?

Foi concebido dessa forma.
 
antt:
É assim que deve ser.
Muito original)
 
Dima_S:
Muito original)

São gerados eventos temporais para o gráfico e daí para os programas que nele correm (atirados para cima). Esta é a ideologia - Execução de Programas:

O terminal do cliente envia os eventos gerados para os gráficos abertos apropriados. Também os eventos podem ser gerados por gráficos (eventos gráficos) ou mql5-programas (eventos personalizados). A geração de eventos de criação e eliminação de objectos gráficos num gráfico pode ser activada ou desactivada através da definição das propriedades CHART_EVENT_OBJECT_CREATE e CHART_EVENT_OBJECT_DELETE de um gráfico. Cada programa de mql5 e cada gráfico tem a sua própria fila de eventos, onde todos os novos eventos são armazenados.

O programa recebe eventos apenas do gráfico em que está a decorrer. Todos os eventos são processados um após o outro na ordem em que são recebidos.

Portanto, o indicador que é chamado pelo Conselheiro Especialista não recebe eventos temporais. Tente aplicar o indicador ao gráfico usando a função ChartIndicatorAdd do Expert Advisor, será que alguma coisa mudará?

 
Dima_S:
Muito original)
O evento foi originalmente destinado a peritos e é essencialmente um evento gráfico. A utilização do evento em indicadores foi acrescentada mais tarde e com a restrição de que o indicador deve ser acrescentado ao gráfico.
Razão: