Friday 1 September 2017

Forex semaphores


MetaTrader 5 - Sistemas de Negociação Sistemas de Negociação Simples Usando Indicadores de Semáforo Introdução Semaphore ou indicadores de sinal são detectores simples que indicam os momentos de entrada ou saída do mercado. Caso haja 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 semaforo ASCtrend Fig.2. Sinal de negociação para realizar um acordo usando o indicador de sinal do semáforo ASCtrend Amostras de indicadores de sinal de semáforo típicos Atualmente, existem muitos desses indicadores na Base de Código. Neste artigo, vou fornecer apenas alguns links para as páginas da Web apropriadas. Além dos indicadores de sinal de semáforo, existe um grupo de indicadores de tendências 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 liso Os sistemas de negociação usando tais 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 de Indicadores de tendência de semáforos típicos A Base de código 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 negociação: Indicador de semáforo com os parâmetros de entrada que devem estar presentes no consultor especialista. A lista de entrada adicional Parámetros de negociação 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 preços de negócio estabelecidos e reais) índice da barra, 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 tão fácil quanto 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 sejam esclarecidos. O período do gráfico usado por um indicador de sinal e um Expert Advisor é corrigido na variável de entrada InpIndTimeframe do Expert Advisor. Portanto, a alteração de um gráfico, na qual um Consultor Especializado está localizado, não altera este 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 estática CIsNewBar individual para cada uma delas. As variáveis ​​UpSignalTime e DnSignalTime são usadas para armazenar e transferir o tempo, após o qual é 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 novos negócios 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 posições fechando sinais nas barras sem sinais comerciais. No caso de uma operação normal do Advisor Perito, 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 desperdiçado. 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 esse 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 especialista 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 ofertas 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 de negociação são recebidos a partir 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, pois uma direção de tendência em qualquer barra pode ser recebida diretamente da célula apropriada do buffer do indicador. 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 sequência oposta, só será possível fechar os negócios em uma barra, você não poderá abri-las 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 atual da barra 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 um longo período de tempo. Isso pode ser facilmente observado, se um Consultor Especialista for testado em todos os tiques com visualização habilitada 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. Novamente, apenas o modo de tick é 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 grandemente a análise do comportamento do sistema comercial sem perdas sérias na sua qualidade. Portanto, é melhor não usar os sinais da barra atual para testar e otimizar esses sistemas de negociação. Então, 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 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 quaisquer peculiaridades, é por isso que vou fornecer apenas um link para o artigo descrevendo detalhadamente esse processo: MQL5: Guia de Testes E Otimização de Expert Advisors no MQL5. Claro, seria ingênuo esperar alguns lucros pendentes 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 regularmente ajustado 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 nos estágios iniciais: Fig.7. Gráfico EURUSD H12 (janeiro de 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 esses parâmetros testados no gráfico H1: Fig.8. Testando os resultados do Expasctrend Expert Advisor com parâmetros padrão em EURUSD H1 para JanuaryMay 2011 (apenas posições longas, MM0.05) Claro, neste caso, um comerciante é totalmente responsável pela seleção de uma direção do negócio. Mas se nós mantemos em mente 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 pré-fabricados. 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 de negociação já criados que são completamente análogos aos sistemas de negociação que sugeri. E só depois disso vou seguir os detalhes desta modificação de módulos de acordo com os indicadores de sinal específicos, evitando a destravação desnecessária. 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 de programa necessário, o próprio indicador (BykovTrend) possui um conjunto de parâmetros de entrada: e precisamos dos índices dos buffers de indicadores usados ​​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 depois 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 possuem 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 mudanças nos 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 em parâmetros de configurações: e a linha da nova declaração de método de instalação de parâmetros de configurações de SSP (): Tudo relacionado a variável de entrada 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 índices de indicadores 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 de 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áforo são diferentes e, portanto, esses blocos para diferentes indicadores de semáforos podem ser diferentes entre si 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, 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 Expert Advisor 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 das 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 tipo de 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 ​​de tipos int ou uint. Além disso, o procedimento inverso de 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 ambas as versões de código (ASCtrendSignal. mqh e BykovTrendSignal. mqh) simultaneamente no editor (colocando uma no lado esquerdo e 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 Expert. 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 comerciais 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 com base 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. Semafor Trend Trading Juntado em maio de 2011 Status: Membro 47 Posts Eu sou comerciante de cerca de 7 anos. Eu passei por muitos sistemas à procura do Santo Graal até perceber que não há tal coisa que eu não me chamaria de especialista, mas com a ajuda deste fórum e muitos outros ao longo do caminho (principalmente John Thomas de Kitsap e Dredding82 para Mostrando quão poderosos Semafors podem ser) tenho certeza e sucesso. Antes de postar, conheça as regras: 1. Semafors repete (eu sei disso). Então, não comente sobre isso pintando, eles são apenas guias. 2. Isso é o que funciona para mim, e isso é apenas informação que espero que ajude outros comerciantes lá fora. 3. Seja cortês e atento um do outro. Este é um fio amigável, no qual podemos aprender juntos. 4. Eu não estou dando sinais de negociação e não será responsável por quaisquer ganhos ou perdas que você incorre em negociar este sistema. Isto é simplesmente uma partilha das coisas que encontrei que trabalharam para mim. Sobre as coisas boas. Aprendi a mantê-lo simples. Aqui estão as ferramentas que você precisa: 1. 3LevelZZSemafor (os segmentos Dredding82s são bons) (Você pode encontrá-lo aqui: forexfactoryshowthread. phpt308231) 2. Um indicador de pivô (eu uso o SonicR Control Panel) (Você pode encontrá-lo aqui: forexfactoryshowthread. phpt114792) 3. (Opcional) Um Zig Zag de algum tipo se quiser ver a tendência mais fácil. Eu postei um abaixo. O importante saber é negociar com o comércio. Semafors aparecem em 3 tamanhos (pequenos, médios e grandes). É assim que troco eles: Compre: 1. O semafor grande ou médio aparece no fundo (mostrando o nível extremo) 2. O preço se move mais alto criando um semafor no topo 3. Então um movimento menor sem fazer um quotnew lowquot, criando outro novo semafor (QuotHigher Lowquot) (A baixo, depois alto e, em seguida, mais baixo confirma uma tendência ascendente nos casos MOST) 4. Compre o intervalo alto desta vela. (Normalmente uma vela quente engolida) Vender: 1. Semafor grande ou médio aparece no topo 2. O preço se move mais baixo, criando um semafor na parte inferior 3. Então um movimento maior sem fazer um quotnew highquot, criando outro novo semafor (Quot Lowquot) (A Alto, depois baixo, depois baixo alto confirma uma tendência para baixo na maioria dos casos) 4. Venda o intervalo baixo desta vela. (Normalmente um candelabro engolfando). Os seus alvos dependem do prazo e onde seus pivôs estão mostrando suporte ou resistência. Em uma compra, normalmente coloco um Fibo do seu alto para baixo e dispare para o nível de retracement 161.8. Uma venda seria o inverso. Minha parada é sempre alguns pips além do menor baixo ou maior alto usado para configurar o comércio. O explorador de comércio está em vigor a partir de 13 de setembro de 212 (e essa conta só trocará trades de sistema semafor para que possamos obter uma imagem precisa da lucratividade). A conta é quotlivequot não é um quotdemoquot. Aqui está um exemplo: Imagem anexa (clique para ampliar)

No comments:

Post a Comment