Erros, bugs, perguntas - página 736

 
Estava a referir-me a ela e também à extensão .chm
 
 
void OnStart()
  {
   MqlRates a[],b[];
   Alert("после MqlRates a[],b[] Series == "+ArrayIsSeries(b));
   CopyRates(Symbol(),PERIOD_CURRENT,0,TerminalInfoInteger(TERMINAL_MAXBARS),a);
   ArraySetAsSeries(a,true);
   CopyRates(Symbol(),PERIOD_M1,0,TerminalInfoInteger(TERMINAL_MAXBARS),b);
   Alert("после CopyRates Series == "+ArrayIsSeries(b));
   ArraySetAsSeries(b,true);
   Alert("после ArraySetAsSeries(b,true); Series == "+ArrayIsSeries(b));
}
2012.05.06 17:29:55 TEMP (EURUSD,H1) depois do ArraySetAsSeries(b,true); Series == falso
2012.05.06 17:29:55 TEMP (EURUSD,H1) após a série CopyRates == falso
2012.05.06 17:29:55 TEMP (EURUSD,H1) após MqlRates a[],b[] Series == falso

Mostra e não cora. Posso estar a ferver?

 
 
sergeev:

ArrayGetAsSeries

Retirar a tampa, apagar o fogo.

Obrigado.

 
O mercado não está a funcionar, não é possível descarregar demos ou produtos gratuitos - "Programa de carregamento de erros *****. Por favor, tente novamente mais tarde".
 
papaklass:

1 fios vazados que restam

Descobri, é o modo de inicialização da estrutura de pedido da MQLTradeRequest.

Se o inicializarmos desta forma:

então,"1 fio que sobrou" não aparece.

Se a inicialização for realizada a partir da função OpenPosition() para o nível global, o registo de memória aparece:

Em relação à segunda opção. Ao tentar perceber, encontrei o seguinte código:

//+------------------------------------------------------------------+
//|                                                   papaclass4.mq5 |
//+------------------------------------------------------------------+
MqlTradeRequest      mrequest={1};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("Global: mrequest.price=",mrequest.price);
  }
//+------------------------------------------------------------------+

Devoluções:

2012.05.07 10:52:10 papaclass4 (USDCAD,M1) Global: mrequest.price=0.0

Acontece que a variável mrequest={1} é inicializada a nível global, mas o programa não vê valores dos seus campos inicializados por alguma razão. O compilador não se queixa também.

 
O primeiro membro da estrutura foi rubricado com um e o resto com zero por defeito.
 
Renat:
O primeiro membro da estrutura foi rubricado com um e o resto com zero por defeito.
Já está. Encontrei a explicação no Manual de Referência: "Deve haver pelo menos um valor na sequência de inicialização: o primeiro elemento da estrutura ou matriz correspondente é inicializado com este valor, os elementos em falta são considerados zero".
 
papaklass:

1 fios vazados que restam

Descobri-o, vem da forma como a estrutura MqlTradeRequest é inicializada.

Se o inicializarmos desta forma:

então,"1 fio que sobrou" não aparece.

Se movermos a inicialização da função OpenPosition() para o nível global, o registo de memória aparece:

Obrigado pela mensagem, o erro do compilador foi corrigido.