Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1417

 

E aqui tenho uma espécie de bagunça... Quero ocultar alguns níveis e fazer com que outros tenham um determinado estilo (como no caso).

Portanto, o nível zero no estilo de depuração muda, mas assim que você oculta o primeiro nível, ele volta a ser amarelo. Bem, não na depuração também. A inscrição com o valor é apenas da cor correta. Que dor de cabeça com esse fibonacci....

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

Boa tarde a todos.

Por favor, me digam como resolver o problema

Há uma classe que processa posições e ordens e as verifica com o banco de dados.

Precisamos passar STRUCTURES (string, double, int, string .....) a partir dessa classe.

Como isso pode ser feito?

e, se possível, um link para um exemplo

 
Sergey Li #:

Boa tarde a todos.

Por favor, me digam como resolver o problema

há uma classe que processa posições e ordens e as verifica com o banco de dados

é necessário passar STRUCTURES (string, double, int, string .....) a partir dessa classe.

Como isso pode ser feito?

e, se possível, um link para um exemplo

Há exemplos na biblioteca padrão.

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Antes de enviar uma ordem, precisamos verificar quando a última posição em um símbolo foi aberta. O que é mais rápido, procurar no histórico ou na variável global do terminal?
 
lynxntech global do terminal?

Não pode ser mais rápido do que na variável. Apenas uma correção: você pode usar a variável global do terminal para salvá-la ao reiniciar o terminal e consultar o histórico em OnInit(). Mas quando você vai para OnTick(), esse valor deve estar na variável de nível global, mas não na variável global do terminal.

 
Alexey Viktorov #:

Ele não pode ser mais rápido do que em uma variável. Apenas uma correção: você pode usar a variável global do terminal para salvá-la ao reiniciar o terminal e pesquisar o histórico em OnInit(). Mas quando você vai para OnTick(), esse valor deve estar na variável de nível global, mas não na variável global do terminal.

A variável global do terminal é tão lenta, porque ela deve ser armazenada na mesma memória que a normal, não é uma quantidade enorme de informações que são solicitadas do disco quando necessário.

 
lynxntech #:

Uma variável global é tão lenta porque deve ser armazenada na mesma memória que uma variável normal, não é uma quantidade enorme de informações que é solicitada do disco quando necessário.

Em termos gerais, uma variável de terminal global é quase como um arquivo. Caso contrário, onde ela será armazenada quando o computador for desligado? E uma variável de nível global acessível de qualquer lugar do programa é uma variável na memória. Naturalmente, ela é mais rápida.

Acontece que, em uma nova abertura, é melhor escrever tanto na variável de nível global quanto na variável global do terminal para restaurá-la após a reinicialização do terminal. Mas enquanto o terminal estiver em execução, a variável de nível global deve ser verificada.

 
Alexey Viktorov #:

Em termos gerais, uma variável de terminal global é quase como um arquivo. Caso contrário, onde ela será armazenada quando o computador for desligado? E uma variável de nível global acessível de qualquer lugar do programa é uma variável na memória. Naturalmente, ela é mais rápida.

Acontece que, em uma nova abertura, é melhor escrever tanto na variável de nível global quanto na variável global do terminal para restaurá-la após a reinicialização do terminal. Mas enquanto o terminal estiver em execução, a variável de nível global deve ser verificada.

Ou seja, verificar o histórico em OnDeinit e gravá-lo na variável global do terminal?

Idealmente, há apenas alguns bytes de informações no formulário de texto, que não estão contidos na disponibilidade como variáveis usuais, ou seja, na RAM?

No OnInit, nós a lemos, gravamos na RAM e, quando a variável é atualizada, ela é sobrescrita.

Alguém realmente mediu isso? Ou talvez os desenvolvedores possam nos ajudar a descobrir isso.

 
lynxntech #:

Ou seja, verificar o histórico em OnDeinit e gravar no Terminal global?

O ideal é que haja apenas alguns bytes de informações em forma de texto; elas não estão contidas na disponibilidade como variáveis normais, ou seja, na RAM?

No OnInit, nós a lemos, gravamos na RAM e, quando a variável é atualizada, ela é substituída.

Alguém realmente mediu isso? Ou talvez os desenvolvedores possam nos ajudar a descobrir isso.

Quem falou sobre escolher o histórico em OnDeinit()?

Eu estava falando sobre a necessidade de duplicar a variável na variável do terminal na próxima posição de abertura...

 
Alexey Viktorov #:

Quem disse algo sobre escolher o histórico em OnDeinit()?

Eu estava falando sobre a necessidade de duplicar a variável na variável do terminal na próxima abertura de posição...

Tudo isso pode ser feito, a pergunta era para aqueles que mediam o trabalho real e, melhor ainda, para os desenvolvedores, que sabem o que eles têm em seus planos.

Não quero fazer experimentos, pois há muitas outras tarefas.