Como posso fazer a saída em um gráfico em fonte monoespaçada? - página 4

 
Alexey Volchanskiy:

Estas medidas não são nada. Devemos fazer ciclos separados de várias dezenas de milhares de passes separadamente para Comentário e Tela, então podemos julgar algo. E o texto a ser impresso deve mudar, por exemplo, deixar o valor do contador ser impresso.

Você poderia refazê-lo desta maneira?

Saída repetida está correta, Comentário mata velocidade em mt5. Eu o verifiquei há muito tempo e excluí sua exibição durante os testes.

Eu não verifiqueiCHART_COMMENT, apenas lembrei-me sobre isso, terá tempo - verifique a velocidade

//+------------------------------------------------------------------+ 
//| Функция получает текст комментария в левом верхнем углу графика. | 
//+------------------------------------------------------------------+ 
bool ChartCommentGet(string &result,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- получим значение свойства 
   if(!ChartGetString(chart_ID,CHART_COMMENT,result)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Функция устанавливает текст комментария в левом верхнем углу     | 
//| графика.                                                         | 
//+------------------------------------------------------------------+ 
bool ChartCommentSet(const string str,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetString(chart_ID,CHART_COMMENT,str)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Nikolai Semko:

Experimentei no MT4. O código também funciona nele.
Acontece que o Comment é 5 vezes mais rápido no MT4 do que em seu análogo gráfico. E acontece que Comentário() funciona 5-6 vezes mais lento na MT5 do que na MT4. Agora, esta é uma surpresa desagradável e estranha. Portanto, minha pergunta é para os desenvolvedores. Como assim? É claramente um bug para 5!!!


Obrigado pela informação, muito triste pela MT5 e ainda mais triste por ser tão diferente na MT4 e MT5, a compatibilidade acaba sendo pobre em uma EA multiplataforma.

 
Yury Kirillov:

Obrigado pela informação, muito triste pela MT5 e ainda mais triste por ser tão diferente na MT4 e MT5, a compatibilidade acaba sendo pobre em uma EA multiplataforma.

Há alguns. Eu eliminei completamente a saída de objetos e informações no gráfico em mt5, não perdi muito, às custas de um bom relatório de teste.

 
Yury Kirillov:

Obrigado pela informação, muito triste pela MT5 e ainda mais triste por ser tão diferente na MT4 e MT5, a compatibilidade acaba sendo pobre em uma EA multiplataforma.


Acho que a melhor opção ainda seria mudar para kanvas. A compatibilidade do MT4 e MT5 é perfeita ali. E Comentar é interessante apenas para verificações rápidas no rascunho do código, mas não no final. Todos subestimam as capacidades de velocidade de Kanvas por alguma razão.

 
Nikolai Semko:

Acho que a melhor opção ainda seria mudar para Tela. O MT4 e o MT5 são totalmente compatíveis. E Comentar é interessante apenas para verificações rápidas em código rascunho, mas não em código final. Todos subestimam as capacidades de velocidade da Tela por alguma razão.


Claramente, é isso que teremos de fazer...

 
Nikolai Semko:

Os ciclos também foram feitos separadamente, acharam os resultados um pouco estranhos, a mesma coisa. Os mesmos resultados. Não há diferença se se trata de um ciclo geral ou individual. Em minha amostra, o texto muda a cada vez, eu me pergunto por que não foi notado. Eu também sei sobre a otimização do compilador. ))


E posso postar o código com loops separados?

 
Vitaly Muzichenko:

A conclusão repetida é correta, Comentar mata mal a velocidade em mt5. Verifiquei isto há muito tempo, e excluí sua exibição durante os testes.

Eu não verifiqueiCHART_COMMENT, apenas lembrei-me sobre isso, terá tempo para verificar a velocidade

Do SD.

Alguém pode estabelecer a troca de informações de cordas entre a EA e o indicador através do campo de comentários do gráfico.

Decidimos que, em nome de um pequeno número desses usuários potenciais, não devemos retardar a otimização.

Nas próximas construções, a função Comentar só funcionará em testes únicos. Durante a otimização - não

 
fxsaber:

Do SR.

troca de informações de cadeia entre EA e indicador através do campo de comentários do gráfico.

As pessoas são boas em perversões sexuais

E em geral, é claro, não há método de troca como o mapeamento de memória, mas dentro de uma caixa de areia e sem chamar a dll

 
Alexey Volchanskiy:

Na verdade, o que está faltando é um método de troca de tipo de mapeamento de memória, mas dentro de uma caixa de areia e sem chamar a dll

Muitas opções.

 
fxsaber:

muitas opções.


Todos eles são substitutos. E cada um deles requer serialização/deserialização. Por exemplo, na WCF eu posso enviar uma instância de qualquer classe complexa com campos de dados pela web usando qualquer protocolo disponível e não preciso pensar como embalar/desembalar, tudo é feito por API. Tudo o que eu preciso é conhecer tal classe no final do recebimento.