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

 
User_mt5 #:

Por favor, explique...

A Bíblia diz: A variável _Periodo armazena o valor do período de tempo do gráfico actual.

Os valores reais de _Periodo para a TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique por favor, os números 60, 120, etc... já não estão em voga?

Se sabe, pelo menos dê-me uma dica sobre qual é o truque aqui?

E agora tenho medo de perguntar ... onde mais no nosso misterioso MQL estão esses truques? :(

aqui estão os períodoshttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

em vez de números - escreva os períodos

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Por favor, explique...

A Bíblia diz: A variável _Periodo armazena o valor do período de tempo do gráfico actual.

Os valores reais de _Periodo para a TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique por favor, os números 60, 120, etc... já não estão em voga?

Se sabe, pelo menos dê-me uma dica sobre qual é o truque aqui?

E agora tenho medo de perguntar ... onde mais no nosso misterioso MQL estão esses truques? :(

Deve ler toda a Ajuda:

Conteúdo da variável_Periodo, em que o valor temporal do gráfico actual é armazenado. O valor pode ser um dos valoresda enumeraçãoENUM_TIMEFRAMES. A palavra-chave aqui é "... enumeraçãoENUM_TIMEFRAMES".

E DEVE utilizar ENUMENTOS da enumeração. Por exemplo PERÍODO_H1, PERÍODO_M15 ... E não precisa de saber que valor interno um item de enumeração tem.

Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
_Period - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Por favor, explique...

A Bíblia diz: A variável _Periodo armazena o valor do período de tempo do gráfico actual.

Os valores reais de _Periodo para a TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique por favor, os números 60, 120, etc... já não estão em voga?

Se sabe, pelo menos dê-me uma dica sobre qual é o truque aqui?

E agora tenho medo de perguntar ... onde mais no nosso misterioso MQL estão esses truques? :(

Como é que os conseguiu?

 
SanAlex #:

há períodos aquihttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

em vez de números - escreva os períodos

Obrigado pelo conselho.

Se a característica for conhecida, não é difícil tê-la em conta. Eu uso PeriodSeconds();

O problema é que não se sabe de antemão de onde provêm estas... características.

 
Vladimir Karputov #:

A ajuda deve ser lida na íntegra:

Conteúdo da variável_Periodo, que armazena o valor temporal do gráfico actual. O valor pode ser um dos valores daenumeração deENUM_TIMEFRAMES. A chave aqui é "... enumeração deENUM_TIMEFRAMES".

E DEVE utilizar ENUMENTOS da enumeração. Por exemplo PERÍODO_H1, PERÍODO_M15 ... E não precisa de saber que valor interno um item de enumeração tem.

Obrigado pela vossa participação.

Mas o problema é - Eu nem sequer consigo ler:(

E em geral, não espero que me digam o que devo fazer. Esperava obter uma resposta à minha pergunta estúpida.

 
Сергей Таболин #:

Como é que os conseguiu?

Print("_Period = ", _Period );
 
User_mt5 #:

Aí está. Obtém-se o valor da enumeração.

User_mt5 #:

...

Se a característica for conhecida, não é difícil tê-la em conta. Eu uso PeriodSeconds();

...

Se a utilizasse, a questão não se colocaria.

 
User_mt5 #:

Por favor, explique...

A Bíblia diz: A variável _Periodo armazena o valor do período de tempo do gráfico actual.

Os valores reais de _Periodo para a TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Explique por favor, os números 60, 120, etc... já não estão em voga?

Se sabe, pelo menos dê-me uma dica sobre qual é o truque aqui?

E agora tenho medo de perguntar ... onde mais no nosso misterioso MQL estão esses truques? :(

Fonte:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

O Significado Escondido dos Prazos na MQL5

Serhii Shevchuk, 2017.02.27 01:53

Sim, mas é lento. Esbocei um pequeno guião para comparação:

#property script_show_inputs

input long              InpCycles=1000000000;

ENUM_TIMEFRAMES TF_list[32]={
PERIOD_MN1, PERIOD_W1,  PERIOD_D1,  PERIOD_H12,
PERIOD_H8,  PERIOD_H6,  PERIOD_H4,  PERIOD_H3,  
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20,
PERIOD_M15, PERIOD_M12, PERIOD_M10, PERIOD_M6,  
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,  
PERIOD_M1,  PERIOD_MN1, PERIOD_W1,  PERIOD_D1,
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20
};

int PeriodMinutes(ENUM_TIMEFRAMES tf)
{
      uint t = uint(tf);
      uint f = 0xc000&t;
      uint min = 0x00FF&t;
      if(f==0x4000) min*= 60;
      else if(f==0x8000) min*= 10080;
      else if(f==0xc000)  min*= 43200;
      return(int(min));  
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ulong tmp = 0;
   //
   uint idx = 0;
   ulong t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodMinutes(TF_list[0x1f&(idx++)]);  
   ulong t1 = GetMicrosecondCount();
   Print("1) tmp = ",tmp,"... dT = ",t1-t0);
//---
   tmp = 0;
   idx = 0;
   t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodSeconds(TF_list[0x1f&(idx++)])/60;
   t1 = GetMicrosecondCount();
   Print("2) tmp = ",tmp,"... dT = ",t1-t0);
//---
  }    
//+------------------------------------------------------------------+
Como pode ver, é cerca de metade tão lento como se-unidades:



и

 
Сергей Таболин #:

Aí está. Está a receber o valor da enumeração.

Se o tivesse feito, a questão não teria surgido.

Não estou de acordo.

Acho que isso não é uma desculpa ou mesmo uma explicação.

A lógica geral das variáveis predefinidas é que elas podem ser acedidas directamente, e dão os seus valores.

É assim que se pode aceder, por exemplo, a _Ponto, _Dígitos, etc. E não há problema.

Intuitivamente, espera-se que todas as outras variáveis pré-definidas tenham propriedades semelhantes.

Mas no caso do _Periodo, não é este o caso.

--

Mais uma vez, obrigado a todos vós. Vamos considerar a questão resolvida.
Tenham um bom fim-de-semana, todos!)

 
Fast235 #:

para que serve o encriptador incorporado no mql? não consigo encontrar uma utilização razoável para ele

não faz sentido encriptar de si mesmo, e apenas os terminais variáveis globais são visíveis para um segundo utilizador

Guardar o seu estado em disco, trocar dados através da Internet.