Crie seu próprio robô comercial em 6 etapas!
Mais uma vez sobre o MQL5 Wizard.
O mundo ao nosso redor está mudando rapidamente, e nós tentamos acompanhá-lo. Não temos tempo para aprender algo novo, e essa é uma atitude normal de um ser humano normal. Os comerciantes são pessoas como todos os outros, eles querem obter o máximo de resultados pelo mínimo de esforço. Especialmente para comerciantes, o MetaEditor 5 oferece um maravilhoso MQL5 Wizard. Existem vários artigos que descrevem como criar um sistema de negociação automatizado usando o assistente, incluindo uma "versão leve" MQL5 Wizard for Dummies e uma "versão dos desenvolvedores" - MQL5 Wizard: New Version.
Tudo parece bom - um robô comercial é criado em 5 cliques do mouse, você pode testá-lo no Strategy Tester e otimizar os parâmetros de um sistema comercial, você pode permitir que o robô resultante seja comercializado em sua conta sem a necessidade de fazer qualquer outra coisa manualmente . Mas o problema surge quando o comerciante / desenvolvedor MQL5 quer criar algo próprio, algo único que nunca foi descrito em qualquer lugar, e vai escrever seu próprio módulo de sinais comerciais. O comerciante abre a documentação MQL5, chega à Biblioteca Padrão e fica horrorizado ao ver.
Cinco classes terríveis.
É verdade que o MQL5 Wizard simplifica grandemente a criação de Expert Advisors, mas primeiro você precisa saber o que será usado como entrada para ele. Para criar automaticamente um Expert Advisor usando o MQL5 Wizard, certifique-se de que seus componentes aderem a cinco classes básicas da seção Base Classes of Expert Advisors:
CExpertBase é uma classe base para quatro outras classes.
Aqui está toda a força da abordagem "ótima e terrível" que é chamada de programação orientada a objetos (OOP). Mas não tenha medo, agora quase todo mundo tem um telefone celular com muita função, e quase ninguém sabe como isso funciona. Não precisamos estudar tudo isso, só discutiremos algumas funções da classe CExpertSignal.
Neste artigo, passamos por etapas de criação de um módulo de sinais comerciais, e você verá como fazer isso sem ter que aprender o OOP ou as aulas. Mas se você quiser, você pode ir um pouco mais depois.
1. Criando uma classe do Scratch.
Nós não alteraremos nenhum módulo existente de sinais comerciais para nossas necessidades, porque é a maneira de se confundir. Portanto, simplesmente escreveremos nossa própria classe, mas primeiro usaremos o Navegador para criar uma nova pasta para armazenar nossos sinais em MQL5 / Incluir / Especialista /.
Clique com o botão direito do mouse na pasta que criamos, selecione "Novo arquivo" e crie uma nova classe para o nosso módulo de sinais comerciais.
Preencha os campos:
Nome da classe - o nome da classe. Este será um módulo para gerar sinais na interseção de duas médias móveis, então, vamos nomeá-lo MA_Cross.
Clique em "Concluir" e um rascunho do nosso módulo está pronto. Está todo o leste até agora. Nós só precisamos adicionar a declaração #include ao arquivo resultante para que o compilador saiba onde encontrar a classe base CExpertSignal.
Verifique a classe resultante (deve estar livre de erros de compilação) e clique em F7. Não há erros e podemos seguir em frente.
2. Um identificador para o módulo.
Nossa classe está completamente vazia, não tem erros e podemos testá-la - vamos tentar criar um novo Consultor Especial no MQL5 Wizard com base nela. Chegamos ao passo de selecionar um módulo de sinais comerciais e ver. que nosso módulo não está lá.
E como pode estar lá? Não adicionamos nenhuma indicação para o MQL5 Wizard para entender que nossa classe poderia ser algo útil. Vamos consertar isso. Se você olhar para os módulos do pacote padrão, você verá que cada um deles contém um cabeçalho no início do arquivo. Este é o identificador do módulo compilado de acordo com certas regras. E as regras são muito simples.
Abra, por exemplo, o código-fonte do módulo de sinais de negociação baseados em AMA (veja a descrição lógica em Sinais da Média de Mudança Adaptativa). E execute o MQL5 Wizard escolhendo este módulo. Comparar:
O último bloco no identificador refere-se aos parâmetros do módulo, a primeira linha contém o nome do módulo a ser exibido no MQL5 Wizard. Como você pode ver, não há nada complicado. Assim, o identificador de cada módulo contém as seguintes entradas:
Título - o nome do módulo a ser mostrado no MQL5 Wizard. Tipo - a versão do módulo de sinais. Sempre deve ser SignalAdvanced. Nome - o nome do módulo após o seu é selecionado no MQL5 Wizard e é usado em comentários para descrever os parâmetros internos do Expert Advisor gerado (de preferência especificado).
Em seguida, vem a descrição dos parâmetros na forma de Parameter = list_of_values, no qual o seguinte é especificado (separado por vírgula):
O nome da função para definir o valor do parâmetro ao iniciar o Expert Advisor. O tipo de parâmetro pode ser a enumeração. O valor padrão para o parâmetro, ou seja, o valor que será definido para o parâmetro, se você não o alterar no MQL5 Wizard. Descrição do parâmetro, que você vê ao iniciar o Expert Advisor gerado no MQL5 Wizard.
Agora, sabendo tudo isso, vamos criar o controle de nosso módulo de sinais comerciais. Então, estamos escrevendo um módulo para obter sinais comerciais na interseção de duas médias móveis. Precisamos definir pelo menos quatro parâmetros externos:
FastPeriod - o período da média rápida média FastMethod - o tipo de alisamento da média rápida Media SlowPeriod - o período da média lenta SlowMethod - o tipo de alisamento da média lenta.
Você também pode adicionar uma mudança e o tipo de preços para calcular cada uma das médias móveis, mas não muda nada fundamentalmente. Portanto, a versão atual é a seguinte:
O identificador do módulo está pronto, e descrevemos o seguinte:
O nome exibido no MQL5 Wizard - "Sinais na interseção de duas médias móveis". Quatro parâmetros externos para configurar os sinais comerciais. FastPeriod - o período da média em movimento rápido com o valor padrão de 13. FastMethod - o tipo de alisamento da média rápida, suavização simples por padrão. SlowPeriod - o período da média lenta com o valor padrão de 21. SlowMethod - o tipo de alisamento da média lenta, suavização simples por padrão.
Salve as alterações e compile. Não deve haver nenhum erro. Execute o Assistente MQL5 para verificar. Você vê, nosso módulo agora está disponível para seleção, e mostra todos os nossos parâmetros!
Parabéns, o nosso módulo de sinal comercial parece ótimo agora!
3. Métodos para definir parâmetros.
Agora é hora de trabalhar com os parâmetros externos. Como nosso módulo de negociação é representado pela classe MA_Cross, seus parâmetros devem ser armazenados na mesma classe que os membros privados. Vamos adicionar quatro linhas (igual ao número de parâmetros) à declaração de classe. Nós já descrevemos o parâmetro na alça e conhecemos o seguinte:
Mas como os valores dos parâmetros externos do módulo aparecem nos membros apropriados da nossa classe MA_Cross? É tudo muito simples, você só precisa declarar métodos públicos com o mesmo nome na classe, ou seja, adicionar quatro linhas à seção pública:
Quando você gera um Expert Advisor com base neste módulo usando o MQL5 Wizard e executá-lo no gráfico, esses quatro métodos são chamados automaticamente ao inicializar o Expert Advisor. Então, aqui está uma regra simples:
A regra de criação de parâmetros no módulo - para cada parâmetro que declaramos no identificador, devemos criar um membro privado na classe para armazenar seu valor e um membro público para definir um valor para ele. O nome do método deve corresponder ao nome do parâmetro.
E o último momento é definir valores padrão para nossos parâmetros que serão usados no caso de os métodos de configuração de valor não serem chamados. Cada variável ou membro da classe declarada deve ser inicializado. Esta técnica permite evitar muitos erros difíceis de encontrar.
Para a inicialização automática, o melhor atraente é o construtor de classe; É sempre o primeiro a ser chamado ao criar um objeto. Para os valores padrão, usaremos aqueles escritos no identificador do módulo.
Aqui, os alunos são inicializados usando a lista de inicialização.
Como você pode ver, ainda não usamos indicadores de média móvel. Encontramos uma regra simples - como muitos parâmetros são indicados no identificador do módulo, muitos métodos e membros devem estar na classe que implementa o módulo. Não há nada complicado! No entanto, não se esqueça de definir valores padrão de parâmetros no construtor.
4. Verifique a correção dos parâmetros de entrada.
Criamos parâmetros para o nosso módulo de negociação, métodos escritos para definir valores para eles, e agora vem a próxima fase importante - a correção dos parâmetros deve ser verificada. No nosso caso, devemos verificar os períodos de médias móveis e o tipo de alisamento para o cálculo. Para este efeito, você deve escrever seu próprio método ValidationSettings () na classe. Este método é definido na classe principal CExpertBase, e em todas as suas crianças é obrigatoriamente redefinido.
Mas se você não sabe nada sobre a programação orientada a objetos, lembre-se - na nossa classe, devemos escrever a função ValidationSettings (), que não requer parâmetros e retorna true ou false.
Como você pode ver, na parte pública da classe MA_Cross adicionamos a declaração do método ValidationSettings () e, em seguida, adicionou o corpo do método da seguinte forma:
Primeiro vem o tipo de retorno, depois o nome da classe, então o operador de resolução do escopo. e tudo isso é seguido pelo nome do método previamente declarado. Não se esqueça de que o nome e o tipo de parâmetros devem corresponder na declaração e descrição do método da classe. No entanto, o compilador irá alertá-lo sobre esse erro.
Observe que primeiro o método da classe base é chamado, e os parâmetros de entrada são verificados.
Se você não adicionar esta linha, o Expert Advisor gerado não poderá inicializar o nosso módulo de sinais comerciais.
5. Onde estão os nossos indicadores?
É hora de trabalhar com os indicadores, já que todos os trabalhos preparatórios com os parâmetros para eles foram concluídos. Cada módulo de sinais comerciais contém o método InitIndicators (), que é chamado automaticamente quando você executa o Expert Advisor gerado. Neste método, devemos fornecer indicadores de médias móveis para nosso módulo.
Primeiro, declare o método InitIndicators () na classe e cole o rascunho:
Portanto, não há nada complicado, declaramos o método e, em seguida, simplesmente criamos o corpo do método, como fizemos para o método ValidationSettings (). Sobretudo, não se esqueça de inserir o nome da classe e o operador :: na definição da função. Temos um rascunho, que podemos inserir em um código para criar médias móveis. Vamos fazer isso corretamente - para cada indicador criamos uma função separada na classe, que retorna true se for bem-sucedida. A função pode ter qualquer nome, mas deixe-o refletir seu propósito, então vamos chamar as funções CreateFastMA () e CreateSlowMA ().
Isso é tudo, só precisamos escrever um código que gere os indicadores de MA e de alguma forma integra as alças desses indicadores no módulo de negociação, para que o módulo possa usar os valores desses indicadores. É por isso que um ponteiro para uma variável do tipo CIndicators é passado como um parâmetro. O seguinte está escrito em Documentação sobre isso:
O CIndicators é uma classe para coletar instâncias de timeseries e classes de indicadores técnicos. A classe CIndicators fornece criação de instâncias de classes de indicadores técnicos, seu armazenamento e gerenciamento (sincronização de dados, controle e gerenciamento de memória).
Isso significa que devemos criar nossos indicadores e colocá-los nesta coleção. Uma vez que apenas os indicadores da forma CIndicator e seus filhos podem ser armazenados na coleção, devemos usar esse fato. Usaremos CiCustom, qual é a criança acima mencionada. Para cada média móvel, declaramos um objeto do tipo CiCustom na parte privada da classe:
Claro, você pode criar sua própria classe de indicadores, que será derivada do CIndicator e implementará todos os métodos necessários para uso com o MQL5 Wizard. Mas, neste caso, queremos mostrar como você pode usar qualquer indicador personalizado no módulo de sinais comerciais usando CiCustom.
Veja como parece no código:
No método CreateFastMA (), primeiro verifique o ponteiro da coleção de indicadores e, em seguida, adicione um ponteiro do MA m_fast_ma rápido a esta coleção. Em seguida, declare a estrutura MqlParam, especialmente projetada para armazenar parâmetros de indicadores personalizados e preenchê-lo com valores.
Usamos a Média de Mudança Personalizada do pacote de entrega de terminal padrão como o indicador de MA personalizado. O nome do indicador deve ser indicado em relação à pasta data_folder / MQL5 / Indicators /. Como o Custom Moving Average. mq5 'do pacote padrão está localizado em data_folder / MQL5 / Indicators / Examples /, especificamos seu caminho, incluindo a pasta Examples:
Se você olhar para o código desse indicador, você pode ver todos os dados necessários:
Os valores da estrutura contêm os pares tipo-valor:
tipo de parâmetro - string (para transferir o nome do indicador)
Depois de preencher a estrutura, o indicador é inicializado pelo método Create () de todos os parâmetros necessários: nome do símbolo e o período em que é calculado, o tipo do indicador da enumeração ENUM_INDICATOR, o número de parâmetros do indicador eo MqlParam estrutura com valores de parâmetro. E o último está especificando o número de buffers de indicadores usando o método NumBuffers ().
O método CreateSlowMA () para criar a média lenta é simples. Ao usar indicadores personalizados no módulo, não se esqueça de que o Expert Advisor gerado pelo MQL5 Wizard também será executado no testador. Então, no início do nosso arquivo, adicionamos a propriedade #property tester_indicator que comunica ao testador a localização dos indicadores necessários:
Se usarmos vários indicadores diferentes, devemos adicionar essa linha para cada um deles. Então, adicionamos os indicadores. Para mais conveniência, vamos fornecer dois métodos de receber valores MA:
Como você pode ver, os métodos são muito simples, eles usaram o método GetData () da classe pai SIndicator, que retorna um valor do buffer de indicador especificado na posição especificada.
Se você precisar de aulas para trabalhar com os indicadores clássicos do pacote padrão, eles estão disponíveis na seção Classes para trabalhar com indicadores. Estamos prontos para avançar para a fase final.
6. Defina os Métodos LongCondition e ShortCondition.
Tudo está pronto para fazer o nosso módulo funcionar e gerar sinais comerciais. Essa funcionalidade é fornecida por dois métodos que devem ser descritos em cada filho do CExpertSignal:
LongCondition () verifica as condições de compra e retorna a força do sinal Long de 0 a 100.
Se a função retorna um valor nulo, isso significa que não há sinal de negociação. Se houver condições para o sinal, você pode estimar a força do sinal e retornar qualquer valor que não exceda 100. A avaliação da intensidade do sinal permite que você crie sistemas de negociação de forma flexível com base em vários módulos e modelos de mercado. Leia mais sobre isso no MQL5 Wizard: New Version.
Uma vez que estamos escrevendo um módulo simples de sinais de negociação, podemos concordar que os sinais de compra e venda são avaliados igualmente (100). Vamos adicionar os métodos necessários na declaração de classe.
Além disso, vamos criar a descrição das funções. É assim que o sinal de compra é verificado (é tudo o mesmo com o sinal de venda):
Observe que declaramos a variável idx, à qual o valor retornado pela função StartIndex () da classe principal CExpertBase é atribuído. A função StartIndex () retorna 0, se o Expert Advisor for projetado para funcionar em todos os carrapatos e, nesse caso, a análise começa com a barra atual. Se o Consultor Especializado for projetado para trabalhar a preços abertos, StartIndex () retorna 1 e a análise começa com a última barra formada.
Por padrão, StartIndex () retorna 1, o que significa que o Expert Advisor gerado pelo MQL5 Wizard só será executado na abertura de uma nova barra e ignorará os tiques recebidos durante a formação da barra atual.
Como ativar este modo e como ele pode ser usado será descrito mais tarde no curso de acabamento.
O módulo está pronto para uso, então vamos criar um robô comercial no MQL5 Wizard com base neste módulo.
Verificando um consultor especialista no testador.
Para testar a eficiência do nosso módulo, vamos gerar um Expert Advisor com base no MQL5 Wizard e executá-lo no gráfico. A guia "Entradas" da janela de início exibida contém os parâmetros do módulo MA_Cross.
Todos os outros parâmetros também foram adicionados pelo MQL5 Wizard ao gerar a EA com base no módulo de gerenciamento de dinheiro selecionado e no módulo de manutenção de posição (Trailing Stop). Assim, nós só precisamos escrever um módulo de sinais comerciais e recebemos uma solução pronta. Esta é a principal vantagem de usar o MQL5 Wizard!
Agora vamos testar o robô comercial no MetaTrader 5 Strategy Tester. Vamos tentar executar uma otimização rápida de parâmetros-chave.
Nessas configurações de parâmetros de entrada, é necessário mais de meio milhão de passagens para otimização completa. Portanto, escolhemos otimização rápida (algoritmo genético) e, adicionalmente, utilizamos MQL5 Cloud Network para acelerar a otimização. A otimização foi feita em 10 minutos e obtivemos os resultados.
Como você pode ver, a criação de um robô comercial no MQL5 e a otimização dos parâmetros de entrada levaram muito menos tempo do que seria necessário para escrever a lógica de manutenção do gerenciamento de posição, depuração e busca dos melhores algoritmos.
Você pode pular este item ou voltar para ele mais tarde, quando estiver completamente à vontade com a técnica de escrever um módulo de sinais comerciais.
Se você abrir o código-fonte do Expert Advisor gerado pelo MQL5 Wizard, você encontrará a variável global Expert_EveryTick com o valor falso. Com base nessa variável, a função StartIndex () retorna seu valor. Ele comunica ao Expert Advisor o modo em que deve ser executado.
Se você definir o Expert_EveryTick como verdade e compilar o código, o robô comercial analisará cada tico entrante e, assim, tomará decisões sobre os valores da barra incompleta atual. Faça isso somente se entender como funciona. Nem todos os sistemas de negociação são projetados para funcionar dentro da barra.
Você também pode adicionar uma entrada de palavra-chave para o parâmetro Expert_EveryTick, e então você terá um novo parâmetro de entrada do Expert Advisor, que você pode definir na inicialização do EA em um gráfico ou no testador:
E agora é hora de resumir o que fizemos.
6 Passos para Criar um Módulo de Sinais de Negociação.
Se você dominou o MQL5, então você não precisa mais escrever um Expert Advisor do zero. Basta criar um módulo de sinais de negociação e, com base neste módulo, gerar automaticamente um robô de negociação com os módulos de gerenciamento de volume avançado e comercializados. E mesmo que você não esteja familiarizado com o OOP ou não quer investigar muito a estrutura das classes comerciais, você pode passar por seis etapas:
Crie uma nova classe usando o MQL5 Wizard em uma pasta separada MQL5 / Incluir / MySignals /. Nosso módulo de sinais comerciais será armazenado lá.
Cada passo é simples e requer pouca habilidade na programação MQL5. Você só precisa escrever seu módulo uma vez, seguindo as instruções e uma verificação adicional de qualquer idéia de comércio não demorará mais de uma hora, sem horas cansativas de codificação e depuração.
Do simples ao complexo.
Lembre-se de que a estratégia de negociação implementada pelo seu robô comercial criado usando o MQL5 Wizard, é tão complexo quanto o módulo de sinais comerciais que ele usa. Mas antes de começar a construir um sistema comercial complexo baseado em um conjunto de regras de entrada e saída, divida-o em vários sistemas simples e verifique cada um separadamente.
Com base em módulos simples, você pode criar estratégias de negociação complexas usando os módulos pré-fabricados de sinais de negociação, mas este é um tópico para outro artigo!
Traduzido do russo pela MetaQuotes Software Corp.
Gerador de sinal de negociação com base em um indicador personalizado.
Introdução.
Neste artigo, vou lhe dizer como criar um gerador de sinal de negociação com base em um indicador personalizado. Você verá como você pode escrever seu próprio modelo de negociação para um indicador personalizado. Também explicarei o propósito do modelo 0 e por que as estruturas de tipo IS_PATTERN_USAGE (0) são usadas no módulo de sinal de negociação.
O artigo usará dois tipos de código: o código que estamos prestes a modificar e o código que já modificamos. O código modificado será destacado da seguinte maneira:
O código modificado é o código a ser copiado e colado no gerador de sinal de negociação. Espero que você compreenda melhor o código através do uso do destaque.
1. Indicador personalizado.
Estou certo de que deve haver um indicador não incluído na entrega padrão que você está querendo usar por um longo período de tempo. E esse é o indicador com base no qual você quer construir um módulo de sinal de negociação. Eu usarei o indicador MACD da entrega padrão como um indicador desse tipo. A localização do indicador é a seguinte: MQL5 \ Indicadores \ Exemplos \ MACD. mq5.
Cada indicador pode descrever um ou mais modelos de mercado. Um modelo de mercado é uma certa combinação do valor do indicador e do valor do preço. Os modelos disponíveis para o indicador MACD são inversão, cruzamento da linha principal e sinal, cruzamento do nível zero, divergência e dupla divergência.
1.1 Novo modelo de indicador.
Vamos supor que não estamos satisfeitos com os modelos de mercado disponíveis disponíveis para o indicador e queremos apresentar nosso próprio modelo de indicador. A nova descrição do modelo do indicador: se o indicador MACD estiver abaixo da linha zero e seus valores estão aumentando, podemos esperar mais crescimento e abrir uma posição longa:
Figura 1: Modelo de crescimento do indicador prospectivo.
se o indicador MACD estiver acima da linha zero e seus valores estão diminuindo, podemos esperar mais diminuir e abrir uma posição curta:
Figura 2: Modelo de queda do indicador prospectivo.
Então, decidimos o indicador personalizado e apresentamos o novo modelo de negociação para o indicador e sua descrição. Vamos continuar escrevendo o código.
2. Escrevendo o gerador de sinal de negociação com base em nosso indicador personalizado.
Nosso gerador é o descendente da classe base CExpertSignal. A classe base CExpertSignal é uma classe para criar geradores de sinais comerciais. A classe CExpertSignal contém um conjunto de métodos públicos (ou seja, acessíveis externamente) que permitem que um consultor especialista veja a indicação do gerador de sinais comerciais em relação à direção de entrada no mercado.
Uma vez que estamos trabalhando no nosso próprio gerador de sinais comerciais, ele deve ser herdado da classe CExpertSignal, com os métodos virtuais relevantes redefinidos (preenchidos com o código correspondente).
3. Criando a Classe do Gerador de Sinal de Negociação.
O gerador de sinal de negociação deve, por padrão, estar localizado em. MQL5 \ Include \ Expert \ Signal pasta. Não sobrecarregue o. \ Pasta de sinal da biblioteca padrão com muita informação, vamos criar uma nova pasta sob o. \ Expert pasta e chamá-lo \ MySignals:
Figura 3. Criando a nova pasta MySignals.
Em seguida, criaremos um arquivo de inclusão usando o MQL5 Wizard. Em MetaEditor, selecione "Novo" no menu Arquivo e selecione "Incluir arquivo (*.mqh)".
Figura 4. MQL5 Wizard. Criando um arquivo de inclusão.
O nome da classe de gerador de sinal será o MySignal. Ele será localizado em Incluir \ Expert \ MySignals \ MySignal. Vamos especificá-lo:
Figura 5. MQL5 Wizard. Localização do arquivo de inclusão.
Depois de clicar em "Concluir", o MQL5 Wizard irá gerar um modelo vazio. A partir deste momento, faremos tudo manualmente e copiar / colar dados. Gostaria de chamar sua atenção para o fato de que, internamente, todos os sinais da Biblioteca Padrão são quase idênticos. Eles apenas diferem nos algoritmos usados para determinar os modelos comerciais.
Portanto, você pode levar qualquer arquivo da pasta \ Include \ Expert \ Signal, copiar seus conteúdos e colá-lo em seu modelo. Você pode então começar a editar o arquivo resultante do gerador de sinal de negociação.
4. Descrição da Classe do Gerador de Sinal de Negociação.
e colou tudo no nosso modelo MySignal. mqh quase vazio. Isto é o que eu tenho:
Aqui, nós damos uma ordem ao pré-processador para incluir a classe base CExpertSignal para criar geradores de sinais comerciais em nosso modelo.
Continuaremos editando o modelo. Para garantir que o nosso modelo seja visível mais tarde no MQL5 Wizard, precisamos alterar a descrição da nossa classe:
Então, vamos ver. A linha.
mostra o nome da nossa classe de sinal sob a qual será exibida no MQL5 Wizard. Vamos mudar esse nome para algo assim:
indica o nome para descrever variáveis de nossa classe de sinal de negociação. Esta descrição será usada pelo MQL5 Wizard. Vamos modificar esta linha da seguinte maneira:
Nós daremos o mesmo nome para este parâmetro:
A linha a seguir define o nome da classe:
Vamos renomear esse parâmetro:
Deixe o próximo parâmetro como está.
O seguinte grupo de parâmetros é responsável pela descrição dos parâmetros do indicador subjacente ao gerador de sinal de negociação. Como mencionei anteriormente, vou usar. MQL5 \ Indicadores \ Exemplos \ MACD. mq5 como o indicador personalizado. Possui os seguintes parâmetros:
4.1 Parâmetro Descrição Bloco.
Observe que os parâmetros fornecidos acima se aplicam somente a MACD. mq5. Seu indicador personalizado pode ter parâmetros completamente diferentes. O principal aqui é combinar os parâmetros dos indicadores com suas descrições na classe de sinal de negociação. O bloco de descrição de parâmetro na classe de sinal de negociação para o indicador personalizado em consideração, MACD. mq5, será o seguinte:
Dê uma olhada em como os parâmetros no indicador agora combinam as descrições no bloco de descrição da classe. Após todas as modificações, o bloco de descrição da nossa classe será o seguinte:
Na programação, é considerada uma boa prática fornecer comentários ao código de alguém, facilitando assim a compreensão do código, ao retornar depois de algum tempo ter passado. Então, modificaremos o seguinte bloco:
para coincidir com a descrição da nossa classe:
Para evitar confusões, precisamos substituir todos os valores "CSignalEnvelopes" por "CSignalMyCustInd"
Figura 6. Substituindo CSignalEnvelopes por CSignalMyCustInd.
Vamos agora dar uma olhada em alguns aspectos teóricos.
5. A classe CiCustom.
Precisamos da classe CiCustom para continuar trabalhando no código da classe de indicadores de negociação do indicador personalizado. A classe CiCustom foi criada especificamente para trabalhar com indicadores personalizados. A classe CiCustom oferece criação, configuração e acesso a dados de indicadores personalizados.
6. A classe CIndicators.
CIndicators é a classe para coletar instâncias de séries temporais e classes de indicadores técnicos. A classe CIndicators fornece criação, armazenamento e gerenciamento (sincronização de dados, controle e gerenciamento de memória) das instâncias de classe de indicadores técnicos.
Estamos particularmente interessados na classe CIndicators devido ao método Create. Este método cria um indicador de um tipo especificado com parâmetros especificados.
7. Continue escrevendo nossa classe de sinal de negociação.
8. Criação do Indicador Personalizado no Gerador de Sinal de Negociação.
Dê uma olhada no bloco de código fornecido acima. A linha.
declara um objeto - o indicador de classe CiEnvelopes. CiEnvelopes é a classe para trabalhar com o indicador técnico da Biblioteca Padrão. A classe CiEnvelopes foi criada com base no indicador técnico da Biblioteca Padrão. No entanto, estamos escrevendo o código do gerador com base em nosso indicador personalizado. Portanto, não há uma classe pronta para o nosso ou seu indicador personalizado na Biblioteca Padrão. O que podemos fazer é usar a classe CiCustom.
Vamos declarar o nosso indicador como a classe CiCustom:
8.1 Quatro variáveis.
Você se lembra do bloco de descrição do parâmetro na classe? Havia três parâmetros nessa descrição. Na área protegida da nossa classe geradora, agora declararemos quatro variáveis para passar os valores para os nossos quatro parâmetros:
O seguinte bloco de código:
Este código declara variáveis que dão "peso" aos modelos de negociação de nosso gerador de sinais comerciais. Vamos substituir o bloco de "pesos" pelo seguinte código:
Como você lembra, no início do artigo foi decidido descrever apenas um novo modelo que será gerado pelo nosso gerador de sinais comerciais. No entanto, no código acima eu indiquei dois modelos de mercado (modelo 0 e modelo 1). Aqui, o modelo 0 é um modelo auxiliar importante. É necessário ao negociar com pedidos pendentes. Quando aplicado, o modelo 0 garante que as ordens pendentes se movam junto com o preço. Vejamos nosso gerador de sinais comerciais e as seguintes condições:
o indicador MACD personalizado está abaixo da linha zero,
Essas condições descrevem perfeitamente nosso modelo de negociação. Aqui está como as coisas vão se mover: as condições do nosso modelo comercial serão verificadas após a aparição do número da barra. 1. O que temos: o MACD está abaixo da linha zero, mas está ganhando impulso. Isso corresponde ao sinal de compra. Portanto, colocamos uma ordem pendente de compra pendente:
Figura 7. Colocando uma ordem pendente de compra pendente.
Ao aparecer na próxima barra, não. 2, a verificação de condição verifica se MACD está abaixo de zero e está caindo. De acordo com nosso modelo de negociação, atualmente não há condições para comprar ou vender. No entanto, note: de acordo com a lógica da classe CExpertSignal, uma vez que não há condições para comprar ou vender, todas as ordens pendentes devem ser DELETADAS. Neste caso, se o preço subir de forma súbita e dramática, perderemos a oportunidade de entrar no mercado por nossa vantagem porque não haverá ordem pendente.
É aqui que o modelo auxiliar 0 parece ser muito útil. O modelo auxiliar 0 será aplicado, desde que:
Então podemos colocar uma ordem de compra de compra pendente. Uma vez que colocamos um pedido de 50 pontos a partir do preço de abertura do bar, nós, de fato, simplesmente movemos a ordem Pendente de compra pendente de acordo com o movimento de preço:
Figura 8. Movendo o pedido Buy Stop para baixo.
Assim, usando o modelo auxiliar 0, temos a oportunidade de mover uma ordem pendente conforme o movimento do preço.
10. Outras modificações do código do modelo.
Neste bloco, declaramos métodos de configuração de parâmetros ajustáveis, métodos de ajuste de pesos de modelos comerciais, método de verificação de configurações, método de inicialização de indicadores e métodos de verificação se os modelos de mercado forem gerados.
Levando em consideração que declaramos quatro variáveis em parâmetros ajustáveis, o bloco de métodos para a configuração dos parâmetros será o seguinte:
O próximo fragmento de código permanecerá inalterado:
O próximo bloco de código a ser modificado é o seguinte:
Este bloco será fortemente modificado. Tenho em atenção que estou usando o método GetData da classe CIndicator. Os nomes dos métodos chamados serão fornecidos diretamente no código:
O próximo bloco de código é o construtor.
No construtor, mudaremos os nomes das variáveis. Além disso, usaremos apenas duas séries: USE_SERIES_HIGH + USE_SERIES_LOW.
Vamos modificar o método ValidationSettings da nossa classe.
No bloco de verificação, verificamos a condição principal para o indicador personalizado fornecido: m_period_fast & gt; = m_period_slow.
O próximo bloco trata da criação de indicadores:
As applied to our custom indicator:
The following block is the indicator initialization block:
First, we add an object to the collection. We then set the parameters of our indicator and create the custom indicator using the Create method of the CIndicators class:
The next block checks buying conditions:
According to our model 0 implementation, two models are checked:
The following block checks selling conditions:
According to our model 0 implementation, two models are checked:
Conclusão.
I hope this article has helped you to understand how you can create a trading signal generator based on your custom indicator.
Translated from Russian by MetaQuotes Software Corp.
Usando Indicadores Técnicos para Desenvolver Estratégias de Negociação.
Os indicadores, como as médias móveis e Bollinger Bands®, são ferramentas de análise técnica baseadas em matemática que os comerciantes e os investidores usam para analisar o passado e prever futuras tendências e padrões de preços. Where fundamentalists may track economic reports and annual reports, technical traders rely on indicators to help interpret the market. O objetivo na utilização de indicadores é identificar as oportunidades comerciais. For example, a moving average crossover often predicts a trend change. Nessa instância, aplicar o indicador de média móvel a um gráfico de preços permite aos comerciantes identificar áreas onde a tendência pode mudar. A Figura 1 mostra um exemplo de um gráfico de preços com uma média móvel de 20 períodos.
As estratégias, por outro lado, freqüentemente empregam indicadores de forma objetiva para determinar as regras de entrada, saída e / ou comércio. A strategy is a definitive set of rules that specifies the exact conditions under which trades will be established, managed and closed. As estratégias normalmente incluem o uso detalhado de indicadores ou, mais freqüentemente, de múltiplos indicadores, para estabelecer os casos em que a atividade de negociação ocorrerá. (Digite mais profundamente as médias móveis. Leia Simples e as médias móveis exponenciais.)
While this article does not focus on any specific trading strategies, it serves as an explanation of how indicators and strategies are different, and how they work together to help technical analysts pinpoint high-probability trading setups. (Para mais, confira Criar suas próprias estratégias de negociação.)
Um número crescente de indicadores técnicos estão disponíveis para os comerciantes a serem estudados, incluindo aqueles no domínio público, como uma média móvel ou um oscilador estocástico, bem como indicadores proprietários comercialmente disponíveis. Além disso, muitos comerciantes desenvolvem seus próprios indicadores únicos, às vezes com a ajuda de um programador qualificado. A maioria dos indicadores tem variáveis definidas pelo usuário que permitem que os comerciantes adaptem as entradas-chave, como o "período de retrocesso" (quanto tempo os dados históricos serão usados para formar os cálculos) para atender às suas necessidades.
A moving average, for example, is simply an average of a security's price over a particular period. O período de tempo é especificado no tipo de média móvel; por exemplo, uma média móvel de 50 dias. Esta média móvel será a média dos 50 dias anteriores da atividade de preços, usualmente usando o preço de fechamento da segurança em seu cálculo (embora outros pontos de preço, como o aberto, alto ou baixo, possam ser usados). O usuário define o comprimento da média móvel, bem como o preço que será usado no cálculo. (Para saber mais, consulte o nosso Tutorial de médias móveis.)
Uma estratégia é um conjunto de regras objetivas e absolutas que definem quando um comerciante agirá. Normalmente, as estratégias incluem filtros de comércio e gatilhos, ambos com base em indicadores. Os filtros comerciais identificam as condições de configuração; Os desencadeantes do comércio identificam exatamente quando uma determinada ação deve ser tomada. Um filtro de comércio, por exemplo, pode ser um preço que encerrou acima da média móvel de 200 dias. This sets the stage for the trade trigger, which is the actual condition that prompts the trader to act – AKA, the line in the sand. Um gatilho comercial pode ser quando o preço atinge um ponto acima da barra que violou a média móvel de 200 dias. Figure 2 shows a strategy utilizing a 20-period moving average with confirmation from the RSI. As entradas comerciais e as saídas são ilustradas com pequenas setas pretas.
Para ser claro, uma estratégia não é simplesmente "Comprar quando o preço se move acima da média móvel". Isso é muito evasivo e não fornece detalhes definitivos para agir. Aqui estão exemplos de algumas questões que precisam ser respondidas para criar uma estratégia objetiva:
What type of moving average will be used, including length and price point to be used in the calculation? Até que ponto acima da média móvel o preço precisa se mover? O comércio deve ser inserido assim que o preço se mover uma distância especificada acima da média móvel, ao fechar a barra ou ao abrir a barra seguinte? Que tipo de ordem será usada para colocar o comércio? Limite? Mercado? Quantos contratos ou ações serão negociados? Quais são as regras de gerenciamento de dinheiro? Quais são as regras de saída?
Todas essas questões devem ser respondidas para desenvolver um conjunto conciso de regras para formar uma estratégia.
Using Technical Indicators to Develop Strategies.
An indicator is not a trading strategy. An indicator can help traders identify market conditions; uma estratégia é um livro de regras do comerciante: como os indicadores são interpretados e aplicados para fazer suposições educadas sobre a futura atividade do mercado. Existem muitas categorias diferentes de ferramentas de negociação técnica, incluindo indicadores de tendência, volume, volatilidade e momentum. Often, traders will use multiple indicators to form a strategy, though different types of indicators are recommended when using more than one. Usando três indicadores diferentes do mesmo tipo - impulso, por exemplo - resulta na contagem múltipla da mesma informação, um termo estatístico denominado multicolinearidade. A multicolicinearidade deve ser evitada, pois produz resultados redundantes e pode fazer com que outras variáveis pareçam menos importantes. Em vez disso, os comerciantes devem selecionar indicadores de diferentes categorias, como um indicador de momentum e um indicador de tendência. Freqüentemente, um dos indicadores é usado para confirmação; isto é, para confirmar que outro indicador produz um sinal preciso. (Para saber mais, consulte Bases de Regressão para análise de negócios).
Uma estratégia de média móvel, por exemplo, pode empregar o uso de um indicador de momentum para confirmação de que o sinal de negociação é válido. Um indicador de impulso é o Índice de Força Relativa (RSI), que compara a variação média do preço dos períodos de avanço com a variação média do preço dos períodos em declínio. Como outros indicadores técnicos, o RSI possui entradas variáveis definidas pelo usuário, incluindo a determinação de quais níveis representarão condições de sobrecompra e sobrevenda. O RSI, portanto, pode ser usado para confirmar quaisquer sinais que a média móvel produza. Os sinais opostos podem indicar que o sinal é menos confiável e que o comércio deve ser evitado.
Cada indicador e combinação de indicadores requer pesquisa para determinar a aplicação mais adequada em relação ao estilo do comerciante e tolerância ao risco. Uma vantagem na quantificação das regras de negociação em uma estratégia é que permite que os comerciantes apliquem a estratégia aos dados históricos para avaliar como a estratégia teria realizado no passado, um processo conhecido como backtesting. Claro, isso não garante resultados futuros, mas certamente pode ajudar no desenvolvimento de uma estratégia comercial lucrativa. (Saiba mais sobre os benefícios e as desvantagens do backtesting. Leia Backtesting and Forward Testing: The Importance Of Correlation.)
Independentemente de quais indicadores são usados, uma estratégia deve identificar exatamente como os indicadores serão interpretados e precisamente quais as ações a serem tomadas. Os indicadores são ferramentas que os comerciantes usam para desenvolver estratégias; eles não criam sinais comerciais por conta própria. Qualquer ambiguidade pode levar a problemas.
Escolhendo indicadores para desenvolver uma estratégia.
O tipo de indicador que um comerciante usa para desenvolver uma estratégia depende do tipo de estratégia que ele ou ela pretende construir. Isso diz respeito ao estilo de negociação e à tolerância ao risco. Um comerciante que busca movimentos de longo prazo com grandes lucros pode se concentrar em uma estratégia de tendência e, portanto, utilizar um indicador de tendência, como uma média móvel. Um comerciante interessado em pequenos movimentos com pequenos ganhos freqüentes pode estar mais interessado em uma estratégia baseada na volatilidade. Again, different types of indicators may be used for confirmation. A Figura 2 mostra as quatro categorias básicas de indicadores técnicos com exemplos de cada um.
Os comerciantes têm a opção de comprar sistemas de negociação "caixa preta", que são estratégias proprietárias comercialmente disponíveis. An advantage to purchasing these black box systems is that all of the research and backtesting has theoretically been done for the trader; A desvantagem é que o usuário está "voando cego", pois a metodologia geralmente não é divulgada e, muitas vezes, o usuário não consegue fazer personalizações para refletir seu estilo de negociação. (Saiba como os sistemas de caixa preta funcionam com ETFs inteligentes em Sharpen Your Portfolio With Intelligent ETFs.)
Indicators alone do not make trading signals. Cada trader deve definir o método exato em que os indicadores serão utilizados para sinalizar oportunidades comerciais e para desenvolver estratégias. Os indicadores podem certamente ser usados sem ser incorporados em uma estratégia; no entanto, as estratégias técnicas de negociação geralmente incluem pelo menos um tipo de indicador. Identificar um conjunto absoluto de regras, como com uma estratégia, permite que os comerciantes façam backtest para determinar a viabilidade de uma estratégia específica. Também ajuda os comerciantes a entender a expectativa matemática das regras ou a forma como a estratégia deve atuar no futuro. Isso é fundamental para os comerciantes técnicos, pois ajuda os comerciantes a avaliar continuamente o desempenho da estratégia e pode ajudar a determinar se e quando é hora de fechar uma posição.
Traders freqüentemente falam sobre o Santo Graal - o único segredo comercial que levará à lucratividade instantânea. Infelizmente, não existe uma estratégia perfeita que garanta o sucesso de cada investidor. Cada comerciante tem um estilo único, temperamento, tolerância ao risco e personalidade. As such, it is up to each trader to learn about the variety of technical analysis tools that are available, research how they perform according to their individual needs and develop strategies based on the results. (Para mais, confira Survive The Trading Game.)
Using the Coppock Curve to Generate Stock Trade Signals.
The Coppock Curve (CC) was introduced by economist Edwin Coppock in Barron's, October 1962. While useful, the indicator isn't a commonly discussed amongst traders and investors. Traditionally used to spot long-term trend changes in major stock indexes, traders can use the indicator on any time and in any market to isolate potential trend shifts and generate trade signals. (For a primer on this and other oscillators, see "An Introduction to Oscillators.")
Coppock initially developed the indicator for long-term monthly charts; this will appeal to long-term investors as signals are quite infrequent on this time frame. Drop down to a weekly, daily or hourly time and the signals become progressively more abundant.
The indicator is derived by taking a weighted moving average of the rate-of-change (ROC) of a market index such as the S&P 500, or trading equivalent such as the S&P 500 SPDR ETF (ARCA:SPY). Simply put, it is a momentum indicator that oscillates above and below zero.
There are three variables within the indicator: the Short ROC Period and Long ROC Period are generally set at 11 and 14, respectively; the WMA (weighted moving average) is typically set at 10. The Period indicates how many price bars are used in the indicator's calculation. Coppock preferred monthly price bars, but traders can use any size price bars, including 1-minute, hourly, daily, and so on.
Coppock came up with 11 and 14 periods for the ROC part of the calculation after being told by Episcopal bishops that the average person's mourning period is 11 to 14 months. Coppock inferred a downtrend was like a mourning period, so he used these figures.
The Coppock Curve is calculated as a 10-month weighted moving average of the sum of the 14-month rate of change and the 11-month rate of change for the index.
For those mathematically inclined the formula is:
Coppock Curve = 10-period WMA of 14-period ROC + 11-perod ROC.
Where the ROC is:
ROC = [(Close - Close n periods ago) / (Close n periods ago)] * 100.
And where "n" is the number of periods used in the calculation--in this case, 11 and 14 (two separate ROC calculations).
The zero line of the Coppock Curve acts as a trade trigger; buy when the CC moves above zero and sell when the CC moves below zero. Investors can use the sell signal to close out their long positions and then re-initiate long positions when CC crosses back above zero. Traders who wish to be more active can close out longs and imitate short trades when the CC crosses below zero.
Figure 1 shows the basic strategy applied to a monthly chart of the S&P 500 index. A buy signal was generated in 1991 followed by sell signal in 2001. This would have allowed the investor to avoid much of the decline in the rest of 2001 and 2002. A buy signal was generated in 2003 with a signal to sell in 2008. The indicator would have again saved the investor from the rest of the decline in 2008 and early 2009. Another buy signal was generated in early 2018 and that position remains open until the CC moves below zero.
Figure 1. S&P 500 Monthly Chart with Coppock Curve.
In Figure 2 the strategy is applied to a daily chart of the S&P 500. Many more signals are generated, appealing to more active traders who wish to enter and exit on each price wave.
Figure 2. S&P 500 Daily Chart with Coppock Curve Signals.
While the typical indicator settings work well on monthly charts, they may not work as well on weekly or shorter time frames. In Figure 2 for example, entries and exits occur a bit too late in the move to extract much of a profit from the price waves and would result in losses on a number of trades.
Decreasing the rate-of-change variables will increase the speed of the fluctuations in the CC and increase the number of trade signals. Increasing the rate-of-change variable will the slow the fluctuations and produce fewer signals.
If you wish to receive earlier entry and exit signals, decrease the WMA. The number of trade signals may increase with this adjustment as well. To wait for more confirmation and receive later entry and exits signals, increase the WMA; this may also decrease the number of trade signals.
By decreasing the WMA to 6 (instead of 10), entries occur a bit earlier in the up moves, and exits (and potential short trades) occur a bit earlier in the down moves. In Figure 3, the vertical lines on the price portion of the chart reflect entires and exits based on typical settings (14,11,10), while the vertical lines on the Coppock Curve portion of the chart reflect entries and exits based on adjusted settings (14,11,6). The adjusted settings shift the entries and exits slightly to the left; such adjustments can have a large impact on profitability or losses.
The adjusted settings also created a new buy and sell signal in April 2018, which is not marked on the chart.
Figure 3. S&P 500 Daily Chart with Adjusted Coppock Curve Settings.
Active traders may wish to only take trade signals in the same direction as the dominant trend, as this is where most of the profits lie. On a longer-term chart, note the trending direction. If trading on a daily time frame, the longer-term chart would be a weekly. If the Coppock Curve is above zero on the weekly, only take long trades on the daily chart. Sell when a sell signal occurs, but don't take short trades because this would be against the dominant trend.
If the dominant trend is down, take only short trades on the shorter time frame. Exit short positions when a buy signals occurs, but don't establish a long position as this would be against the dominant downtrend.
Adjust the settings of the indicator on both time frames to create the number of trade signals you are comfortable with.
When price is moving in a choppy fashion, especially on smaller time frames, multiple signals can be generated resulting in numerous very short-term, and potentially unprofitable, trades. The indicator is best applied to trending markets, which is why establishing a dominant trend on a longer time frame can help filter some potentially poor trades on lower time frames.
The strategy does not include a stop loss to cap the risk on each trade, but traders are encouraged to implement their own stop loss to avoid excessive risk. When initiating a long position a stop can be placed below the recent swing low in price, and when initiating a short position a stop can be placed above a recent swing high in price.
The Coppock Curve is a momentum oscillator originally designed to point out shifts in the long-term trend of stock indexes. It does a good job of pointing out these trend changes on the monthly chart. Shorter-term traders can also use the indicator, and some adjustment to the settings may be required on these shorter time frames. Traders are encouraged to test out the strategy on their own markets and time frames, and make appropriate setting adjustments, before implementing the strategy in the live market.
Creating Signals with Meta Trader.
Meta Trader, the world’s best trading software, is well known for its superior indicators and auto traders. If you are looking to generate signals, you can use a mix of both to generate high quality signals for no cost.
Why create signals with Meta Trader?
There are a number of reasons why you should use Meta Trader to create signals for your trading:
1) Signals with Meta Trader are almost free.
With Meta Trader, you do not have to pay a signal provider to create signals for you. While you do need a connection provider that connects Meta Trader to your account with a binary broker, these providers cost only a fraction of what signal providers cost. While signal providers can charge you up to several hundred dollars each month, connection providers often come for a onetime payment of under $100.
2) You control your signals.
Often, signal providers leave you in the dark on how they create their signals. Therefore, you are at their whim: As long as your signal provider delivers high quality signals, you can make money. If your signal provider’s quality is declining, however, you will start losing money.
The tricky thing is that your signal provider’s quality will only be apparent in hindsight. This means, until you realize that you are trading bad signals, you will already have lost money with them.
With Meta Trader, on the other hand, you always know how your signals are created. Whether you are using a downloaded expert advisor or a program you have written yourself – the source file of the program tells you exactly how a signal is created. Therefore, you can easily judge the signals quality.
To know whether you can trust your signals, simply take a look into the source file and analyze the strategy of your signal creator. If you like it – great. If you do not like it, you can either adjust it or throw it out completely.
3) Meta Trader can create signals for every strategy.
With signal providers, you have to take what they give you. In terms of strategy that is usually not the most innovative of concepts. If you are looking for signals created by a more advanced trading strategy or if you want to create signals according to your own personalized strategy, signal providers cannot help you.
Meta Trader solves this problem. Meta Trader’s editor is easy to use and enables you to create any kind of signal you want. If you do not want to program your signals yourself, there is an active online community that provides programs for all kinds of strategies and purposes. There, you are sure find the ideal signal for you, too.
How to generate signals with Meta Trader.
In general you can generate signals with Meta Trader in two ways:
a) Create signals manually.
Meta Trader offers a large number of indicators you can draw right into your price chart. You can use these indicators to define a strategy and monitor the chart manually. For example, you can create a trading signal by using a crossover of two moving averages. Depending on the time frame of your chart, you should switch through the assets you are monitoring with every new period and determine whether a trading signal was generated. Of course, this way of creating signals requires some work and your constant attention.
b) Create signals using a program (expert advisor)
Meta Trader enables you to write programs called expert advisors that can handle a part or all of your trading. To save time and optimize the signal generation process, you can write a simple little program that alerts you as soon as an asset has created a trading signal. In these programs, you can use any indicator and any strategy you like to generate a signal. Often, the process of defining your strategy into clearly defined rules Meta Trader can follow also helps you to perfect your trading strategy.
Writing an expert advisor does not require a lot of programming skill and time, as Meta Trader’s editor is easy to use. Once you know what to do, you can write a signal program in 15 minutes or less. Later, you can turn your signal program into an auto trader by including a function that automatically executes a trade once a signal is created. Such an auto trader can further help you optimize your trading process and therefore make you more money.
Top 3 Choices.
Best Signals.
Binary Options Strategies.
Disclaimer: This website is independent of binary brokers featured on it. Antes de negociar com qualquer um dos corretores, os potenciais clientes devem assegurar que compreendam os riscos e verificam se o corretor está licenciado.
O site não oferece serviços de investimento ou recomendações pessoais aos clientes para negociar opções binárias. Information on BinaryOptionsStrategy should not be seen as a recommendation to trade binary options or a be considered as investment advice. BinaryOptionsStrategy is not licensed nor authorized to provide advice on investing and related matters. The potential client should not engage in any investment directly or indirectly in financial instruments unless (s)he knows and fully understands the risks involved for each of the financial instruments promoted in the website.
Caso o cliente potencial não compreenda os riscos envolvidos, ele / ela deve procurar aconselhamento ou consulta de um consultor independente. Se o cliente potencial ainda não entender os riscos envolvidos na negociação em quaisquer instrumentos financeiros, ele / ela não deve trocar em tudo. Os potenciais clientes sem conhecimento suficiente devem buscar conselhos individuais de uma fonte autorizada. In accordance with FTC guidelines, BinaryOptionsStrategy has financial relationships with some of the products and services mention on this website, and BinaryOptionsStrategy may be compensated if consumers choose to click these links in our content and ultimately sign up for them. A negociação de opções binárias comporta riscos significativos e existe a possibilidade de os potenciais clientes perderem todo o seu dinheiro investido.
Nós não recomendamos este corretor!
Trade with a different broker instead.
To get the best trading experience, we advise you to visit one of our most trusted brokers.
Comments
Post a Comment