Friday 4 August 2017

Forex Magic Number System


MetaTrader 4 - Exemplos MagicNumber: quotMagicquot Identificador da Ordem 1. Preâmbulo Em 3, o gerenciamento de posições abertas foi bastante demorado. Os comerciantes tinham à sua disposição uma ferramenta bastante limitada para trabalhar com a lista de posições abertas e fechadas. O problema de distinguir entre posições próprias e outras foi resolvido de maneiras bastante complicadas. Em 4, a situação mudou cardinalmente. Agora, o comerciante pode usar uma grande variedade de funções e gerenciar completamente todas as posições abertas e encomendar ordens e obter acesso a informações sobre quaisquer posições fechadas. Um parâmetro especial chamado MagicNumber foi adicionado para identificar pedidos. Este é o parâmetro com o qual nosso artigo tratará. 2. O que é MagicNumber int OrderSend (símbolo de seqüência de caracteres, int cmd, duplo volume, preço duplo, deslizamento int, double stoploss, double takeprofit, string commentNULL, int magic0. Datetime expiration0, color arrowcolorCLRNONE) magic - Order magic number. Pode ser usado como identificador definido pelo usuário, isto é, Quando uma ordem está sendo colocada (uma posição está sendo aberta), pode-se atribuir um número exclusivo a ela. Esse número será, portanto, usado para distinguir a ordem acima dos outros. Não há nenhum uso (ou mesmo possibilidade) aplicando esse recurso ao negociar manualmente, mas é realmente inexplicável ao negociar usando um especialista (negociação automatizada). Exemplo 1: um comerciante humano e um especialista estão negociando no terminal do cliente ao mesmo tempo. Tarefa: o especialista deve negociar de acordo com seu algoritmo e pode não fazer nada com as posições abertas manualmente. Solução: o especialista deve atribuir um MagicNumber único e não-zero à posição a ser aberta. No futuro, ele deve gerenciar apenas posições, cujo MagicNumber é igual ao pré-definido. Exemplo 2: Dois especialistas com diferentes algoritmos estão negociando no terminal do cliente ao mesmo tempo. Tarefa: o especialista deve gerenciar apenas suas ordens. Solução: cada especialista deve usar seu MagicNumber exclusivo não-zero ao abrir posições. No futuro, eles devem gerenciar apenas posições, cujo MagicNumber é igual ao predefinido. Exemplo 3: Vários especialistas, um comerciante humano e um especialista de assistência que percebem um Trailing Stop não padrão estão operando no terminal do cliente simultaneamente. Tarefa: os especialistas em negociação devem funcionar de acordo com seus algoritmos e podem não fazer nada com as posições abertas manualmente. O especialista assistente que realiza o Trailing Stop pode modificar apenas as posições abertas manualmente, mas não as abertas por outros especialistas. Solução: os especialistas em negociação devem usar MagicNumbers únicos e gerenciar apenas suas posições. O especialista assistente deve modificar apenas as posições com o MagicNumber igual a 0. Todos os três exemplos são bastante realistas, e os usuários provavelmente poderiam ter definido esses problemas para si mesmos. Em todos os três casos, o MagicNumber é usado para resolvê-lo. Desta forma, não é o único, mas o mais fácil. 3. Realização Agora, deixe-nos resolver a tarefa específica: crie um especialista que possa trabalhar apenas com suas próprias posições sem prestar atenção às posições abertas manualmente ou por outros especialistas. Digamos primeiro um especialista simples, para o qual o sinal para abrir uma posição será quando o indicador MACD atender a linha zero. O especialista ficará assim: vamos anexá-lo ao gráfico e ver como ele funciona: tudo está bem, mas há um problema aqui. Se abrimos um cargo durante a operação de especialistas, ele considerará essa posição como própria e atuará em conformidade. Isso não é o que queremos. Vamos modificar o nosso especialista de forma a gerenciar apenas suas próprias posições: adicione a variável externa denominada ExpertID para ser usada para alterar os valores do MagicNumber para as posições abertas pelo especialista. Após a seleção da função OrderSelect () Adicione verificar se o MagicNumber da ordem selecionada está em conformidade com a da variável ExpertID. Vamos escrever o valor do ExpertID em vez de 0 no campo MagicNumber durante a abertura da posição Considerando as alterações acima, o código aparecerá da seguinte maneira: Agora, quando O especialista está trabalhando, o usuário pode abrir posições manualmente. O especialista não os tocará. 4. Múltiplos especialistas idênticos em gráficos diferentes de um símbolo Existem casos em que o mesmo EA deve negociar nos gráficos do mesmo símbolo, mas com diferentes prazos, por exemplo. Se tentarmos unir nosso especialista ao gráfico EURUSD, H1 e ao EURUSD, M30, simultaneamente, eles interferirão mutuamente: cada um considerará a posição aberta para ser sua posição e modificá-la a seu critério. Esse problema pode ser resolvido ao atribuir outro ID do Especialista ao outro especialista. Mas isso não é muito conveniente. Se houver muitos especialistas usados, pode-se ficar enredado entre seus IDs. Podemos encontrar este problema usando o período do gráfico como MagicNumber. Como devemos fazê-lo Se acabarmos de adicionar o período do gráfico ao ExpertID, é possível que 2 especialistas diferentes em 2 gráficos diferentes gerem o mesmo MagicNumber. Então, vamos multiplicar o ExpertID em 10 e colocar o período do gráfico (seu código de 1 a 9, para ser exato) no final. Isso parecerá algo assim: agora adicione este código à função init () dos especialistas e substitua o ID do Expert por um MagicNumber em todos os lugares. A versão final da EA parece assim: nessa aparência, o especialista pode ser usado em vários gráficos com diferentes períodos. O valor da variável ExpertID será apenas alterado se houver necessidade de iniciar dois especialistas em gráficos do mesmo símbolo e período (por exemplo, EURUSD H1 e EURUSD H4), mas isso acontece extremamente raramente. Da mesma forma, usando o código acima, o usuário pode melhorar suas EAs e ensinar-lhes a distinguir suas posições dos estrangeiros. Aviso: todos os direitos sobre esses materiais são reservados pela MQL5 Ltd. É proibida a cópia ou reimpressão desses materiais, no todo ou em parte. Sobre esses números mágicos famosos basicamente é apenas um número de SEGUIMENTO. A maioria dos EAs permitem que você insira seu próprio número para que você possa controlar quais negociações controla EA. Quando você adiciona a EA ao gráfico, você deve mostrar uma lista de Entradas - Normalmente, uma das Entradas é chamada de quotMagic Numberquot - basta torná-lo o mesmo para ambas as EAs - Se o programador original não adicionou esta entrada, basicamente fora de sorte. (O código original teria que ser editado para adicionar a capacidade) Eu vejo. Não há nada tão explícito quanto o quotMagic Numberquot, mas, para o Whot de True MA Crossquot EA, há uma chamada de slot ExpertID, poderia ser que eu juntei ambos EA nesta postagem no caso de você ter curiosidade e quer ver se eu realmente estou fora de sorte.

No comments:

Post a Comment