Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 83
- Avaliação:
- Publicado:
- Atualizado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Biblioteca para controle de sessão de negociação. Na inicialização, ela conta os horários das sessões de negociação para todos os 7 dias da semana (pode haver negociação de criptomoedas aos sábados e domingos), até 10 sessões por dia. Em seguida, em OnTick(), você pode fazer verificações e, se um tick estiver fora da sessão de negociação, você pode encerrar o processamento.
Exemplo de uso:
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 //+------------------------------------------------------------------+ // #definir LoadSessionFromInputs // Ler sessões de entradas #include <Forester\Control_Trade_Sessions.mqh> // conectar o código para controlar a sessão de negociação int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// obtém os horários de abertura/fechamento do mercado e os salva em matrizes por dias da semana. Chamado uma vez ao iniciar o Expert Advisor (veja static). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // suas ações }
O resultado é uma impressão como esta:
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
Novas funções MQL5 são usadas para ler a sessão de negociação de qualquer dia, incluindo fins de semana.
Funciona o mais rápido possível, apenas uma verificação é feita em cada tick dentro da sessão de negociação:
.
if(time < this.NextTradeStop ) { return true; }Onde NextTradeStop é o horário de término da sessão de negociação atual.
A cada tick fora da sessão de negociação, também é feita uma verificação:
if(time < this.NextTradeStart ) { return false; }Somente na transição entre as sessões, as matrizes são acessadas para obter o horário da próxima sessão.
Por exemplo, no meu CD, a sessão de negociação é das 00:15 às 23:55. Com o primeiro tick após 00:15, NextTradeStop será definido como 23:55 e, então, somente essa condição será verificada durante todo o dia.
Suas sessõesde negociação
Você também pode especificar o horário das sessões de negociação manualmente. Para ativar essa opção, adicione a linha
.
#define LoadSessionFromInputs // Ler sessões de entradas
Ela criará 7 entradas para inserir as sessões de negociação por dia da semana.
Digite os horários das sessões sem espaços, estritamente com : - e ,
A aparência é a seguinte na guia de parâmetros:

E é assim que a saída será exibida no registro:
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : ticks reais começam a partir de 2022.05.10 00:00:00, cada geração de ticks usada
2022.01.10 00:05:00 Dia: 1 Sessões de negociação: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Dia: 2 Sessões de negociação: 1: 00:15-23:55
2022.01.10 00:05:00 Dia: 3 Sessões de negociação: 1: 00:10-17:45, 2: 17:55-23:00, 3: 23:05-23:55
2022.01.10 00:05:00 Dia: 4 Sessões de negociação: 1: 00:15-17:45, 2: 17:55-23:55
2022.01.10 00:05:00 Dia: 5 Sessões de negociação: 1: 00:15-23:55
2022.01.10 00:05:00 Dia: 6 Sessões de negociação: 1: 00:15-23:55
2022.01.10 00:05:00 Mercado fechado. OnTick return
...
Se o horário de término da sessão for menor que o horário de início, por exemplo, 20:00-8:00, a sessão continuará até as 8:00 do dia seguinte. Isso pode ser útil nos casos em que a sessão de negociação estiver em um fuso horário diferente do horário do servidor.
O horário das sessões de negociação também pode ser especificado no código sem entradas. A função LoadFromInputs() foi criada para essa finalidade. Ela pode ser chamada sem Inputs, mas diretamente do código com uma matriz de strings, como no exemplo.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
Se o Expert Advisor for multimoeda e diferentes instrumentos tiverem diferentes horários de sessão de negociação, você poderá criar uma instância separada de TRADE_SESSIONS para cada instrumento e chamar LoadFromInputs() com dados de sessão e verificar isSessionTrade(). Para fazer isso, você terá de modificar o código de forma semelhante a este exemplo.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/48059
Candle Fitness
O conceito Candlestick Fitness é usado na codificação de HFT Algos com base em algoritmos de otimização de população.
Voitto Tappio Candle Gain Candle Loss MT5
Mostre o ganho e a perda do candle em porcentagem.
Moving Averages-14 different types
Esse é um indicador que calcula 14 tipos de médias móveis com base no preço de fechamento.
Confluence Index Stoch+RSI+MACD
Índice de Confluência MULTI TF Stoch+RSI+MACD