Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1381

 
Alexey Viktorov:

Não há nada de sobrenatural nisso. O usual OBJ_BITMAP_LABEL e nele o que você quiser como recurso. Kanvas também trabalha em OBJ_BITMAP_LABEL.

Mas seu caminho é muito mais fácil para um desenvolvedor novato.

Entendo seu ponto de vista, obrigado.
 
Alexey Viktorov:

Por favor, aprenda como inserir código em uma mensagem.

E para a pergunta: Leia a documentação no CopyTicksRange

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = TimeCurrent() - 10000;
ulong to_msc = TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc);
  }
//+------------------------------------------------------------------+
Não funciona. Toda vez que o OnTick é chamado, o resultado da variável Ticks é 0.
 
Boris:
Não funciona. Toda vez que o OnTick é chamado, o resultado da variável Ticks é 0.

Você tem certeza de que precisa de carrapatos passados ao entrar. 10 segundos não é tão longo, você pode esperar e contar os tiquetaques reais e seu número.

Em geral, são necessárias 2 variáveis para o primeiro segundo e lembrar quantos ticks houve em 9 segundos e somá-los, depois contar ticks para o segundo seguinte, subtrair o primeiro e adicionar o último. Os resultados devem ser armazenados ou em um array ou em uma variável.

 
Valeriy Yastremskiy:

Você tem certeza de que precisa de carrapatos passados ao entrar. 10 segundos não é tão longo, você pode esperar e contar os tiquetaques reais e seu número.

Em geral, são necessárias 2 variáveis para o primeiro segundo e lembrar quantos ticks houve em 9 segundos e somá-los, depois contar ticks para o segundo seguinte, subtrair o primeiro e adicionar o último. Estes resultados são salvos ou em uma matriz ou em uma variável.

Acontece que isso não pode ser feito através das funções CopyTicks e CopyTicksRange?

Obrigado.

 
Boris:
Não funciona. Cada vez que o OnTick é chamado, o resultado da variável Ticks é 0.

Leia a documentação!!!

Ou você quer toda a documentação copiada peça por peça????

de_msc

[em] Data a partir da qual os carrapatos são solicitados. Especificado em milissegundos a partir de 01.01.1970. Se o parâmetrofrom_msc não for especificado, então os carrapatos são devolvidos desde o início da história. Os bilhetes com tempo >= de_msc são devolvidos.

to_msc

[em] Data, na qual os carrapatos são solicitados. Especificado em milissegundos a partir de 01.01.1970. Os bilhetes com tempo <= a_msc são devolvidos. Se o parâmetroto_msc não for especificado, todos os ticks até o final do histórico são dados .

 
Valeriy Yastremskiy:

Você tem certeza de que precisa de carrapatos passados ao entrar. 10 segundos não é tão longo, você pode esperar e contar os tiquetaques reais e seu número.

Em geral, são necessárias 2 variáveis para o primeiro segundo e lembrar quantos ticks houve em 9 segundos e somá-los, depois contar ticks para o segundo seguinte, subtrair o primeiro e adicionar o último. Salvar os resultados para uma matriz ou uma variável.

Por que dar tal conselho?

 
Boris:

Então isso não pode ser feito através das funções CopyTicks e CopyTicksRange?

Obrigado.

Sim, você pode. Leia a documentação, e depois pergunte o que você não entendeu na documentação. Desta forma, você chegará à verdade mais rápido).

 
Alexey Viktorov:

Por que dar tal conselho?

Eu mesmo faço isso. Por que entrar em estruturas quando você mesmo pode consertar ações curtas.

 
Valeriy Yastremskiy:

Eu mesmo faço isso. Por que entrar em estruturas quando você mesmo pode consertar ações curtas.

E eu coço minha orelha esquerda com meu dedo mindinho direito... Eu posso te ensinar... Você precisa disso? Não ensine aos outros o que você está fazendo através de .....................

 
Valeriy Yastremskiy:

Você pode. Leia a documentação e depois pergunte o que você não entendeu na documentação. Esse é o caminho mais rápido para a verdade).

Então... Leia a documentação (novamente).

#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlTick Tick_Mql[];
ulong ten_msc =(ulong)TimeCurrent()-10000; // 1 секунда = 1000 милисекунд
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

//---

ulong from_msc = (ulong)TimeCurrent() - 10000;
ulong to_msc = (ulong)TimeCurrent();
int Ticks = CopyTicksRange(_Symbol,Tick_Mql,COPY_TICKS_ALL,from_msc,to_msc); //(с текущего времени - 10 сек назад)
// либо CopyTicks(_Sybol,Tick_Mql,COPY_TICKS_ALL,from_msc,0); //(все тики от 10 сек назад до настоящего времени)
  }

Pergunta. O que está errado? Não conta nem com o CopyTicksRange nem com o CopyTicks