Monday 13 November 2017

Semáforo Indicador Forex


3LevelZZSemafor (indicador para MT4) Indicador muito interessante. Obrigado Quantas barras de volta o repintar (ou o faz) O último semáforo sempre se move em conjunto com o preço até então não será fixado ainda 1. Nível do preço. No entanto, não vai percorrer os níveis de primeiro ou segundo semáforos anteriores 2. Tempo de gravação. Se o último semáforo do longo tempo for entre dois anteriores, através de um intervalo de tempo, haverá sua fixação. Obrigado, boa sorte asystem2000: O último semáforo sempre se move em conjunto com o preço até então, não será fixado ainda. 1. Nível do preço. No entanto, não vai percorrer os níveis de primeiro ou segundo semáforos anteriores 2. Tempo de gravação. Se o último semáforo do longo tempo for entre dois anteriores, através de um intervalo de tempo, haverá sua fixação. Obrigado, boa sorte Obrigado, o indicador parece bom em 4 H e EOD, o que você pensa sobre isso. MetaTrader 5 - Sistemas comerciais Sistemas de negociação simples Usando indicadores de semáforo Introdução Semáforo ou indicadores de sinal são detectores simples que indicam os momentos de entrada ou saída do mercado. No caso de existir um sinal de entrada na barra atual, um rótulo apropriado aparece em um gráfico de símbolos. Este rótulo pode então ser usado como condição para realizar um acordo. Há muitos indicadores desse tipo, mas a própria essência do sistema de negociação original com base em tais indicadores não mudou. Portanto, é uma boa idéia implementá-lo na forma mais simples e universal. Isso permitirá uma maior utilização do resultado obtido ao trabalhar com indicadores semelhantes sem alterações consideráveis. Figura 1. Indicador de sinal de semáforo ASCtrend Fig.2. Sinal de negociação para realizar um negócio usando o indicador de sinal do semáforo ASCtrend Amostras dos Indicadores de sinal de semáforo típicos Atualmente, existem muitos desses indicadores no Código Base. Neste artigo, vou fornecer apenas alguns links para as páginas da Web apropriadas. Além dos indicadores de sinal de semáforo, há um grupo de indicadores de tendência de semáforos: Fig.3. Indicador de tendência do semáforo Fig.4. Sinal de negociação para realizar um acordo usando Heiken Ashi Indicador de tendência de semáforo suavizado Os sistemas de negociação usando esses indicadores têm um código ligeiramente diferente para obter sinais de negociação, enquanto o código do Consultor Especial permanece praticamente inalterado. Amostras da base típica do código de indicadores do semáforo contém muitos desses indicadores. Neste artigo, vou fornecer apenas alguns links para as páginas da Web apropriadas: Dados básicos para criar um sistema de comércio: Indicador de semáforo com os parâmetros de entrada que devem estar presentes no consultor especialista. A lista de parâmetros adicionais de negociação do Expert Advisor: a Participação de um depósito recursos financeiros utilizados em um acordo um tamanho de Stop Loss e Take Profit (as ordens pendentes não devem ser usadas em caso de valores zero) deslizamento (diferença máxima permitida entre os preços de negócio estabelecidos e reais) índice da barra, a partir da qual Os sinais de negociação receberão permissões para abrir permissões de posições longas e curtas para o fechamento forçado de posições longas e curtas de acordo com os sinais indicadores. Claro, seria muito mais conveniente dar ordens para realizar negócios usando funções de negociação universal. Essas funções são bastante complexas e elas devem ser empacotadas em um arquivo de biblioteca separado para tornar o código do aplicativo o mais fácil possível. O código do Expert Advisor implementando o sistema de troca de semáforos: o código para a realização de tal idéia é bastante simples e claro, embora alguns detalhes devem ser esclarecidos. O período do gráfico usado por um indicador de sinal e um consultor especialista é corrigido na variável de entrada InpIndTimeframe do consultor especialista. Portanto, a alteração de um gráfico, na qual um Consultor Especialista está localizado, não altera esse parâmetro para o Consultor Especialista. A função IsNewBar () necessária para determinar o momento de uma nova barra de chegada é implementada como uma classe colocada no arquivo TradeAlgorithms. mqh. Isso permite usar qualquer número de tais funções no código facilmente, definindo uma variável CIsNewBar estática individual para cada uma delas. As variáveis ​​UpSignalTime e DnSignalTime são usadas para armazenar e transferir o tempo, após o que é possível realizar o próximo negócio após o anterior, para as funções de negociação. No nosso caso, esse recurso é usado para evitar executar várias ofertas na mesma direção na mesma barra (ao realizar um negócio, a função de negociação armazena o tempo do acabamento da barra atual e não executa novas ofertas na mesma direção até a mesma momento). O bloco Procurando pela última direção comercial para obter sinais para fechar posições na função OnTick () é necessário para receber sinais de fechamento de posições nas barras sem sinais de negociação. No caso de uma operação normal do Consultor Especialista, não há necessidade neles. Mas, no caso da falha na conexão com a internet, é bem possível que um novo sinal comercial seja perdido. Não é uma boa idéia entrar no mercado post factum, mas seria um movimento sábio para fechar as posições abertas. Usando o Sistema de Negociação com Outros Indicadores de Sinal de Semáforo Agora, se houver necessidade de usar este código com outro indicador de sinal de semáforo, as seguintes ações devem ser realizadas: Substitua os dados do indicador anterior pelos parâmetros necessários do novo em um Consultor Especializado Parâmetros de entrada Alterar o código de obter o identificador do indicador no bloco OnInit () Determine os índices para os buffers de indicadores, usados ​​para armazenar sinais de negociação de compra e venda do código do indicador e insira-os adequadamente nas chamadas de função CopyBuffer () do OnTick () quadra. Neste caso, os buffers de zero e primeiro indicador são usados ​​Alterar a inicialização da variável do ponto de partida do cálculo de dados (minratestotal) em um Consultor Especializado de acordo com o código do indicador Alterar o bloco Procurando o último sentido de negociação para obter sinais para fechar posições no OnTick ( ) Funcionam de acordo com o código do indicador. Usando o Sistema de Negociação com Outros Indicadores de Tendências de Semáforo Ao usar este sistema de negociação com indicador de tendência de semáforo, o código do Advisor Especial mudou um pouco no bloco para determinar sinais para negócios de função OnTick (). Por exemplo, o código será o seguinte para o Consultor Especializado com base no indicador FiboCandles: neste caso, os sinais comerciais são recebidos de apenas um buffer de indicador de cor (contendo índices de cores). Os dados neste buffer podem ter apenas dois valores: 0 - para mercado ascendente e 1 - para descer um. A busca da última direção comercial para obter o código de bloqueio de sinais de fechamento de posições tornou-se tão simples quanto possível, já que uma direção de tendência em qualquer barra pode ser recebida diretamente da célula apropriada do buffer de indicadores. No bloqueio de negócios de execução, as funções de fechamento de posições são as primeiras, seguidas das funções de abertura. No caso da seqüência oposta, só será possível fechar os negócios em uma barra, você não poderá abri-los simultaneamente ao testar no modo Open only de preços. Portanto, os resultados da negociação serão gravemente interrompidos. Testando o Sistema de Negociação Antes de proceder ao teste do sistema de negociação, um detalhe importante deve ser esclarecido. Caso o valor da variável de entrada de SignalBar seja igual a zero, o Consultor Especial obterá ofertas apresentando sinais da barra atual. Mas o sinal da barra atual não é confiável ao indicar a mudança da tendência que se moveu contra esse sinal na barra anterior. Os sinais na barra atual podem aparecer e desaparecer, enquanto uma tendência pode se mover contra esses sinais por muito tempo. Isso pode ser facilmente observado, se um consultor especialista for testado em todos os tiques com visualização ativada e a variável SignalBar seja igual a zero. A visualização da operação do indicador ASCtrend apresenta uma evidência muito clara desse fato nesse caso. Mais uma vez, apenas o modo Todos os ticks é adequado para uma otimização de Expert Advisor com um sinal recebido da barra atual. No caso de ser recebido de qualquer outra barra já fechada, o modo de preços Open Only é suficiente. Isso acelera muito a análise do comportamento do sistema comercial sem perdas sérias em sua qualidade. Portanto, é melhor não usar os sinais da barra atual para testes e otimização de tais sistemas de negociação. Assim, vamos testar o Expert Advisor com parâmetros padrão no EURUSD desde o início do ano até o início de dezembro: Fig.5. Testando os resultados do Expasctrend Expert Advisor com parâmetros padrão no EURUSD H1 Depois de alterar um pouco as configurações do Expert Advisor no Strategy Tester, podemos encontrar a combinação mais adequada dos parâmetros do Expert Advisor para os dados históricos existentes com bastante facilidade: Fig.6. Testando os resultados do ExpasCtrend Expert Advisor após a otimização com melhores parâmetros no EURUSD H1 O processo de otimização do sistema de negociação não tem peculiaridades, é por isso que vou fornecer apenas um link para o artigo descrevendo detalhadamente este processo: MQL5: Guia de Testes E Otimização de Expert Advisors no MQL5. Claro, seria ingênuo esperar alguns lucros extraordinários de um sistema comercial tão simples. Mas é bem possível obter bons resultados caso este sistema semi-automático seja manipulado habilmente e seja ajustado regularmente de acordo com o comportamento atual do mercado. Por exemplo, houve uma tendência ascendente no gráfico EURUSD H12 em 2011 de janeiro até maio. E foi facilmente detectável em estágios iniciais: Fig.7. Gráfico EURUSD H12 (JanuaryMay 2011) Seria interessante testar o Expert Advisor neste intervalo de tempo com as configurações padrão, a possibilidade de comprar e o uso de apenas 5 de um depósito (MM0.05). Aqui estão os resultados do Expert Advisor com parâmetros testados no gráfico H1: Fig.8. Testando os resultados do ExpasCtrend Expert Advisor com parâmetros padrão no EURUSD H1 para janeiro de 2011 (apenas posições longas, MM0.05) Claro, neste caso, um comerciante é totalmente responsável pela seleção de uma direção de negócio. Mas se nos lembrarmos de que deve ser feito usando grandes gráficos de quadros de tempo, dificilmente enfrentaremos dificuldades. Modificação do Módulo de Negociação para Usá-lo com Outro Indicador Este artigo poderia ter sido concluído aqui, mas o MetaEditor adquiriu a possibilidade de gerar Expert Advisors com base em módulos de negociação prontos. O processo de criação de tais módulos considerando todo o material apresentado aqui é bastante complexo e requer um estudo separado. Portanto, vou me concentrar nos módulos comerciais já criados que são completamente análogos aos sistemas de negociação que sugeri. E somente depois disso vou seguir os detalhes dessa modificação de módulos de acordo com os indicadores de sinal específicos, evitando desvios desnecessários. Vamos assumir que já temos a coleção de módulos de negociação para sistemas de sinal de semáforo (MySignals. zip) e queremos criar o módulo análogo para qualquer indicador particular. Deixe-o ser o indicador BykovTrendSignal. mq5, que é um típico indicador de sinal de semáforo. Em primeiro lugar, devemos encontrar o análogo mais preciso do indicador desta coleção (Indicators. zip). Visualmente, determinamos que o primeiro indicador deste artigo (ASCtrend) é o mais parecido com ele. Portanto, usaremos o módulo de negociação deste indicador para modificação. Considerando o seu uso no código do programa necessário, o próprio indicador (BykovTrend) possui um conjunto de parâmetros de entrada: e precisamos dos índices dos buffers indicadores utilizados para armazenar os sinais para realizar negócios. No nosso caso, são: 0 - para sinais de venda e 1 - para comprar sinais. Agora que sabemos, qual módulo deve ser usado para modificação, nós o copiamos na pasta MQL5IncludeExpertSignalMySignals com o nome do arquivo BykovTrendSignal. mqh e, em seguida, abri-lo no MetaEditor. Existe uma expressão freqüentemente encontrada ASCtrend (o nome do indicador anterior) no código usado. Ele deve ser substituído pelo nome do novo indicador - BykovTrend. Para fazer isso, pressione as teclas Ctrl e H simultaneamente e faça a mudança necessária: Fig.9. Substituindo o nome do indicador no código do módulo de negociação A próxima etapa do nosso trabalho é a mais meticulosa. Devemos substituir tudo o que diz respeito aos parâmetros de entrada do indicador no código do módulo de negociação. O processo é muito semelhante ao que foi afirmado no artigo MQL5 Wizard: Como criar um módulo de sinais comerciais. Em primeiro lugar, devemos fazer algumas alterações no bloco comentado da descrição da classe de sinais comerciais do MQL5 Wizard: ambos os indicadores contêm a mesma variável de entrada RISK, portanto, pode ser deixado. Mas nesses indicadores seu valor padrão é diferente. Na verdade, essa diferença não é crítica e pode ser deixada inalterada. A linha de comentários sobre a variável SSP foi adicionada: E o link para o indicador da Base de Código foi substituído: Agora, tudo o que se relaciona com as alterações dos parâmetros de entrada deve ser refletido na descrição da classe de sinais comerciais CBykovTrendSignal. Nós temos a linha da nova declaração de variável de classe mSSP global nos parâmetros de configurações: e a linha da nova declaração do método de instalação dos parâmetros de configurações do SSP (): Tudo relacionado à variável de entrada de RISK no módulo de sinais de negociação que criamos é equivalente à entrada Módulo e, portanto, não há alterações nos blocos atuais e em qualquer outro módulo de troca. Agora, passamos para o construtor de classe CBykovTrendSignal :: CBykovTrendSignal (). A inicialização de uma nova variável deve ser adicionada neste bloco: A verificação da nova variável para correção deve ser realizada no bloqueio de verificação de parâmetros de configurações CBykovTrendSignal :: ValidationSettings (): Depois disso, podemos passar para o bloco de inicialização do indicador BykovTrend - BykovTrendSignal :: InitBykovTrend ( ). O novo indicador tem um número diferente de variáveis ​​de entrada e, portanto, a dimensão para a matriz de parâmetros de entrada declarados também será diferente: no nosso caso, precisamos de uma dimensão para o nome da seqüência do indicador e duas mais para seus parâmetros de entrada. Agora, temos que inicializar uma nova célula dos arrays de parâmetros de entrada, indicando o tipo da variável que será armazenada nele: Depois disso, altere o número de variáveis ​​de entrada em 3 neste bloco na chamada para a inicialização do indicador: O número Dos indicadores tampões no indicador permanecem iguais e iguais a dois, portanto, não há necessidade de alterar nada na linha de inicialização do número dos buffers indicadores no nosso caso: os indicadores ASCtrend e BykovTrend possuem dois buffers indicadores cada. As funções dos buffers são completamente similares. O buffer zero é usado para armazenar sinais de venda, enquanto o buffer com índice 1 é usado para armazenar sinais de compra. Portanto, não há necessidade de alterar nada nos blocos de funções para entregar os sinais comerciais CBykovTrendSignal :: LongCondition () e CBykovTrendSignal :: ShortCondition () e o trabalho sobre a modificação do módulo de sinais comerciais pode ser considerado completo. Mas, em geral, todos os indicadores de semáforos são diferentes e, portanto, esses blocos para diferentes indicadores de semáforos podem diferir um do outro consideravelmente. O arquivo de módulo de negociação MySignals. zip e o arquivo Indicators. zip apropriado contêm uma quantidade suficiente de exemplos para criar vários indicadores. Após algum exame, é possível descobrir os detalhes do processo de substituição e possíveis versões de código para isso. Agora, eu gostaria de me concentrar na variável de entrada IndTimeframe do módulo de sinais comerciais. Esta variável permite baixar um período de tempo apropriado para o indicador. No entanto, o Consultor Especializado gerado opera no período em que foi atribuído. Isso significa que o intervalo de tempo variável de entrada IndTimeframe nunca deve exceder um período do gráfico em que o Consultor Especial atua para fornecer a operação normal do módulo. Finalmente, gostaria de revelar outra peculiaridade da criação de módulos de sinais comerciais. Às vezes, as enumerações personalizadas são implementadas no código do indicador básico como os tipos para as variáveis ​​de entrada do módulo. Por exemplo, a enumeração personalizada do SmoothMethod é usada como tipo de variável MASMethod para o indicador CandlesSmoothed: nesse caso, as variáveis ​​de entrada desse tipo e todos os elementos associados no módulo de sinais comerciais (CandlesSmoothedSignal. mqh) devem ser modificados nas variáveis ​​dos tipos int ou uint. Além disso, o procedimento reverso das enumerações personalizadas até os parâmetros de entrada do Expert Advisor e a substituição dos tipos de variáveis ​​de entrada necessárias (ExpMCandlesSmoothed Expert Advisor) devem ser realizados para a facilidade de uso dessas variáveis ​​de entrada no código já gerado do Expert concluído Conselheiro: no nosso caso, isso foi feito com a variável de entrada SignalMASMethod. Você pode acelerar a modificação do código consideravelmente, se você abrir as versões de código (ASCtrendSignal. mqh e BykovTrendSignal. mqh) simultaneamente no editor (colocando uma no lado esquerdo e a outra no lado direito) e compare ambas as versões de código cuidadosamente. Conclusão Eu coloquei uma quantidade suficiente de Expert Advisors com base no sistema de troca de semáforos no arquivo Experts. zip anexado a este artigo para permitir que os criadores novatos de Expert Advisors compreendam facilmente todos os recursos de escrever esse código ou, pelo menos, trabalhar com especialistas especializados em ready-made Usando indicadores bastante populares. Todos os consultores especializados em anexo são adicionalmente apresentados como módulos de negociação para aqueles que desejam usar o gerador de estratégias de negociação como base para seus próprios sistemas de negociação. Esses módulos estão localizados em MySignals. zip, enquanto os sistemas de negociação baseados neles podem ser encontrados em Expertsez. zip. Os indicadores utilizados nos Expert Advisors são colocados em Indicators. zip. Os caminhos para extrair os arquivos são os seguintes: Experts. zip: MQL5Experts Expertsez. zip: MQL5Experts MySignals. zip: MQL5IncludeExpertSignalMySignals Indicators. zip: MQL5Indicators SmoothAlgorithms. mqh: Incluir TradeAlgorithms. mqh: Incluir. Reinicie o MetaEditor, abra a janela Navegador, clique com o botão direito do mouse no rótulo MQL5 e selecione Compilar no menu pop-up. O arquivo SmoothAlgorithms. mqh é necessário para a compilação de alguns indicadores do Indicators. zip, enquanto o arquivo TradeAlgorithms. mqh é necessário para a compilação de todos os Expert Advisors de Experts. zip.

No comments:

Post a Comment