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:
- 106
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Esse bloco de código detecta uma New Bar ou uma New Candle quando é recebido.
O princípio básico dos códigos é muito simples. Primeiro, o código armazena o tempo da barra/vela anterior. (Em seguida, adiciona 60 segundos (igual a 1 min. você pode adicionar o tempo que quiser) ao tempo da barra anterior, o que dá o valor do tempo de fechamento da barra/vela atual.
Uma vez,
Hora atual = valor da hora de fechamento da barra / vela atual, o que significa que uma nova barra foi recebida / a barra atual foi fechada.
Nesse código, o sinalizador (a variável do tipo bool 'NewBarRecived') evita a chamada múltipla desse bloco de código, o que significa que esse bloco de código é executado apenas uma vez por barra/vela. O Comment(); e o playsound("ok.wav"); são usados para verificar a precisão do bloco de código. Você pode removê-los se quiser.
O sinalizador é redefinido como falso quando o tempo atual estiver acima do tempo de fechamento do candle atual para verificar a chegada da próxima barra. (Observe os comentários para ver).
//+------------------------------------------------------------------+ //|Nova detecção de barra.mq5 //|por H A T Lakmal //|https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarRecived = false; // Falg para controle. //+------------------------------------------------------------------+ //| Função de inicialização especializada| //+------------------------------------------------------------------+ int OnInit() { //--- criar cronômetro EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Função de desinicialização de especialista| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destruir o cronômetro EventKillTimer(); } //+------------------------------------------------------------------+ //| Função de tique de especialista| //+------------------------------------------------------------------+ void OnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // Tempo de fechamento da barra atual. datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarRecived == false) { PlaySound("ok.wav"); // Para o trabalho de declaração de não. NewBarRecived = true; // Atualize o sinalizador para evitar várias chamadas. // Seu código vai para cá ----- (Do Something) } else if(Time_Current > TimeCurrentClose) { NewBarRecived = false; // Descanse a bandeira para a próxima barra aberta. // Seu código vai para cá ----- (Do Something) } Comment("\n" + "\n" + "Time Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "A New Bar Recived -: " + NewBarRecived); // Para cálculos de verificação } //+------------------------------------------------------------------+ //| Função de cronômetro| //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| Função comercial| //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ //| Função ChartEvent| //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/49018
Code Block for "Trailing Stop" based on current market price. (Ask / Bid)
Esse bloco de código percorre todas as posições abertas e faz o trailing com base nos preços Ask e Bid.
PHSB Screener
This Screener was created to simplify the process of finding assets trading at discounted prices. Initial usage may take slightly longer due to the data loading process for all selected instruments. The tool can scan all available broker assets or be limited to specific asset classes.
Logarithmic Moving Average
A Média Móvel Logarítmica calcula continuamente a média logarítmica do preço mais alto e do preço mais baixo em um período.
Faixa média diária
Indicador de intervalo médio diário.