Forex expert advisor magic number
Número mágico no MetaTrader O número mágico é um conceito do Metatrader usado para rastrear as posições abertas de um EA. O conceito permite que o Ea diferencie os negócios que ele abriu versus aqueles que não o fizeram. Cada carro usa uma placa de licença. Quando você detecta um carro em um estado diferente ou até mesmo um país diferente, você observa que cada prato que você encontra é único. A polícia pode usar o número para determinar quem é dono do carro. Números mágicos funcionam como as placas para consultores especializados. Quando um consultor especialista detecta uma negociação aberta, chamada ticket, ele solicita repetidamente seu número mágico. Se o número mágico do ticket for idêntico ao número que o Expert Advisor espera, ele saberá gerenciar a posição. Números mágicos são úteis, especialmente quando você deseja negociar vários prazos do mesmo par forex. Os comerciantes costumam usar configurações diferentes daquelas dos preços M1 em relação àquelas que usariam no gráfico diário. Se eles usassem o consultor Especialista com o mesmo número mágico em todos os diferentes prazos, o resultado seria o caos. O consultor especialista abriria e fecharia posições sem rima ou razão. Definir cada consultor especialista para estabelecer um número mágico exclusivo não permite que os robôs interfiram com os outros. Factos do número mágico O número mágico de um comércio aberto manualmente é 0. O número que você usa para um número mágico deve ser um número que varia de 0 e 2147483647. A linguagem de programação MQL atribui esse último número EMPTYVALUE e protege o nome como um valor inteiro . OneStepRemoved é uma empresa especializada na programação de um consultor especialista para traders. Shaun Overton é o dono da empresa. Estratégias de negociação GRATUITAMENTE por e-mail Tradução Inglês () Deutsch Bahasa Melayu Portugus Espaol Cópia do copyright 2016 OneStepRemoved, Inc. Todos os Direitos Reservados. MetaTrader Número Mágico Um número mágico é usado para identificar uma negociação. Quando uma negociação é aberta por um Expert Advisor, um número mágico pode ser associado à negociação. OrderSend tem muitos parâmetros, um deles é chamado de mágica. Quando o Expert Advisor usa a função OrderSend para abrir um pedido, você define o parâmetro magic como um número exclusivo que pode ser usado posteriormente para identificar o comércio. Aqui está a definição real do OrderSend diretamente do arquivo de ajuda do MetaEditor: string symbol, int cmd, double volume, double price, double slippage, double stoploss, double takeprofit, string commentNULL, int magic 0, datetime expiration0, color arrowCRLRNONE) Color of a seta de abertura no gráfico. Se o parâmetro estiver ausente ou a seta de abertura do valor CLRNONE não estiver desenhada no gráfico. Nota: Veja o 8220magic08221 na definição da função. Isso significa que o parâmetro magic é opcional: não precisa ser definido. Além disso, quando não está definido, ele obtém o valor de 0. A propósito, as negociações abertas manualmente (não por um EA) sempre têm um valor mágico de 0. Isso é bom para saber quando você escreve o seu Expert Advisor. O Propósito de Identificar um Negócio com um Número Mágico O propósito principal de marcar seu comércio com um número Mágico é para que você possa administrar o negócio baseado nas circunstâncias sob as quais ele foi aberto. Por exemplo, suponha que você tenha esta situação: Você está executando 2 Expert Advisors: um em um gráfico de 1 hora EURUSD e outro em um gráfico de 15 minutos EURUSD. Um EA é um EA escalpelador e o outro é um EA que segue as tendências. Cada um desses EAs tem 1 negociação aberta. Você provavelmente vai querer gerenciar a saída desses negócios de forma diferente. Além do stoploss padrão e da saída do takeprofit, você pode querer executar um trailing-stop em um trade e um channel-stop no outro. Neste caso, não é suficiente identificar o comércio pelo seu par de moedas, uma vez que ambos os negócios são transações EURUSD. É aí que entra o número mágico. Se um número mágico único fosse usado quando esses negócios fossem abertos, agora ele pode ser usado para identificar o que a EA abriu o negócio. Por exemplo, o escalpelamento EA pode usar um número mágico de 100, e o EA de acompanhamento de tendências pode usar um número mágico de 200. Como obter o número mágico de um comércio aberto Há uma função MQL chamada OrderMagicNumber que obterá a mágica número de um comércio. Mas não fique muito animada, não é tão fácil assim. A função OrderMagicNumber deve ser executada em um loop de seleção de pedidos. A função MQL OrderSelect é usada para selecionar uma negociação. Depois de uma negociação ter sido selecionada, a função OrderMagicNumber é usada para obter o número mágico. Normalmente, a função MQL OrdersTotal é usada para percorrer todas as negociações abertas da conta. Aqui está um exemplo de código MQL: int totalOrdersTotal () int mymagic para (int pos0poslttotalpos) if (OrderSelect (pos, SELECTBYPOS) falso) continue mymagic OrderMagicNumber () (Don8217t se preocupe, este código get8217s é mais fácil de trabalhar depois de you8217ve fazer sobre milhares Aliás, essa mesma técnica é usada para obter praticamente qualquer informação sobre uma negociação: stop loss, takeprofit, open time, preço aberto, etc. (Além disso, o histórico de uma conta pode ser consultado da mesma maneira. todas as mesmas informações sobre negociações fechadas) Então agora que você pode obter um número mágico da trade8217s, você pode executar uma saída específica baseada no número mágico. Você pode fazer isso usando a lógica if-then básica: if mymagic é igual a 100 execute um trailing stop se mymagic for igual a 200 execute um canal stop Usando Magic Numbers no VTS No VTS, uma variável de entrada chamada MagicNumber é criada com cada sistema. A variável MagicNumber é definida e configurada no VTS Input Manager. e aparece na guia de entrada quando você inicia o EA, assim ele pode ser definido toda vez que o EA é executado. O valor padrão do parâmetro magic para todas as funções OrderSend no VTS é a variável MagicNumber. Note que a função OrderSend no VTS é chamada pela função ftsOpenOrder VTS fácil de usar. Portanto, quando você cria um EA simples no VTS que usa a função fnOpenOrder e usa os valores padrão, você terá um EA que abre negociações usando o número mágico que é mostrado na janela de entrada quando você inicia o EA. Veja este link para um exemplo da janela de entrada do EA e da janela do VTS Input Manager. Aqui está uma imagem do parâmetro magic na configuração da função VTS fnOpenOrder. Note, está na aba avançada: Magic Number Parameter on fnOpenOrder (OrderSened) Como você pode definir o parâmetro magic na função VTS fnOpenOrder para qualquer valor, não apenas a variável MagicNumber, a capacidade de utilizar um número mágico dentro do VTS é muito flexível. Você deve ter notado o parâmetro de comentário. O parâmetro de comentário do OrderSend é usado para adicionar um comentário de texto a uma negociação. (Nota: você tem que ter cuidado se quiser usar o valor do comentário para identificar um negócio porque o valor pode ser alterado pelo corretor. Na verdade, ele é alterado a qualquer momento em que o negócio é modificado). De qualquer forma, pode ser extremamente útil ver o número mágico de uma negociação na plataforma MetaTrader. Então, por padrão, o VTS define o nome do EA e o número mágico no parâmetro de comentário. Dessa forma, você pode ver visualmente como seus negócios foram abertos na plataforma MT. Aqui está uma imagem de uma negociação aberta na guia Trade: O nome do EA que abriu este comércio EURUSD é 8220system38221, e o número mágico é 123456. Aqui está uma imagem de uma negociação fechada na guia Histórico da Conta: Observe que o campo de comentário foi alterado pelo corretor: eles adicionaram o texto 8220tp8221. A propósito, se você não vê o campo Comment em sua plataforma MetaTrader, você pode clicar com o botão direito do mouse nas colunas e adicioná-lo. Como obter o Número Mágico de um Trade usando o VTS O fnGetOrderInfo gera todo o código MQL para o loop de seleção de pedidos e retorna o valor solicitado. Número Mágico Obrigado por seus esforços NewDigital, Eu estou familiarizado com ambos os threads, no entanto, nenhum deles parece responda minha pergunta completamente, talvez eu não tenha sido claro o suficiente. Eu sei o que o MagicNumber faz: ajuda um EA a identificar qual o trade que pertence a ele. Eu não sei quando um MagicNumber é necessário. É necessário quando. . vários EAs estão conectados em um terminal. Existem vários EAs para um par. Dois ou mais EAs usam o mesmo período de tempo. Qualquer combinação do acima Estou sempre tentando usar números mágicos diferentes para qualquer caso que você descreveu. Às vezes os codificadores dizem: use o mesmo número mágico com o meu EA. Se o codificador não disser assim, eu usarei o número mágico dffrent para qualquer combinação EA / par / timeframe. - Codersguu disse que seu MaChannel (seção de elite) pode ser usado com o mesmo número mágico se negociado em uma cópia do Metatrader em poucos gráficos, mas para o MaChannel apenas no Metatrader - davidke20 disse o mesmo sobre seu 10p3v0.03 (EA público) - project1972 disse o mesmo sobre seus EAs Alpha e Electra (seção de elite). Todos esses casos tratam de testar apenas um EA com muitos gráficos. Eu entendo o número mágico como proteção pessoal: se eu usar um número mágico diferente para qualquer caso, tenho certeza de que a EA saberá exatamente qual ordem deve ser modificada ou fechada, por exemplo. Como suspender outros EAs quando um está sendo executado na mesma conta Digamos que eu queira maximizar meu tempo de capital na mesma conta tendo mais de um EA anexado, mas não quero mais do que um para ser executado, o que pode explodir minha conta Existe uma maneira de fazer isso. Caso contrário, a conta está apenas esperando, esperando que apenas um sinal EA ocorra. Uma vez que a EA tenha terminado sua execução (tendo ganho ou stop loss), todos os EAs escalpeladores anexados: Digamos que eu queira maximizar meu tempo de capital na mesma conta tendo mais de um EA anexado, mas não quero mais que um para executar explodir minha conta, existe uma maneira de fazer isso? Caso contrário, a conta está apenas sentada lá, esperando que apenas um sinal EA ocorra. Uma vez que a EA tenha terminado sua execução (tendo ganho ou stop loss), todos os EAs conectados uma maneira simples de fazer isso é dar a todos os especialistas o mesmo número mágico. em seguida, verifique os comércios abertos NÃO pela moeda, mas com o número mágico por isso, se houver um comércio aberto não abrir um novo comércio até que um próximo. adicione esse código a todos os especialistas a funciton para verificar os negócios abertos Simples e funciona MiniMe: uma maneira simples de fazer isso é dar a todos os especialistas o mesmo número mágico. em seguida, verifique os comércios abertos NÃO pela moeda, mas com o número mágico por isso, se houver um comércio aberto não abrir um novo comércio até que um próximo. adicionar esse código a todos os especialistas uma função para verificar os negócios abertos Simples e funciona Como verificar os comércios abertos não pela moeda, mas com o número mágico por isso, se houver um comércio aberto não abrir um novo comércio até que um próximo. adicionar esse código a todos os especialistas uma função para verificar as negociações abertas O que esse código parece
Comments
Post a Comment