Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Com a MQL5 para Metatrader5 criamos um Expert Advisor para permitir ou não a negociação com base numa hora de início e uma hora de paragem. Estamos a utilizar a data/hora para obter a hora actual e permitir ou não a negociação automatizada.
Neste vídeo, vamos criar um filtro para entradas baseadas na hora, por isso vamos descobrir como fazer isso com mql5.
Para começar, por favor clique num pequeno ícone aqui ou prima F4 no seu teclado. Agora deve ver a janela do Metaeditor e aqui quer clicar em ficheiro, novo ficheiro, consultor especializado de modelo, vou chamar a este ficheiro, simples filtro de tempo, clicar em continuar, continuar e terminar.
Agora pode apagar tudo acima da função ontick e as duas linhas de comentário aqui.
Começamos com uma declaração para incluir o ficheiro de troca de pontos mqh, este vem com mql5 e dar-nos-á funções de troca simplificadas, por isso vamos criar uma instância da classe ctrade, chamaremos a isso uma troca.
Agora vamos criar uma variável de entrada definida pelo utilizador, esta é uma variável de string chamada „start trading time“. No meu caso, uso 9:00 da manhã e também gostaria de ter uma hora de paragem de negociação, esta está definida para as 10:00 da manhã e só poderemos negociar dentro do horário de negociação permitido e, para isso, precisamos também de criar uma variável string para a hora actual, e se a hora actual não estiver dentro do horário de negociação permitido, definiremos a variável, negociação permitida a falso, esse é também o valor por defeito aqui.
Dentro da função ontick usamos o símbolo info double para o símbolo actual no gráfico para calcular o preço pedido que é feito usando o símbolo underscore ask e com normalizar os dígitos double e underscore calculamos automaticamente o número correcto de dígitos atrás do ponto.
O preço de venda é suficiente para este simples exemplo porque não vamos utilizar nenhum sinal de entrada para ver se a primeira transacção é realmente aberta às 9:00 da manhã.
Agora vamos usar a hora local, isto irá retornar a hora local de um computador onde o terminal cliente está a funcionar, portanto esta é a sua hora actual, mas vamos usar um valor de string, por isso, tomamos o tempo aqui e usamos o timetostring para a hora actual para obter o tempo sublinhado minutos e isso dar-nos-á as horas actuais e os minutos actuais e, como usámos o timetostring, esta será uma variável de string, por isso agora temos a hora actual e vamos usar uma função que se chama verificação tempo de negociação e apenas se este retornar verdadeiro o nosso consultor especializado é autorizado a abrir quaisquer posições e se o total de posições retornar um valor zero – isso significaria que não temos nenhuma posição aberta – e é neste momento que vamos usar o trade dot buy para abrir uma negociação de compra por dez microlotes apenas com base no filtro de tempo.
Não o faria numa conta real, mas para este simples exemplo, é suficientemente bom.
Também queremos acrescentar uma declaração de comentários, que nos dará o resultado se a negociação for permitida ou não, a hora actual, e os valores para o início da negociação e o tempo de paragem da negociação.
É tudo para a função principal.
Portanto, vamos criar esta função personalizada que queremos chamar, o valor de retorno será bool, portanto é verdadeiro ou falso, o nome da função é verificar o tempo de negociação e se conseguirmos encontrar um substring que seja igual ao tempo de início de negociação dentro da hora actual, que é quando definimos que a negociação é permitida para verdadeiro.
O substring de corda começará com o primeiro carácter, poderá usar comprimento igual a menos um, no nosso caso, defini-o para cinco e só quando o tempo de início de negociação estiver incluído na hora actual é que queremos permitir que o consultor especializado abra uma nova posição.
Caso contrário, se o tempo de paragem da negociação estiver incluído na hora actual, é quando queremos definir que a negociação seja autorizada a falsificar.
Finalmente, utilizamos a declaração de retorno para devolver o valor para negociação é permitido à nossa função principal.
Pronto, é tudo.
Se isto foi demasiado rápido para si ou se não tem ideia do que todo o código aqui faz, talvez queira ver um dos outros vídeos desta série básica de vídeos ou talvez até o curso premium no nosso website possa ser interessante para si.
A propósito, esta era outra ideia de um membro do curso premium, por isso se já é um membro do curso premium e tem uma ideia para um vídeo como este, por favor informe-me.
Agora, por favor clique no botão de compilação ou prima F7 no seu teclado, não deve ver nenhum erro aqui e se for este o caso, pode clicar num pequeno botão aqui ou prima F4 para voltar a Metatrader.
E dentro do Metatrader, por favor clique em view, strategy tester ou prima control e r, vamos utilizar um modelo limpo sem quaisquer indicadores, por favor escolha o novo ficheiro simples de filtro de tempo ponto ex5, marque aqui a opção para o modo visual e inicie um teste.
Aqui está o nosso conselheiro especializado! O tempo está a contar e assim que diz que temos 9:00 da manhã devemos ver uma troca aqui, aqui está, agora vamos parar o teste, mudar a janela de tempo de oito para dez, reiniciar o teste.