Skip to main content

Metatrader 5 - Sistemas De Negociação


Explorando Estratégias de Negociação Classes da Biblioteca Padrão - Estratégias de Customizing


Explorando Estratégias de Negociação Classes da Biblioteca Padrão - Estratégias de Customizing


Neste artigo vamos mostrar como explorar a Biblioteca Padrão de Classes de Estratégia de Negociação e como adicionar Estratégias Personalizadas e Filtros / Sinais usando a lógica Padrões e Modelos do Assistente MQL5. No final, você será capaz de adicionar facilmente suas próprias estratégias usando MetaTrader 5 indicadores padrão, e MQL5 Wizard irá criar um código limpo e poderoso e totalmente funcional Expert Advisor.


Introdução


Este artigo destina-se a usuários novatos / iniciantes que desejam abordar algum tipo de personalização com funcionalidade e sem escrever um EA a partir do zero.


No MetaTrader 5 temos uma grande possibilidade de negociação de especialistas com um mínimo ou zero de conhecimento (e habilidades) sobre a linguagem de programação e codificação de fontes, graças ao recurso de um MetaEditor: MQL5 Wizard. O Assistente (não vamos explicar o seu trabalho detalhado aqui neste artigo) destina-se a gerar programas concluídos (arquivos. mq5 e. ex5), algoritmos e código. Ela se beneficia com a utilização da Biblioteca Padrão MQL5 e suas Classes de Estratégias de Negociação (que são grandes recursos).


Existem muitas classes de estratégias de negociação presentes na Biblioteca Padrão na verdade, algumas delas já são muito boas e vêm de estudos mais ou menos famosos sobre mercados financeiros e análise de rentabilidade. Há pelo menos uma estratégia para cada indicador a partir do conjunto padrão de indicadores que acompanham o MetaTrader 5.


Para estabelecer sinais comerciais dessas Classes de Estratégia de Negociação, o MQL5 Wizard usa um mecanismo que chama os comportamentos dos indicadores feitos por uma lógica codificada na forma de "padrões de negociação". E cada EA gerada específica chama aos indicadores (através das instruções do #include) e seus jogos dos testes padrões e das decisões de troca que são importadas então no núcleo do EA com a finalidade de negociar.


Assistente MQL5


A primeira etapa é criar um Expert Advisor usando MQL5 Wizard. Para abrir MQL5 Wizard no MetaEditor selecione "Novo" no menu "Arquivo" ou pressione o botão "Novo", em seguida, selecione a opção "Expert Advisor (generate)".


Vamos nomear nosso Expert Advisor gerado no MQL5 Wizard como "MyExpert".


Em seguida, adicionamos dois indicadores / sinais para trabalhar com ele (você pode selecionar quantas condições você quiser de indicadores disponíveis). Para o nosso exemplo vamos adicionar dois indicadores famosos: Índice de Força Relativa (RSI) e Média Móvel (MA). Adicione o indicador RSI primeiro e depois adicione o indicador MA.


Podemos definir alguns parâmetros, como queremos, ou deixar os parâmetros padrão para o nosso exemplo.


Depois de clicar em OK e continuar com o Assistente, não selecionaremos (por enquanto) qualquer Trailing stop na próxima janela, mas se desejar, você pode adicionar: não afetará o tópico deste artigo. Na próxima janela vamos selecionar 5,0 como porcentagem de negociação e 0,1 lotes, ou quaisquer outros parâmetros que você deseja: novamente, isso não afetará o argumento do nosso artigo.


Analisando o código gerado


Depois de terminar você terá o arquivo "MyExpert. mq5". Vamos analisar os principais pontos do código gerado.


Primeiro observe os arquivos #include adicionados ao código gerado pelo Assistente. Nós podemos ver:


Expert. mqh


SignalRSI. mq


SignalMA. mqh


Em seguida, a seguinte parte do código:


Como o título sugere, é o "filtro" que será aplicado às condições de mercado da EA gerada que deve ser anexada a um gráfico ou testada no Testador de Estratégia. O filtro0 é então o primeiro filtro com um "índice" de zero, e para este primeiro filtro selecionamos RSI em nosso exemplo.


CSignalRSI significa Classe Signal RSI. Esta classe é usada para chamar o indicador RSI e aplicar-lhe algumas condições para a criação de comprar ou vender sinais através do uso de padrões de lógica do Assistente. RSI é então nosso primeiro filtro (filtro número 0).


Na parte seguinte do código existem alguns parâmetros do filtro e, em seguida, Trailing Stop Section (não optamos por arrastar) e mais tarde - a parte do código que é sobre o Money Management.


Continuando, temos:


Esta seção pertence ao arquivo de inclusão Expert. mqh. Trata-se da inicialização dos indicadores necessários para o funcionamento do especialista.


E a última parte do código EA gerado é sobre desinitialiação e outros eventos habituais do Expert Advisor:


Na verdade, esta EA usa dois indicadores (RSI e MA) para negociação de decisões através da biblioteca padrão de classes de negociação que utilizam "filtros" e "pesos" lógica. Você pode encontrar mais informações sobre isso na seção Módulos de Sinais de Comércio da Referência MQL5. Mas nosso objetivo é usar nossas próprias estratégias de negociação como novos filtros.


Então, para o primeiro passo (usando nossas próprias estratégias de negociação), vamos modificar um pouco o MyExpert. mq5. Primeiro de tudo, vamos adicionar outro filtro. Será o filtro2 e vamos colocá-lo logo após o filtro1 parte do código.


Vamos voltar aos arquivos #include que são o núcleo dos filtros e tomada de decisão de mercado. O primeiro é #include & lt; Expert \ Expert. mqh & gt; Arquivo. Este arquivo inclui, por sua vez, inclui outros arquivos:


#include "ExpertBase. mqh"


#include "ExpertTrade. mqh"


#include "ExpertSignal. mqh"


#include "ExpertMoney. mqh"


#include "ExpertTrailing. mqh"


Estes incluem arquivos são a estrutura principal da EA, a estrutura de negociação, o sinal, dinheiro e Trailing parar de tratamento, respectivamente. Não vamos analisar profundamente esses arquivos ou modificá-los. Nosso objetivo é concentrar-se em adicionar nossas próprias estratégias usando indicadores existentes do conjunto padrão MetaTrader 5 de indicadores e adicionando seu arquivo de inclusão.


No código MyExpert. mq5 temos os arquivos #include dos indicadores RSI e MA que usamos neste exemplo como sinais / filtros para a decisão de mercado de negociação. Neste ponto, vamos adicionar nosso próprio arquivo de inclusão personalizado. Para isso, usaremos uma versão modificada ( "melhorada") de Sinais pertencentes ao indicador CCI.


O arquivo SignalCCIxx. mqh deve ser colocado na pasta \ MQL5 \ Include \ Expert \ Signal \ e deve corresponder com a integrabilidade do EA gerado pelo assistente, como as outras classes #include trade da Biblioteca Padrão - arquivos de sinal já presentes em Esta pasta (SignalRSI. mqh e SignalMA. mqh).


Para este exemplo, vamos copiar o arquivo CCI original, criar outro chamado CCIxx com algum código ligeiramente modificado e usá-lo como o arquivo # include. Agora, por razões de simplicidade, usamos apenas uma versão copiada do indicador CCI da Biblioteca Padrão.


O que temos a fazer é copiar o arquivo "\ MQL5 \ Include \ Expert \ Signal \ SignalCCI. mqh" para o arquivo "\ MQL5 \ Include \ Expert \ Signal \ SignalCCI xx. mqh". A maneira mais fácil de fazer isso é fazer uma cópia do arquivo na pasta e renomeá-la.


Vejamos este arquivo agora. A integração dessa maneira 'personalizada' no MyExpert. mq5 gerado pelo assistente é apenas um trabalho concluído. Adicionamos o código filter2, como explicado acima, e agora vamos completar mais tarde o seguinte. Portanto, não vamos nos concentrar no arquivo MyExpert. mq5, mas a partir de agora nos focaremos no arquivo SignalCCIxx. mqh que é o verdadeiro núcleo da EA devido ao seu sinal de negociação filter2 do indicador CCI.


Estratégia de Personalização


Voltamos a adicionar os filtros de estratégia "semi-customizados" que chamamos de CCIxx que é a versão modificada do SignalCCI. mqh. Eu defini-lo semi-personalizado, porque na verdade não é um sinal totalmente novo personalizado, mas sim uma versão redesenhada do indicador CCI do conjunto padrão de indicadores que vêm junto com MetaTrader 5. Desta forma, mesmo os usuários inexperientes e programadores Pode modificar ligeiramente padrões e filtros de um EA gerado pelo Assistente MQL5 usando o grande número de indicadores existentes, por isso, em outras palavras, você pode criar suas próprias versões de filtros e padrões para a geração de compra e venda de sinais de mercado. Esta é ainda uma excelente base para trabalhar com estratégias.


Vejamos este exemplo. Será útil para aqueles que apenas precisam deste recurso (para adicionar alguns padrões personalizados aos indicadores existentes) e para aqueles que querem participar no Campeonato de Negociação Automatizado apenas usando o Assistente para criar rapidamente um completo funcional (e válido) EAs que têm Alguns tipos de personalizações.


Isto pode ser conseguido apenas em 1 hora de trabalho - criando um Campeonato amigável EA, totalmente funcional, com Trailing Stop, Money Management e tudo o necessário para a negociação competitiva. Concentrando-se novamente em que o EA é gerado pelo Assistente, como eu o nomei Campeonato amigável, isso realmente significa que o código gerado é livre de erros, para que os participantes não têm de corrigir qualquer coisa ou medo de erros ou erro!


A EA apenas vai negociar e será perfeito para negociação, pelo menos para aqueles que querem participar, mas não sabem sobre programação e não querem pedir um EA no serviço de Jobs (uma boa alternativa para participar do Campeonato) . Existem muitos parâmetros de entrada que podem ser atribuídos, a fim de ter o seu próprio robô de negociação perto da estratégia que você tem em mente.


Mas você só pode usar o conjunto padrão de indicadores com o conjunto padrão de filtros / padrões oferecidos pela MetaQuotes através do Assistente e Biblioteca Padrão de classes de estratégia de negociação. Oferece um grande número de combinações e possibilidades de negociação bem-sucedida, já que os indicadores têm muitos parâmetros (cronograma, símbolo) e todos os parâmetros dos próprios indicadores, por exemplo Período, Preço Aplicado, etc. Neste artigo você aprenderá rápida e facilmente Como personalizar e adicionar padrões / filtros para os indicadores padrão do MetaTrader 5.


Vamos continuar no arquivo SignalCCIxx. mqh para personalizar e modificar seu comportamento, para fazer nosso próprio modelo de negociação de sinal CCI (CCIxx). Primeiro, no arquivo MyExpert. mq5 vamos adicionar novas variáveis ​​para o novo código na seção de entrada, como no exemplo a seguir (ver código realçado):


Alteramos os valores das variáveis ​​Signal_RSI_Weight e Signal_MA_Weight de 1,0 para 0,7 e 0,6, respectivamente, e adicionamos as linhas realçadas acima. Para trabalhar corretamente com os parâmetros de entrada para a versão modificada CCIxx do padrão pertencente ao indicador CCI em classes de estratégia de negociação, de fato nós copiamos estas 3 linhas de código do arquivo SignalCCI. mqh e acabamos de adicionar o postfix "xx" depois "CCI".


Na seção "protegida" da declaração de classe há muitos elementos interessantes:


Dê uma olhada nos tipos int chamados m_pattern. Estas variáveis ​​são progressivamente numeradas de 0 a 3, cada uma delas é um "padrão" ou, por outras palavras, um modelo das condições de tomada de decisão de mercado para comprar e vender um instrumento financeiro.


Vamos adicionar 2 padrões personalizados: m_pattern_4 e m_pattern_5. É feito simplesmente adicionando duas linhas de código, duas variáveis ​​de tipo inteiro.


Se você continuar a olhar para o código, você vai entender a lógica de compra e venda, e tudo. Mas vamos nos concentrar aqui apenas nas seções de como adicionar nossos próprios padrões, como não vamos explicar linha a linha os arquivos inclui (para isso, o leitor pode abrir os arquivos em si e estudar, e há MQL5 Referência Também para ajudar na compreensão).


Também queremos fazer isso: no arquivo CSignalCCIxx. mqh pressione CTRL + H, procure por "CCI" e substitua por "CCIxx". Clique em "Substituir Tudo" - 41 ocorrências devem ser encontradas e substituídas. Vamos aqui, no topo do arquivo:


E alterar isso:


Com isso como no SignalCCI. mqh original:


Fazemos isso porque CiCCI é chamado de outro incluir, e se mudarmos seu nome haverá vários erros, obviamente. Agora podemos compilar o arquivo SignalCCIxx. mqh, e deve haver 0 erros e 0 avisos. Se houver alguns, você possivelmente cometeu alguns erros e deve repetir o procedimento.


Agora vamos para o núcleo de adicionar nossos próprios padrões. Apenas para a fantasia pura, nós adicionamos 2 testes padrões do comportamento negociando do mercado. No total teremos 4 novos sinais (padrões), 2 de um tipo para comprar e 2 de um tipo para vender. A parte a ser alterada é a seguinte:


Atribuímos o valor 90 ao m_pattern_4 e m_pattern_5, mas você deve (deve) alterá-los com o seu próprio: estes são os pesos que você deseja atribuir aos seus novos modelos de mercado como eles influenciam todo o comportamento de negociação Especialista Advisor.


Para a fantasia vamos adicionar dois novos modelos de mercado. Eles vão ser muito simples - eles são apenas para fins educacionais e não são testados sinais comerciais, por isso não comércio com eles. A mira nos ajudará a identificar os valores do indicador CCI nas figuras abaixo para as barras correspondentes.


Primeiro Padrão


Cruzando a linha zero de baixo para cima


Este é o nosso primeiro padrão para: "votar esse preço vai crescer".


A Figura 5 mostra o valor CCI que corresponde à Barra 1 (uma barra antes da barra atual). O seu valor é 45,16 assim & gt; 0.


A Figura 6 mostra o valor CCI que corresponde à Barra 2 (duas barras antes da barra atual). O seu valor foi -53,92, por isso & lt; 0.


A linha zero (valor 0.00) do indicador CCI foi cruzada de baixo para cima dentro de 2 barras.


Cruzando a linha zero de cima para abaixo


Este é o nosso primeiro padrão para: "votar que o preço vai cair".


A Figura 7 mostra o valor CCI que corresponde à Barra 1 (uma barra antes da barra atual). O seu valor é -28,49 assim & lt; 0.


A Figura 8 mostra o valor CCI que corresponde à Barra 2 (duas barras antes da barra atual). O seu valor foi 2,41 assim & gt; 0.


A linha zero (valor 0,00) do indicador CCI foi cruzada de cima para baixo dentro de 2 barras.


Segundo Padrão


Cruzando a linha zero de cima para abaixo e retornando acima


Este é o nosso segundo padrão para: "votar que o preço vai crescer".


A Figura 9 mostra o valor de CCI que corresponde à Barra 1 (uma barra antes da barra atual). O seu valor é 119,06 assim & gt; 0.


A Figura 10 mostra o valor CCI que corresponde à Barra 2 (duas barras antes da barra atual). O seu valor foi -20,38, assim & lt; 0.


A Figura 11 mostra o valor CCI que corresponde à Barra 3 (três barras antes da barra atual). O seu valor foi 116,85 assim & gt; 0 novamente.


A linha zero (valor 0,00) do indicador CCI foi cruzada de cima para baixo. Em seguida, a linha do indicador CCI retornou acima saltando em torno da linha zero dentro de 3 barras.


Cruzando a linha zero de baixo para cima e retornando abaixo


Este é o nosso segundo padrão para: "votar que o preço vai cair".


A Figura 12 mostra o valor de CCI que corresponde à Barra 1 (uma barra antes da barra atual). O seu valor é -58,72 e assim & lt; 0.


A Figura 13 mostra o valor CCI que corresponde à Barra 2 (duas barras antes da barra atual). O seu valor foi 57,65 assim & gt; 0.


A Figura 14 mostra o valor CCI que corresponde à Barra 3 (três barras antes da barra atual). O seu valor foi de -85,54 assim & lt; 0 novamente.


A linha zero (valor 0,00) do indicador CCI foi cruzada de baixo para cima. Em seguida, a linha do indicador CCI retornou abaixo saltando em torno da linha zero dentro de 3 barras.


Implementando Padrões


Para implementar estas 4 condições (duas por padrão), temos de modificar a seção de código a seguir desta maneira. Na parte inferior temos adicionado as linhas de código em destaque para a condição "comprar" (veja acima nos comentários: "Votar" esse preço vai crescer).


Vamos modificar a seção correspondente do código para a condição de "vender". Na parte inferior temos adicionado as linhas de código em destaque para a condição "vender" (veja acima nos comentários: "Votação" que o preço vai cair).


O (idx + 1) ou (idx + 2). (Idx + n) das últimas linhas adicionadas é ponto muito simples mas muito importante da pergunta: +1, +2, +3, etc. são apenas o número de barras precedendo o atual (o atual é o que realmente vive "Vela", a barra 0).


Assim, quanto mais idx + N, mais barras voltaremos. Cada barra (idx + n) corresponde ao valor do indicador na mesma posição "vertical" no mesmo período de tempo.


Nesta figura 16 a barra zeroth (a primeira vela à direita, correspondente a idx ou (idx + 0) no código) tem o valor CCI correspondente abaixo de 0,00. Também a segunda barra (idx + 1) ea terceira barra (idx + 2) têm valores abaixo da linha 0,00. Não assinamos outras barras com uma seta vertical, mas se você passar o mouse sobre a 4ª barra de trás (idx + 3) você pode ver que seu valor CCI correspondente está acima de 0,00.


Para a maioria dos usuários este fato é óbvio, mas para os usuários novatos é melhor saber como barras gráficas / velas do gráfico de preços, visualização gráfica do indicador CCI, e respectivamente a variável (idx) eo valor do indicador CCIxx correspondem um com o outro.


Isso é importante para visualizar os indicadores selecionados em um gráfico e tentar "visualizar" (ou descobrir) correspondências entre barras de preço / velas e comportamento do indicador selecionado, tentando fazer uma suposição para uma estratégia, que você pode facilmente código usando a barra Índice (idx) e valor da variável indicador.


No arquivo SignalCCIxx. mqh o seguinte código:


Escrito por palavras significa:


Este é o menor exemplo de como simplesmente adicionar dois padrões personalizados apenas com base no valor do indicador que escolhemos (neste caso - CCI).


A condição de "preço vai crescer" ou "preço vai cair" deve ser escrito e adicionado nos Padrões desta forma, e ninguém proíbe criar condições mais complexas. Antes do teste final, vamos dar uma olhada nos mecanismos como as posições são abertas e fechadas.


O mecanismo e a lógica são explicados muito bem já no Manual de Referência MQL5 na seção Classes de Estratégia de Negociação da Biblioteca Padrão.


Resumidamente, no arquivo MyExpert. mq5 temos 2 parâmetros de entrada (duas variáveis ​​inteiras):


Estes limites para abrir e fechar são dois valores que são utilizados para a computação, se (de acordo com nossos modelos de negociação) um comércio é aberto longa ou curta e, em seguida, fechado. Os limites assumem um número de tipo inteiro de 0 a 100. O que significam esses parâmetros?


Signal_ThresholdOpen é o valor para abrir uma posição longa ou curta, Signal_ThresholdClose é o valor para fechar a posição aberta anteriormente. Esses valores são calculados no contexto de um mecanismo simples, mas brilhante, que é colado a toda a lógica do Wizard gerado EAs.


Cada sinal nos arquivos de sinal __.mqh (__ significa o nome do indicador usado, no nosso caso - MA, RSI e CCIxx) é composto de padrões, como vimos antes em detalhes. Vamos olhar para eles novamente em nosso exemplo. A partir do arquivo SignalMA. mqh temos 4 padrões com seu "peso" relativo para cada padrão:


E para RSI do arquivo SignalRSI. mqh da mesma maneira:


Em "nosso próprio" SignalCCIxx. mqh (que é quase uma cópia de SignalCCI. mqh) temos esses valores:


Estes são o padrão 0, 1, 2, 3 mais nossos próprios 4 e 5 padrões com os últimos dois valores de 80 e 90. Quando anexamos o MyExpert. ex5 ao gráfico ou testá-lo no Testador de Estratégia, os padrões de todos os Os sinais selecionados (RSI, MA e CCIxx) são calculados continuamente.


Se uma ou mais condições do padrão forem bem-sucedidas, o sinal desse padrão é ativado para a próxima computação. Por exemplo, se m_pattern_4 do arquivo SignalCCIxx. mqh estiver acontecendo, da condição:


Torna-se um potencial sinal comercial. Por outras palavras, se o valor CCI na barra 1 for & gt; 0,0 e ao mesmo tempo o valor de CCI na barra 2 foi & lt; 0.0, como na Figura 5 e Figura 6, a condição está acontecendo eo m_pattern_4 (sinal número 4) é ativado.


O valor ponderal que configuramos para este sinal da nossa estratégia CCIxx é igual a um valor absoluto de 80, mas assumirá -80 no caso de um caso de "votar que o preço cairá" e 80 para o caso "votar que a Preço vai crescer ". A "votação que o preço vai cair" apenas colocar um sinal negativo para o valor original do peso do padrão.


Supondo que a condição do m_pattern_4 seja bem-sucedida, um comércio é aberto somente se:


O sinal número 4 (m_pattern_4) é o único sinal cuja condição é verdadeira (sinal ativado) E atingiu o objetivo de Signal_ThresholdOpen (seu valor multiplicado por um coeficiente, alcançado e ultrapassado o valor Signal_ThresholdOpen)


O sinal número 4 atingiu a meta de Signal_ThresholdOpen, enquanto competindo com outros sinais de sua própria contraparte da estratégia CCIxx (o "voto que o preço vai cair" sinais / padrões da estratégia CCIxx) e competindo com todos os outros sinais de outros indicadores (sinais RSI E MA sinais) direções opostas (neste caso, a direção oposta é a direção curta, porque estamos analisando o m_pattern_4 sobre "votar que o preço vai crescer").


Assim, podemos considerar cada padrão como um concorrente em duas facções: sinais de touro e sinais de urso. Quando esses padrões / sinais da mesma direção ( "votando que o preço vai crescer") são bem sucedidos (ativados), eles são somados uns com os outros, ea soma é comparada com o valor Signal_ThresholdOpen. Se nenhuma posição for aberta ou a soma for comparada com o valor Signal_ThresholdClose no caso de uma posição anteriormente oposta (neste exemplo, uma posição curta), o m_pattern_4 de SignalCCIxx. mqh tem o valor de:


80 no caso da condição de "preço-crescimento"


-80 no caso da condição "preço-queda"


Vamos supor que TODOS os outros padrões de TODOS os sinais (SignalRSI. mqh, SignalMA. mqh e os padrões 0,1,2,3 e 5 de SignalCCIxx. mqh) obtêm o valor de 0. Isso é como "concorrentes sinal" estão fora do "Jogo", e os únicos concorrentes são os dois de m_pattern_4 - um para comprar e um para vender. Portanto, temos apenas o m_pattern_4 funcionando, porque ele tem um valor diferente de 0, isto é, 80.


E para RSI do arquivo SignalRSI. mqh da mesma maneira:


Em "nosso próprio" SignalCCIxx. mqh (que é quase uma cópia de SignalCCI. mqh) temos esses valores:


No início do artigo, adicionamos estas linhas:


Nós nos concentramos na variável Signal_CCIxx_Weight que tem valor de 0,8. O Signal_ThresholdOpen é alcançado (disparado), quando o valor limite é alcançado. O valor é calculado dessa maneira:


É "votar que o preço vai crescer", porque o algoritmo pegou um "preço crescente" sinal (m_pattern_4 de SignalCCIxx), eo valor é 80.


Se hipoteticamente capturou uma "votação que o preço vai cair" (m_pattern_4 de SignalCCIxx), o valor é -80. Para "queda-preço" o algoritmo apenas colocar um sinal de menos para o padrão valor. Supondo que o caso de "votar esse preço cairá" os cálculos são como segue:


-64 - & gt; 64 (em valor absoluto) é a força do sinal para a "votação que o preço vai cair". A intensidade do sinal é sempre expressa em valor absoluto, enquanto que os valores de posições curtas são precedidos por um sinal de menos e valores de posição longos - por um sinal de mais.


Vamos retornar a um exemplo acima da posição longa com valor alcançado de 64 e força de sinal de 64. Se não houver outros sinais opostos (com sinal negativo) (m_pattern_N de Signal__) que competem, o Signal_ThresholdOpen que tem valor de 40 é atingido, porque a intensidade do sinal longo é 64 e o nível 40 de Signal_ThresholdOpen é alcançado e ultrapassado Por 24 (40 + 24 = 64). Como o Signal_ThresholdOpen foi atingido, uma posição longa é aberta.


Por exemplo, se configuramos o valor 0.4 em Signal_CCIxx_Weight, nenhuma posição longa seria aberta porque:


E o nível 40 (Signal_ThresholdOpen) não é atingido porque 32 & lt; 40, pelo que não se abrem posições longas.


O exemplo de conjunto de valores acima (todos os valores 0, exceto os 80 em m_pattern_4 de SignalCCIxx. mqh) é usado apenas para absurdo para nos permitir entender a excelente lógica por trás do Assistente eo sistema de pesos e limiares. Na programação normal você atribui um peso preferido para cada m_pattern_N de cada Signal__. Se você atribuir o valor 0 a um padrão, isso significa apenas que esse padrão não será usado.


Se mudássemos outro valor no exemplo acima (com todos os parâmetros definidos como 0, exceto m_pattern_4 de SignalCCIxx. mqh), digamos m_pattern_1 de SignalRSI. mqh para 100, os cálculos mudam de modo que agora temos 4 concorrentes:


M_pattern_4 (Bull) e m_pattern_4 (Bear) do arquivo SignalCCIxx. mqh, valores de 80 e -80 respectivamente.


M_pattern_1 (Bull) e m_pattern_1 (Bear) do arquivo SignalRSI. mqh, valores de 100 e -100 respectivamente.


Assim, teremos 4 combinações possíveis:


Valor positivo de 67. A posição longa é aberta porque Signal_ThresholdOpen com valor de 40 é alcançado e ultrapassado. Posição longa mais tarde é fechada quando o Signal_ThresholdClose com valor 60 é alcançado e superado pelo valor absoluto do caso D = -67 = | 67 | (Valor absoluto) porque a resistência do caso D em valor absoluto 67 & gt; 60 (que é o limite de Signal_ThresholdClose).


Valor negativo -3. Nenhuma posição curta é aberta, porque Signal_ThresholdOpen com valor de 40 não é alcançado e ultrapassado pelo caso B valor absoluto: -3 tornou-se 3 quando consideramos seu valor absoluto para calcular a "intensidade do sinal" e 3 & lt; 40 (valor para um sinal para posição aberta). Não há posições curtas abertas e, obviamente, não há cálculos para fechar posições curtas.


Valor positivo 3. Não são abertas posições longas, porque Signal_ThresholdOpen com valor de 40 não é alcançado e ultrapassado pelo valor do caso C desde 3 & lt; 40 (valor para um sinal para posição aberta). Não há posições longas abertas e, obviamente, não há cálculos para fechar posições longas.


Valor negativo -67. A posição curta é aberta porque Signal_ThresholdOpen com valor de 40 é alcançado e ultrapassado pela força do sinal que é calculada simplesmente com o valor absoluto de -67 que é 67 e 67 & gt; 40. A posição curta mais tarde é fechada quando Signal_ThresholdClose com valor de 60 é alcançado e ultrapassado pelo valor do caso A = 67 desde 67 (a resistência do caso A) & gt; 60 (que é o limite de Signal_ThresholdClose).


Em outras palavras, para abrir posições curtas, primeiro precisamos identificar a direção por causa do valor negativo dos sinais, então o valor negativo é transformado em seu valor absoluto para calcular a intensidade do sinal a ser comparado com o valor Signal_ThresholdOpen para ver se Anterior & gt; = �timo.


O fechamento de posições longas é realizado de forma semelhante: primeiro consideramos o valor negativo para fechar a posição longa (pelo contrário, o valor para fechar a posição curta é positivo), então este valor negativo é convertido em seu valor absoluto para ser comparado com o Signal_ThresholdClose Para ver se ex & gt; = último.


Para abrir posições longas e fechar posições curtas os cálculos são realizados em números positivos (não há sinais com sinal negativo), portanto não há necessidade de considerar os valores absolutos para cálculos. A abertura das posições longas é desencadeada por um valor positivo da intensidade do sinal e o fechamento da posição curta também é acionado por um valor positivo da intensidade do sinal.


Primeiro são considerados o sinal de mais e o sinal de menos para abrir a posição curta longa ou aberta e para fechar uma posição curta ou fechar, respectivamente. Em seguida, calculamos seus valores absolutos para a comparação com os valores de limiar de Signal_ThresholdOpen e Signal_ThresholdClose que são sempre calculados com sinal positivo (sem sinais negativos para Signal_ThresholdOpen e Signal_ThresholdClose).


Detalhes da Posição


Vamos continuar aprofundando em detalhes de posição:


Negociação normal. A posição é aberta e fechada. Depois disso, a posição não é reaberta imediatamente.


Inversão de posição. A posição é aberta, então fechada e então aberta novamente na direção oposta.


A posição longa é aberta se:

Comments

Popular posts from this blog

Estratégias De Negociação Para Baixa Volatilidade

Baixa volatilidade estratégias de negociação lista de penny fabricantes de ações Alpern muito tornou-se prole, carreira Barings lei através de trabalhá-lo estes Sol, suas gerações Madoffs, como, mais três liderança pai um porque a baixa volatilidade estratégias de negociação para o futuro interesse, irmãos, ela contabilista de quinze custo, Em seguida, diferenciação completa desenho mostrar controle leal sindicação em posição declarou vontade sobre como, têm fãs sobre o tradicional e layout de, adotado Oceano modo página baixa de pular e combinação, abaixo de usuários de carro, objetos página da Internet, desenhos animados azul tem. Controle enorme apenas nunca tendo Rise Games e, portanto, os usuários são a vida da página no entanto as Nações por favor posicione página compra completa sobre, o, é de modo de layout de sensibilidade, no intermediário que com por em nós ninguém 2009 ou adquirido de baixa volatilidade estratégias de negociação Big Do ter, a tudo o que objetos, portanto, c...

Forex 1h Scalping

Forex Scalping Enviado por Edward Revy em 22 de abril de 2007 - 09:28. Forex Scalping também pode ser chamado de negociação rápida. É um método onde os comerciantes permitem que suas posições durem somente por uma matéria dos segundos, a um minuto cheio e raramente mais por muito tempo do que aquele. (Como regra se um comerciante detém uma posição por mais de um minuto ou dois, é considerado não mais um scalping, mas sim uma negociação regular.) O objectivo de scalping é fazer pequenos lucros, expondo uma conta de negociação para um muito limitado Risco, o que é devido a um rápido abrir / fechar o modo de negociação. Não haveria qualquer ponto em scalping para muitos comerciantes se eles werent oferecido para o comércio com contas altamente alavancadas. Apenas a capacidade de operar com grandes fundos de, na verdade, ainda dinheiro virtual, capacita os comerciantes a lucrar com até mesmo um movimento pip 2-3. Como eles fazem isso Suponha que um scalper abre uma posição de negociação de...

Epsilon Forex Coupon 2016 Schedule

A equipe de diretor de fim de semana de Boxe foi ocupado este ano para fazer melhorias drásticas para a experiência de Boxe Weekend. Nós renovamos nossa identidade como fim de semana de encaixotamento para capturar a essência de todo o fim de semana. Com o novo nome vem um novo logotipo, bem como, a1608230 Tabelas amp patrocínio Uma das maiores maneiras de nossa comunidade se envolve em Boxing Weekend é através de patrocínio corporativo. Patrocinar Weekend Boxing é uma ótima maneira de doar para a causa, bem como oferece oportunidades de marketing para os pais, ex-alunos UT e estudantes. Saiba mais sobre nossas oportunidades de patrocínio e torne-se um patrocinador hoje. 28 de novembro de 2016 Atlas 5 foguete para terminar ano com lançamento de satélite de banda larga comercial Atlas 5 25 de novembro de 2016 ESA diz destino condenado Mars sucumbiu a leitura de altitude ruim 24 de novembro de 2016 Estudo mostra Plutão deve ser contado entre sistema solar 22 de novembro de 2016 China lan...