Como Ignorar os Fins de Semana e o Futuro em Datetime - página 2

 
Jonathan Pereira:

olhando por cima me parece errada a sua chamada, olhei a documentação e notei que vc esta sobrecarregando a função com a segunda variante.

Desculpe, não sei ainda o que significa sobrecarregar a função (iniciando em programação). Existe uma solução para o meu problema?

 
israeltandrade:

Desculpe, não sei ainda o que significa sobrecarregar a função (iniciando em programação). Existe uma solução para o meu problema?

Sobrecarga ou Overload é usar um mesmo nome em uma função. Não podemos criar duas funções com o mesmo nome, a não ser que vc crie “assinaturas” diferentes, o que isso significa, que os nomes das funções podem até ser repetidos mas os parâmetros devem ser diferentes.
Vc vai ver que em MQL5 isso é muito comum, uma mesma função tem mais de uma assinatura.
Como disse eu não cheguei a testar, mas acredito que a forma que vc está chamando deve ser passado uma data e hora, e não somente hora. Mas novamente eu NÃO testei. Eu uso essa função passando Index da vela que quero copiar, seria a primeira forma, acho mais simples.
Na verdade trabalhar com data/hora em MQL5 é chato, rsrsrsrs, eu opto pelo simples sempre.
 

E mais uma vez você está certo! :) Muito obrigado!

Resultado do script após alteração sugerida:

2020.07.10 15:26:00 2020.07.10 15:27:00 2020.07.10 15:28:00 2020.07.10 15:29:00 2020.07.10 15:30:00

Mas agora então estou diante de outro problema... Como juntar a hora e minuto selecionado pelo usuário com o prefixo 'D 2020.07.12 (que seria a data de hoje).

Embora eu saiba como concatenar uma ´parte com a outra em uma string, como separar a primeira parte do datetime do dia atual e completar com a hora selecionada pelo usuário?

 

CONSEGUI!!!

Tentei informar a área da função CopyTime referente a data com uma concatenação de string que resultaria na data de exemplo (2020.07.10 15:30 esqueça o D e as aspas simples que dá certo).

O código para conferirem:

string     time = "2020.07.10 15:30";
datetime   timeData = StringToTime(time);

void OnStart()
  {
   Print(time);
   
   Print(timeData);
  }
Muito obrigado a todos que me ajudaram até aqui! Um abração!