Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

aChartsAndMW5Class - biblioteca para MetaTrader 5

Visualizações:
1023
Avaliação:
(19)
Publicado:
2017.02.13 12:43
\MQL5\Include\ \MQL5\Experts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Classe que permite definir facilmente - a partir de seus programas MQL5 - as alterações na janela "Observação do mercado" (alteração da classificação dos símbolos, adição, exclusão de símbolo ou conjunto de símbolo), abertura e fechamento de novos gráficos, bem como presença/ausência do painel de negociação num clique, no gráfico, onde o programa está em execução. A classe trabalha com o princípio de envio de eventos personalizados para o programa de controle.

O programa inclui métodos públicos:

Método
 DescriçãoValor de retorno
Métodos de trabalho com gráficos
  
bool IsChartOneClick(void)
Retorna o sinalizador de presença de painel de negociação OneClick, no gráfico
bool true/false
uchar GetChartNumbers(void)
Retorna o número de gráficos abertos do terminal
uchar Número de gráficos abertos
long GetOpenedChartID(void)
Retorna o identificador do gráfico recém-aberto
long ChartID()
string GetOpenedSymbol(void)
Retorna o nome do símbolo do gráfico recém-aberto
string ChartSymbol()
ENUM_TIMEFRAMES GetOpenedTimeframe(void)
Retorna o timeframe do gráfico recém-abertoENUM_TIMEFRAMES ChartPeriod()
long GetClosedChartID(void)
Retorna o identificador do gráfico recém-fechadolong ChartID()
string GetClosedSymbol(void)
Retorna o nome do símbolo do gráfico recém-fechadostring ChartSymbol()
ENUM_TIMEFRAMES GetClosedTimeframe(void)
Retorna o timeframe do gráfico recém-fechadoENUM_TIMEFRAMES ChartPeriod()
bool IsOpenedIsObject(void)
Retorna uma indicação de que o gráfico aberto é um objeto
bool true/false
bool IsClosedIsObject(void)Retorna uma indicação de que o gráfico fechado era um objetobool true/false
bool CheckOpenChart(string symbol_name);
Verifica se o gráfico do síbolo está aberto
bool true/false
bool CheckOpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe)
Verifica se o gráfico do símbolo está aberto com o timeframe especificado
bool true/false
long OpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe)
Abre o gráfico do símbolo
long ChartID()
bool IsOpenedAllCharts(void)
Retorna o sinalizador de presença de gráficos abertos de todos os símbolos na Observação do mercado
bool true/false
Métodos de trabalho com a janela "Observação do mercado"


bool PutSymbolToMarketWatch(string symbol_name)
Coloca o símbolo na Observação do mercado
bool true/false
bool IsExistSymbolInMW(string symbol_name, bool select=false)
Retorna o sinalizador de presença do símbolo na Observação do mercado/no servidor
bool true/false
int GetNumSymbolsInMW(void)
Retorna o número de símbolos na Observação do mercado
int Número de símbolos na Observação do mercado
int GetNumAllSymbols(void)
Retorna o número de símbolos disponíveis
int Número de símbolos no servidor
void ClearMarketWatch(void)Remove todos os possíveis símbolos da Observação do mercadovoid
Eventos personalizados a serem enviados pela classe para o programa de controle:
Identificador
Valor
 Descrição
CHARTEVENT_CHART_OPEN32Evento de abertura de um novo gráfico
CHARTEVENT_CHART_CLOSE33Evento de fechamento do gráfico
CHARTEVENT_MW_SYMBOL_ADD34Evento de adição de símbolo na Observação do mercado
CHARTEVENT_MW_FEW_SYMBOL_ADD35Evento de adição de alguns símbolos na Observação do mercado
CHARTEVENT_MW_SYMBOL_DEL36Evento de exclusão de símbolo da Observação do mercado
CHARTEVENT_MW_FEW_SYMBOL_DEL37Evento de exclusão de alguns símbolos da Observação do mercado
CHARTEVENT_MW_CHANGE_SORT38Evento de alteração da classificação de símbolos na Observação do mercado
CHARTEVENT_CHART_CHANGE_ONE_CLICK39Evento de abertura/fechamento do painel OneClick

Eu fiz que os valores dos identificadores fossem chamados com os indicadores da biblioteca gráfica de Anatoli Kazharski, embora seja possível defini-los da maneira mais adequada para você.

Os valores a serem enviados em conjunto com o evento para o programa de controle:

Identificador
 lparamdparam
 sparam
CHARTEVENT_CHART_OPENlong ChartID do gráfico aberto
ENUM_TIMEFRAMES Período do gráfico aberto
string Símbolo do gráfico aberto
CHARTEVENT_CHART_CLOSElong ChartID do gráfico fechadoENUM_TIMEFRAMES Período do gráfico fechadostring Símbolo do gráfico fechado
CHARTEVENT_MW_SYMBOL_ADDint Número atual de símbolos
int Número passado de símbolos
string Símbolo adicionado
CHARTEVENT_MW_FEW_SYMBOL_ADDint Número atual de símbolosint Número passado de símbolosstring Último símbolo a ser utilizado
CHARTEVENT_MW_SYMBOL_DELint Número atual de símbolosint Número passado de símbolosstring Símbolo excluído
CHARTEVENT_MW_FEW_SYMBOL_DELint Número atual de símbolosint Número passado de símbolosstring Último símbolo a ser utilizado
CHARTEVENT_MW_CHANGE_SORTint Número atual de símbolosint Número atual de símbolosstring Último símbolo a ser utilizado
CHARTEVENT_CHART_CHANGE_ONE_CLICKint Coordenada X da borda direita do painel
int Coordenada Y da borda inferior do painel
string Descrição do estado do painel:
"CHART_IS_ONE_CLICK_ON" - há um painel
"CHART_IS_ONE_CLICK_OFF" - mão há nenhum painel

Para conectar a classe ao programa, é necessário, no escopo global, conectar o arquivo e criar uma instância de classe:

#include <aChartsAndMWClass.mqh>
CChartsMW   mw;

Além disso, deve ser ligado, na OnTimer() do programa, o temporizador de classe:

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- Conexão do temporizador de classe
   mw.OnTimerEvent();
  }
//+------------------------------------------------------------------+

E, por sua vez, na OnChartEvent(), conectar o manipulador de evento de classe:

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Conexão do manipulador de eventos de classe
   mw.OnEvent(id,lparam,dparam,sparam);

  }
//+------------------------------------------------------------------+

Agora, na OnChartEvent() do programa, é possível receber e processar eventos a serem retornados pela classe.

Exemplo, obter eventos a partir da classe mostrada na Expert Advisor exTestChartsMWClass.mq5 anexado

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/17448

Alpha Trend Spotter Price Action Alpha Trend Spotter Price Action

Indicador de sinal semáforo de acordo com a estratégia de movimento de preço para encontrar a tendência mais forte, com emissão de alertas, envio de e-mails e mensagens push sobre a alteração da tendência.

Exp_TDI-2_ReOpen Exp_TDI-2_ReOpen

Sistema de negociação Exp_TDI-2_ReOpen com base na interseção da linha do indicador TDI-2 com recarregamentos (aliás, aberturas adicionais de ordens na direção da posição já existente)

SilverTrend v3 SilverTrend v3

SilverTrend v3 - negociação com base na análise de High, Low e Close dos preços das barras.

New Martin New Martin

New Martin - Expert Advisor que, no início, abre duas posições opostas. Processamento OnTradeTransaction. Assim que o Take Profit se executar, ele abrirá (UMA) posição na mesma direção. A interseção de dois indicadores MA é um sinal para abertura da posição com um lote maior.