Erros, bugs, perguntas - página 2

 
Interesting:

Funciona, testado em três corretoras (procura de todos os instrumentos negociados na corretora)

Experimente desta forma

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
Para a OnTick, isto é apenas um exemplo.
 
ddd06:

É isso que estou a dizer: a verdade não funciona!

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
Esta é a forma correcta de o fazer. uma vez que está a utilizar a função para produzir a informação
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
Esta é a forma correcta de o fazer. uma vez que está a utilizar uma função para produzir a informação
Obrigado, simplesmente não os entendi, mas a questão permanece:)
 
ddd06:
Obrigado, simplesmente não os entendi, mas a questão permanece:)

Em citações reais (real, demo e provavelmente licitação) este código funciona bem testado em 3 terminais (chamado durante a inicialização)

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

Mostrei 15 pares que estão em análise no mercado.


Em testes normais apenas são considerados os símbolos especificados nos parâmetros de teste (se forem necessários outros símbolos, estes devem ser tomados como falsos e variados dos meus símbolos), em "todos os símbolos seleccionados ..." a optimização mostrará provavelmente todos os símbolos (mas muito provavelmente um por um mudando-os).


PS

Se a sua EA é multi-moeda, deve ter a sua própria lista de símbolos no testador e compará-la com uma lista de símbolos apresentada na sua empresa de corretagem.

 

Isso é fixe, mas acho que é um lapso.

Obrigado por ter descoberto.

Curiosamente, e quanto ao primeiro posto, até ao momento ninguém respondeu, tipo de pessoa que poderia escrever - Vamos corrigir na próxima construção.

 

O número de ordens e negócios na história não é devolvido:

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

escorvamento

Histórico de encomendas

 
Urain:

O número de ordens e negócios na história não é devolvido:


É preciso primeiro carregar o histórico usando a função:

HistorySelect(0,TimeCurrent())
 
Valmars:

Tenho de descarregar a história primeiro com a função:


Sim obrigado, funciona, vou continuar a ler o manual :o)

Não consegui pensar que haja um fluxo separado para o utilizador e para a EA,

Pensei que se a história for apresentada, significa que deve ser lida pelo Consultor Especialista,

Mas isto é mais correcto - o terminal cria o seu próprio espaço para Consultores Especialistas,

O terminal cria o seu próprio espaço para Consultores Especialistas,

Isto é semelhante ao que foi implementado em mql-4 sob a forma de um amortecedor que foi periodicamente carregado com história.

 
Urain:

Sim obrigado, tudo funciona, vou continuar a ler o manual :o)

Não podia pensar que houvesse uma separação de fios para o utilizador e para a EA,

Pensei que se a história for apresentada, significa que deve ser lida por uma EA,

Mas isto é mais correcto - o terminal cria o seu próprio espaço para Consultores Especialistas,

a selecção da informação é realizada no seu próprio formato e é muito mais rápida,

O análogo disso foi implementado em mql-4 sob a forma de um amortecedor que foi periodicamente carregado com história.


Infelizmente, o espaço para os guiões, EAs e o terminal é comum. Pode certificar-se disso se chamar o histórico do terminal para o último dia (dia) e depois executar a função acima a partir do guião ou do Expert Advisor. E verá que a história no terminal também mudou para 'Toda a história'. Penso que se trata de uma falha no terminal. Imagine que tem vários guiões de Expert Advisor a correr, e cada um deles pede a sua própria história. A história no terminal irá saltar (visualmente). É necessário que o separador "História" exiba o estado actual, independentemente dos Conselheiros Especialistas.

Além disso, o histórico no terminal é frequentemente actualizado com um atraso, ou seja, uma transacção é executada, uma posição é fechada mas não aparece no separador "Histórico". Uma vez esperei propositadamente até que a história fosse actualizada. Foi em minutos..... Eu nunca esperei. Só aparece depois de executar um comando de contexto para pedir histórico a partir do separador 'Histórico' ou de um guião a pedir histórico.

 
ddd06:

Isso é fixe, mas acho que é um lapso.

Obrigado por o ter descoberto.

É interessante, que com o primeiro post, ainda ninguém respondeu, eles podiam escrever - Vamos arranjá-lo na próxima construção.

A falha é que utiliza o PrintFormat sem utilizar explicitamente a cadeia de formatos.

O que devemos consertar na próxima construção?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5
Razão: