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

 
forexman77:

Muito obrigado! Funciona.

Explicar a lógica do mql5. Em mql4, int Hora() é usado para determinar o tempo em horas. Em mql5, não existe tal constante, tanto quanto eu entendi.

1.Como é que o programa reconhece que estamos a pedir o tempo em horas? Presumo deMqlDateTime?

2.Para adicionar a hora actual em minutos à hora actual em horas, ou seja, para descobrir a hora actual em minutos, a construção seria assim

1. Sim

2. Certo.

 

Segundo dia de reformulação da EA de mql4 para mql5.

1. Preciso de encontrar a hora de abertura do bar diário em segundos a partir de 01.01.1970. Encontrei a função no fórum:

//--- переменные для указания параметров функции
int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(tp[0]);

Não tenho a certeza se a função encontra a hora da última ou da primeira barra.

A hora é exibida como o início do dia de negociação, sob a forma de data e hora.

Encontrei a função StringToTime; parece fazer o que preciso mas tentei combinações diferentes e agora sinto-me como um chimpanzé que não consegue compreender que botão carregar para abrir a porta à maçã.

3. Não tenho funções iBarShift, iLow, iLowest em mql5. Poderia aconselhar como encontrar o mínimo durante um determinado período de tempo todos os dias ou que funções emmql5 devem ser utilizadas para resolver este problema?

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
forexman77:

Segundo dia de reformulação da EA de mql4 para mql5.

1. Preciso de encontrar a hora de abertura do bar diário em segundos a partir de 01.01.1970. Encontrou a função no fórum:

2. Encontrei a função StringToTime e parece fazer o que eu preciso. Mas tentei combinações diferentes e agora sinto-me como um chimpanzé que não sabe que botão carregar para abrir a porta à maçã.

Não tenho funções iBarShift, iLow, iLowest em mql5. Pode dizer-me como encontrar o mínimo durante um determinado período de tempo todos os dias, ou que funções emmql5 devo utilizar para resolver este problema?

1,2. Por favor, leia aqui.

3. leia aqui.

 
DC2008:

1,2. Leia aqui.

3. leia aqui.

Sobre a segunda pergunta. Reler tudo sobre a data/hora. "O tipo de data e hora destina-se a armazenar a data e a hora à medida que o número de segundos decorreu desde 01 de Janeiro de 1970".

Então, ao chamar o alerta, diz: 2013.10.02 00:00:00, e não o número de segundos.

 
forexman77:

Sobre a segunda pergunta. Reler tudo na data/hora. "O tipo de data e hora destina-se a armazenar a data e a hora à medida que o número de segundos decorreu desde 01 de Janeiro de 1970".

Porquê então quando o alerta é chamado mostra: 2013.10.02 00:00:00 e não o número de segundos.

Agora leia aqui. Para o emitir no alerta, é necessário converter o tipo de data/hora para o tipo int.

 
DC2008:

Agora leia aqui. Para sair no alerta, é necessário converter o tipo de data/hora para tipo int.

Fiz uma construção como esta:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
int st=tp[0];
Alert("st=",st);

Comparei-o ao metatrader 4 e obtive o mesmo número.

Mas a mensagem é amarela ao compilar mql5:

possível perda de dados devido à conversão do tipo

Tentei fazê-lo desta forma:

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(IntegerToString(tp[0]));
Sem erros. Mas não sei onde anexara IntegerToString para obter o valor sem alertar, porque será utilizada pelo Expert Advisor para cálculos. Só não entendo que será um valor de corda, ou seja, pode ser usado como uma comparação com outro número?
 
forexman77:

Fez uma construção como esta:

em comparação com o metatrader 4, o resultado é o mesmo número.

Excepto que a mensagem sai amarela ao compilar mql5:

possível perda de dados devido à conversão do tipo

É mais simples do que isso!

//--- вывод результата
Alert("st=",(int)tp[0]);
 

Pode dizer-me como criar um sinal se em tempos fui subscrito por outro?

Ou seja, eu já me desinsergi dele. Não será realmente possível?

Feito 100% em menos de 2 semanas e não pode ser partilhado com ninguém(

 
esta também é uma questão interessante
 
DC2008:

É mais simples do que isso!

Ainda assim, precisarei da variável "st" não só em Alerta, mas também para cálculos, e o aviso de "possível perda de dados devido à conversão do tipo" aparece quando da compilação.

Presumo que isto se deve ao facto de receber um número de 10 dígitos, enquanto o valor máximo em int é 2 147 483 647, actualmente recebo 1 380 758 400. Talvez faça sentido usar longos e provavelmente a EA irá consumir muitos recursos nesta parte?

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
Общие функции / Alert - Документация по MQL5