assessor especializado - perguntas diversas - página 17

 

#Cálculos de Pedidos e Atualizações de Informações de Conta- Aberto

( Uma vez eu pedi - mas ainda preciso de ajuda )

Eu chamo minhas funções de cálculo pelo OnTick() ou Start(), e elas dependem de Ticks de Símbolo de Gráfico.
E eu comecei a pesquisar como posso fazer as atualizações de meus cálculos da EA não depende de Ticks and Symbols ( / Tabela - Ticks, Symbols ).
Só estou tentando fazer 'Todos os Cálculos de Pedidos & Informações de Conta' irá atualizar asincronização ( / em tempo real ) com 'Terminal > Comércio'.

Por favor, me ajude, obrigado.
Obrigado antecipadamente.

 
Documentation on MQL5: Language Basics / Functions / Event Handling Functions
Documentation on MQL5: Language Basics / Functions / Event Handling Functions
  • www.mql5.com
Language Basics / Functions / Event Handling Functions - Reference on algorithmic/automated trading language for MetaTrader 5
 
Marco vd Heijden:

E SymbolName(x,1);

Bom comentário, que me ajudou, muito obrigado.
Agora, estou usando OnTick() e OnTimer(), ambas as funções funcionam bem para mim. ( Eu uso pela primeira vez OnTimer() para EA's )

---

Também gostaria de experimentar Ticks. Só preciso de carteiras de viagem das quais os símbolos ( Pares ) em "Terminal > Comércio" e o símbolo gráfico atual. Será que este SymbolName() poderia me ajudar?
Por favor, me ajude ou me dê conselhos, então como posso fazer isso?

Tudo de bom.

 
   for(int i=0;i<SymbolsTotal(1);i++)
     {
      Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
     }
 
Marco vd Heijden:
   for(int i=0;i<SymbolsTotal(1);i++)
     {
      Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
     }

Exemplo surpreendente e comentário realmente útil para mim, graças a muito homem.

É possível que os carrapatos venham de Pares / Símbolos comerciais, por favor?
Porque quase todo o tempo meu relógio de mercado mostra todos os símbolos - especialmente eu procuro por novos bons pares para as trocas e isso é apenas a razão pela qual estou pesquisando algumas maneiras de como posso obter ' Terminal > Trocar ' símbolos / pares, apenas carrapatos de abertura de trocas no momento.

Muito obrigado de antemão.

 
não, mas você pode atualizar o preço na função OnTimer() definida para um valor baixo, por exemplo 250 milissegundos será igual a 4 ticks por segundo, então por que você precisa dele ?
 
Marco vd Heijden:
não, mas você pode atualizar o preço na função OnTimer() definida para um valor baixo, por exemplo 250 milissegundos será igual a 4 ticks por segundo, então por que você precisa dele?

Obrigado por seu comentário.

( subtópico -#Cálculos de Pedidos & Atualizações de Informações de Conta - Abrir) Como mencionei, utilizo cálculos de lucro de pedidos e isso não está em sincronia com ' Terminal > Comércio ', isso é apenas motivo.
Assim, às vezes, a volatilidade é muito baixa, o Ticks vem em menores quantidades, e eu acho que as funções poderiam estar funcionando 4 vezes em um segundo, de modo que funcionar para nada ( / vã ).

Se eu não encontrar o caminho que ele pode me dar ' Terminal > Trade ' ticks para Cálculos de Lucro de Pedidos e Informações de Conta ( / atualizações ) sincronia. Usarei seus métodos muito úteis - que você me mostrou nos seus últimos comentários, muito obrigado. ( Eu já testei e assim me funciona )

Obrigado de antemão.

 

Bem, se você realmente gosta disso você pode usar:

struct MqlTick
  {
   datetime     time;          // Time of the last prices update
   double       bid;           // Current Bid price
   double       ask;           // Current Ask price
   double       last;          // Price of the last deal (Last)
   ulong        volume;        // Volume for the current Last price
   long         time_msc;      // Time of a price last update in milliseconds
   uint         flags          // Tick flags
  };

A Estrutura para Retornar Preços Correntes (MqlTick)

Esta é uma estrutura para armazenar os últimos preços do símbolo. Ela é projetada para a rápida recuperação das informações mais solicitadas sobre os preços atuais.

A variável do tipo MqlTick permite obter valores de Ask, Bid, Last e Volume dentro de uma única chamada da função SymbolInfoTick().

Os parâmetros de cada tick são preenchidos independentemente de haver mudanças em comparação com o tick anterior. Assim, é possível descobrir um preço correto para qualquer momento no passado sem a necessidade de procurar por valores anteriores no histórico do tick. Por exemplo, mesmo que apenas um preço Bid mude durante a chegada de um tick, a estrutura ainda contém outros parâmetros também, incluindo o preço Ask anterior, volume, etc.

Você pode analisar as bandeiras de seleção para descobrir quais dados foram alterados exatamente:

  • TICK_FLAG_BID - o tick mudou o preço de um Bid
  • TICK_FLAG_ASK - um tick mudou um preço Ask
  • TICK_FLAG_LAST - um tick alterou o preço do último negócio
  • TICK_FLAG_VOLUME - um tick mudou um volume
  • TICK_FLAG_BUY - um tick é o resultado de um negócio de compra
  • TICK_FLAG_SELL - um tick é o resultado de um negócio de venda

Exemplo:

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Veja também

https://www.mql5.com/en/docs/constants/structures/mqltick

Estruturas e Classes, CopyTicks(), SymbolInfoTick()

Então você pode usá-lo para verificar se havia um novo tick para um símbolo específico, mas isto será na verdade um passo a mais do que ler diretamente os níveis de preço, então mais uma vez, por que você precisaria dele?

Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Price Data Structure - Reference on algorithmic/automated trading language for MetaTrader 5
 

Marco vd Heijden:

Bem, se você realmente gosta: ...
Então você pode usá-lo para verificar se havia um novo tick para um símbolo específico, mas isto será na verdade um passo a mais do que ler diretamente os níveis de preço, então mais uma vez, por que você precisaria dele.

Obrigado por seu comentário informativo, muito obrigado.

---

Se eu estiver certo, esta parte da frase é uma pergunta.

... por que você precisaria dele.
apenas uma razão, estou tentando evitar loops/funções irrelevantes.

( Eu gostaria de mencionar hoje enquanto eu estava testando meu cálculo de lucro de pedidos da EA, o cálculo era continuamente atualizado ( / loops por nada ) Eu estava testando no gráfico EURUSD, e enquanto eu estava testando, eu vi um volume muito baixo quase 20 ( não mais ) por minuto.
E enquanto eu estava testando, mais uma vez eu tinha certeza, pude encontrar uma maneira que me daria apenas ' Terminal > Trade ' Ticks. Gostaria de dizer mais uma vez, não há nenhuma razão.
Só sei que as maneiras que podem me dar carrapatos OnTick() só carrapatos poderiam vir do Símbolo do Quadro. E outros OnTimer() poderiam me dar 4 carrapatos por segundo... e assim por diante, que aprendi com seus comentários muito úteis e ótimos, mais um muito obrigado por isso. )

E eu preciso descrever minha situação.

Meu cálculo de lucro de pedidos pode ser sincronizado com o painel de Terminal Trade enquanto meu EA está rodando no símbolo do gráfico qual ( por exemplo: EURUSD ) se o símbolo do gráfico for igual ao símbolo de pedido, mas se eu abrir uma nova posição para GBPUSD e depois sincronizar, interromperei com o painel de Terminal Trade.
E se eu tiver pedidos para EURUSD, mas eu tento procurar novos pares bons para comércio em outro símbolo gráfico ( por exemplo: GBPUSD, NZDUSD e assim por diante. ) O cálculo de lucro de pedidos não sincroniza com o painel ' Terminal > Trade '.
( Não esqueça que eu já conheço o OnTimer(), que você me ajudou como posso usá-lo por 4 ticks por segundo. )

Toda essa preocupação vem daqui.

Hoje, abro posições para prazos curtos, se abro posições para prazos longos, não darei atenção a essa sincronia com o Comércio Terminal.

---

Espero que vocês me entendam agora mais claramente.

Tudo de bom.

 

Bem, se você realmente quiser esperar por cada tick terá que escrever uma EA separada para cada símbolo e usar a função OnTick().

Mas posso dizer que também programo microcontroladores e eles estão em um loop interminável (para sempre) até que ocorra uma falha de energia, ou uma interrupção.

Para verificar se uma condição é verdadeira ou falsa, use o menor tipo de dados booleanos e seu processador já faz isso milhões se não bilhões de vezes por segundo com todos os processos rodando em segundo plano e os gráficos, etc.

É quando você começa a fazer cálculos pesados envolvendo tipos de dados maiores, que isto se torna um problema.

Razão: