Sunday 6 August 2017

Mql4 Forex Factory


MetaTrader 4 - Exemplos Exibindo um Calendário de Notícias Introdução Este artigo contém a descrição de escrever um indicador simples e conveniente exibindo em uma área de trabalho os principais eventos econômicos de recursos externos da Internet. A operação de indicadores é assim: Aqui está uma lista de requisitos para o indicador: O indicador deve, independentemente (sem ajuda de usuários), baixar um arquivo necessário do calendário de eventos para a semana atual. O indicador deve exibir todos os eventos (passados ​​e futuros) deste arquivo na forma de linhas verticais com manchetes de notícias. O indicador deve rastrear a atualização de eventos no recurso externo. Depois de ter especificado a tarefa, podemos analisar alguns detalhes técnicos. Peça técnica Vamos usar o site dailyfxcalendar como um recurso externo. A conveniência deste recurso é que ele permite baixar um calendário com extensão. csv, portanto, evitamos dificuldades em trabalhar com arquivos html. Aqui está um link de notícias para a semana atual: dailyfxcalendarDailyfxGlobalEconomicCalendar. csv. Agora, vamos nos concentrar no processo de download do arquivo da Internet. Isso pode ser feito usando um conhecido programa GetRight. Pode ser baixado em: getrightget. html ou da lista de anexos para este artigo. Depois de baixar o programa, configure o GetRight para fazer o download de arquivos em um diretório necessário. É o diretório fileshtml na pasta do seu terminal comercial. Para fazer isso, pressione F8 e altere a escrita no campo conforme descrito abaixo: Escrevendo o Indicador Agora, tendo respondido algumas perguntas, podemos começar a escrever o indicador. Existem apenas duas variáveis ​​externas: o endereço do recurso externo (na verdade, você não precisa alterar esse parâmetro) e o endereço do programa GetRight (se você baixou o programa para outro diretório, recomendo alterar o valor inicial No indicador, para não alterar o valor da variável constantemente no início do indicador). Para iniciar o arquivo GetRight. exe, teremos que usar a função WinExec que pode ser importada da biblioteca Kernel32.dll. A biblioteca Time. mqh contém funções para trabalhar com GMT. Como você pode ver, devido ao uso do programa GetRight, a função de baixar o arquivo do recurso externo parece ser muito simples. O parâmetro W indica que o processo não será retornado ao programa, a menos que o download do arquivo seja concluído. O parâmetro O indica que, se houver um arquivo com o mesmo nome, ele será substituído. Lembre-se, se você alterou as configurações do GetRight corretamente, o calendário será baixado para fileshtml. E aqui estão duas funções adicionais: a função PerviousMonday () retorna a data de início da semana atual. A função ToDate () transfere a data eo tempo do formato do calendário para datatime. O procedimento principal GrabNews () abre o arquivo baixado HtmlCalendar. Csv, lê todos os parâmetros do evento e cria dois objetos para cada notícia: uma linha vertical e um texto. O calendário de eventos é atualizado a cada 15 minutos: Conclusão O artigo explicou como exibir um calendário de eventos de um recurso externo para uma área de trabalho na forma de linhas verticais. O indicador foi escrito intencionalmente sem parâmetros excessivos, como filtrar notícias de acordo com sua relevância ou a correspondência de um evento e o símbolo da janela atual. P. S. Gostaria de apontar um erro na operação do calendário dailyfxcalendar. Por favor, note que às vezes os eventos no arquivo. csv do endereço dailyfxcalendarDailyfxGlobalEconomicCalendar. csv não são idênticos à página dailyfxcalendar. Isso pode acontecer com notícias lançadas de 00:00 até 01:00 (GMT). No arquivo. csv, essas notícias são indicadas 12 horas depois. Observe também que o indicador usa dll externa (kernell32.dll), portanto, não se esqueça de habilitar o parâmetro correspondente nas configurações do indicador. O arquivo CalendarArticle. mq4 deve ser armazenado na pasta expertsindicators. Time. mq4 deve ser armazenado em experslibrary, Time. mqh - em expertsinclude. MQL4 - gt R-Project - Interface Biblioteca Palavras-chave: mt4R. dll, mt4R. mqh, R, Metatrader talvez alguns de vocês desejam experimentar com o meu MT4-gt R que permite iniciar muitas sessões R (geralmente uma por EA executável), transferir dados para frente e para trás e chamar funções R. As sessões R serão executadas como processos separados em segundo plano, mas a API em direção a mql4 são chamadas de função síncrona, escrita e escrita de arquivos de texto feia. A comunicação passa por tubos de stdio para e de cada um dos processos R. Neste arquivo. zip são os arquivos necessários (mt4R. mqh e mt4R. dll) para executar isso. O arquivo. mhq também contém toda a documentação da API e outras informações necessárias. Mt4r-1.3.0.25.zip 101 KB 3,646 downloads Carregado 6 de novembro de 2010 6:40 pm E, opcionalmente, para aqueles interessados ​​em como a DLL funciona abaixo é o código-fonte dll (ele precisa do FPC 2.4.2 ou posterior para compilar. Você deve instalar Um instantâneo atual do LazarusFPC com um compilador 2.4.3, você encontrará um instalador de instantâneo atual (IDE e Compilador em um pacote) para win32 no ftp: ftp. freepascal. orgpublazarussnapshots). Aqui está a fonte: mt4Rsource-1.3.0.25.zip 19 KB 2,278 downloads Carregado em 6 de novembro de 2010 6:40 pm Os arquivos acima são atualizados para a versão mais recente. Esqueça os arquivos de visualização na postagem 2, eles são antigos. Inscrito em março de 2009 Status: Membro 1.261 Posts atualizados os arquivos no post 1 API alterados, portanto, temos uma alteração no número de versão 1.1 - gt 1.2 e uma nova versão do. mqh é necessária. Novo: RExecuteAsync () para executar código em segundo plano e não aguarde novo: RIsBusy () normalmente chamado no início do início () para detectar se a chamada anterior para RExecuteAsync () durante um tiquetaque anterior ainda está em execução. Estas duas novas funções são úteis para a elaboração de indicadores. Ao contrário de EAs e scripts, um indicador é executado no thread GUI do MT4 e pode não bloquear. A função start () deve retornar imediatamente. O padrão sugerido agora é chamar RIsBusy () no início do início () e não faça nada se isso retornar verdadeiro e somente se R estiver inactivo você pode usar funções R e a última chamada R na função inicial deve ser a que começa A tarefa de trituração de longo prazo e deve ser feita com RExecuteAsync () em vez de RExecute (). Depois disso, a função start () pode retornar enquanto R continuará a ser executado em segundo plano. Os próximos tiques usarão então RIsBusy () para verificar se ele terminou. Se uma das funções R é chamada enquanto ainda está executando outro comando, ele simplesmente espera até que esteja ocioso novamente e depois execute o comando. Apenas um R comand pode executar de cada vez e há um bloqueio por sessão R para garantir isso. Não haverá erros (apenas mensagens de depuração), tudo ainda acontecerá na ordem correta, somente sua função de início () pode não retornar rapidamente se for forçado a aguardar o bloqueio, então tenha cuidado para usar inteligentemente o RIsBusy () e Organize inteligentemente o fluxo de controle para começar com um mínimo de bloqueio. Se você fizer EAs, tudo isso não é necessário (ou mesmo contraproducente), aqui a função start () pode bloquear o tempo que quiser e para o testador de estratégia, isto é mesmo necessário. RExecuteAsync () é apenas uma solução alternativa para os indicadores e a falha de projeto feio do MT4 de executar todos os indicadores no segmento principal, aqui você precisa que isso faça tarefas longas de forma assíncrona para que o começo () sempre retornar rapidamente. Amanhã vou publicar um pequeno exemplo de indicador. Registrado em setembro de 2010 Status: Membro 45 Posts Você pode compartilhar seu indicador de regressão automática para MT4 Juntado em março de 2009 Status: Membro 1,261 Mensagens Aqui está: (guarde-o como um indicador na pasta de indicadores) Isso manterá a CPU ocupada Tempo, mas não bloqueará a GUI MT4. A função start () sempre retornará imediatamente, o único comando de execução longa é a chamada para ar () e isso é feito em RExecuteAsync () e toda a função start () está escrita de forma a que esta seja a última chamada R Antes de retornar (isso é importante), portanto, todos os ifs e o fluxo de controle de alguma forma torcido (trace a previsão antiga antes de se ajustarem a um novo modelo). Este indicador é um protótipo experimental de amplificador rápido sujo que eu escrevi para testar a execução assíncrona. Talvez algum código possa ser adicionado para garantir que ele seja executado somente na barra aberta, mas então deve loop de 1 para trás e não de 0 para trás-1 porque na barra aberta Close0 e Close1 são do mesmo tempo e não separam 1 hora e Também o deslocamento do indicador deve ser reduzido em 1 bar para prever o fechamento atual e não o próximo. É assim que parece quando está ligado a um gráfico H1 de eurusd (Parece que ele funciona melhor em quadros de tempo maiores (H1 e mais) que parecem mostrar uma forte periodicidade e o eurusd parece funcionar muito bem): Imagem anexa (clique para ampliar) Imagem anexa (clique para ampliar)

No comments:

Post a Comment