К основному контенту

Número mágico do gerador forex e


Número mágico automático - página 4.
Me fez pensar que seria útil documentar (de forma muito concisa):
1. Critérios para decidir implementar números mágicos.
2. Critérios para decidir usar a geração automática de números mágicos.
3. Critérios para decidir implementar uma camada de persistência.
4. Critérios para decidir sobre globals versus acesso a arquivos para persistência.
Breve, respostas inteiramente pessoais.
(2) depende de qualquer número de fatores, incluindo se o usuário quer poder controlar os números mágicos para que eles possam usá-los como uma forma de agrupar os resultados de diferentes estratégias.
(3) é algo que eu evitaria se pudesse, mas quase nunca posso (veja 'variáveis ​​externas e mudança de tempo?'). Seria bom se o MT4 forneceu ajuda para persistir e recuperar o estado de EAs. Mas não.
(4) leva a uma preferência pessoal bastante forte: não gosto de globais. Os usuários podem excluí-los; o armazenamento é limitado a números; e o formato de gvariables. dat é obscuro. Eu prefiro muito os arquivos que, como último recurso, se necessário, podem ser modificados usando um editor de texto.
- Eu só tenho 8 posts à esquerda antes de dar uma pausa por um tempo.
Vejo que você atingiu o número mágico. Pelo menos, estará quente onde você está.
Eu tenho trabalhado nesta idéia dentro e fora, e eu finalmente consegui fazer o que eu queria. Aqui está um gerador de números mágicos que leva o código ASCII do símbolo e o adiciona ao cronograma e um código personalizado para gerar um número mágico exclusivo do período, do símbolo e da EA. Se eu soubesse uma maneira para a EA ler seu próprio nome, eu usaria o ASCII do que em vez do código personalizado. Com essa fraqueza, acho que se ajusta aos critérios acima, porém - seria bom com um bloqueio do sistema, pois escolheria o mesmo número que escolheu anteriormente na reinicialização do sistema. A fraqueza que pude ver é que elegeria números mágicos duplicados se negociasse mais do que uma instância da mesma EA no mesmo período e símbolo.
Aqui está o que eu tenho:
para (int a = 0; a & lt; 6; a ++) // gire o símbolo () para uma string ASCII e adicione cada caractere ao MNSymbol.
MNSymbolCalc = ((MNSymbolCalc-64) * (MathPow (10, (a)))); // subtrair 64 b / c caracteres ASCII começam em 65, multiplicar resultado pela a-i potência para limpeza (desnecessário)
int MNEACode = 100000; // Tornar este número diferente para cada EA para evitar que dois tipos diferentes de EA escolham o mesmo número mágico.
JT, sim. problemas de duplicação são coisas de pesadelos;)
Como você e eu suspeitamos de muitos, a questão da singularidade é um tema recorrente constante que é atacado como e quando, mas de alguma forma nunca parece certo!
Meu código publicado anteriormente neste tópico foi substituído por abaixo, o que pode ser útil (se por nenhuma outra razão além de uma boa risada :).
*** Observe a corda do nome da EA disponível via chamada para o arquivo.
Nos esforços para se tornar multi-cc, há funções locais usadas. ou seja, ficou farto de codificar sempre o mesmo código de cabeçalho da função para verificar os valores reais vazios: ccy, per.
daí o meu uso de _Symbol () e _Period (). As considerações de velocidade / tamanho, mesmo no intérprete MT4, não valem apenas as energias para se preocupar.
De qualquer forma, talvez isso dê comida para o pensamento.
meu raciocínio para fazer abaixo [e doc'd em função] é:
Esta é uma maneira útil de garantir que, se uma EA pára em uma CCY, PER que ao voltar a executá-la mais tarde contra a mesma CCY, PER.
ele irá gerar giExpertId idêntico (aka, Magic #). Significa que pode continuar a gerir negócios em circulação no pool.
Outra EA nomeada pode ser executada no mesmo ambiente de gráfico sem medo de duplicar os valores.
Portanto, o OrderPools terá ingressos com um nó mágico específico da EA, permitindo o mapeamento por EA somente de bilhetes.
Seu comentário no & gt; 1 'mesmo nomeado' EA no mesmo ccy, por é de fato um problema. Eu finalmente decidi que HEY! fique real. Se eu cometeu esse erro, então eu mereço um chute na parte traseira por ser tão impensado, lol.
no final, como mostrado neste tópico, há zilhões de idéias / métodos, cada um com suas forças e fraquezas.
Tudo fica baixo para obter [pelo menos] um dado único sempre que uma EA é executada e que [para mim] é a questão kernal.
Eu nunca pensei muito sobre o choque EA / CT que levava a reiniciar e a lata de vermes a respeito de retirar o que parou. Isso é cuidada agora, desde que os autógenos de EA sejam EAid / magic # com dados exclusivos de seu ambiente de gráfico R / T. Gerará sempre o mesmo número.
oh bem, divirta-se!
Embora eu pessoalmente prefiro a configuração manual do número mágico, sua solução é bastante elegante. Bom código.
Uma correção - constantes de string têm um comprimento máximo de 255, as variáveis ​​de string podem ser muito maiores, veja - & gt; mql5 / pt / forum / 123551.
Graças a Gordon, o código parece funcionar ok, mas, no final, certamente não é prova de bala, se eu executar o mesmo EA no mesmo ambiente gráfico, então sim. A configuração manual do # mágico é o melhor método infalível - sem dúvida sobre isso!
Para mim, as cordas sempre foram uma dor na parte traseira. No entanto, a maioria das coisas é possível através da criação, de forma incremental, de um conjunto de ferramentas, cada uma utilizando funcionalidades de ferramentas de nível mais baixo.
Além disso, eu me lembro de irusoh1 dizendo / lembrando que "isso é", então, viva com ele. Bem, para mim, eu sempre me lembro desse primeiro parágrafo em seus conteúdos de postagem e sempre * na minha mente sempre que aponto para o MT onde solta vontade de viver :))
O MQL4 online / offline fala sobre tipos básicos de dados. O link de string em ambos vai para constantes de string e todos sabemos o que a página do doc diz. ou seja, 255 bytes.
Compreendo completamente o que você está dizendo ainda, o fio 29373 é, como é o tempo de execução do MQL4, as correntes de caracteres, inconclusivas e como jjc e sem dúvida que muitos outros experimentaram - um pouco duvidoso.
Não é possível localizar qualquer documentação para suportar a utilização total do formato da estrutura do 8byte, caso haja documentação para suportar cadeias de caracteres mais longas, seria de interesse.
De qualquer forma, no passado tive problemas insolúveis usando strings, então eu apenas prefiro ficar com o que os docs dizem e trabalham em torno dele - se necessário.
O MQL4 online / offline fala sobre tipos básicos de dados. O link de string em ambos vai para constantes de string e todos sabemos o que a página do doc diz. ou seja, 255 bytes.
Compreendo completamente o que você está dizendo ainda, o fio 29373 é, como é o tempo de execução do MQL4, as correntes de caracteres, inconclusivas e como jjc e sem dúvida que muitos outros experimentaram - um pouco duvidoso.
Não é possível localizar qualquer documentação para suportar a utilização total do formato da estrutura do 8byte, caso haja documentação para suportar cadeias de caracteres mais longas, seria de interesse.
De qualquer forma, no passado tive problemas insolúveis usando strings, então eu apenas prefiro ficar com o que os docs dizem e trabalham em torno dele - se necessário.
Aderir ao máximo de 255 é, obviamente, a solução segura, embora eu tenha um monte de código que ignore esse limite e nunca encontrei nenhum problema. Mas, novamente, esse código é principalmente não crítico.
Eu sei que a documentação é um pouco obscura sobre este assunto, mas se você tentar procurar os fóruns russos (com o Google translate) lembro-me de ler um comentário oficial de um dos moderadores que as variáveis ​​de string suportam mais de 255 bytes, mas eu posso ' Parece encontrá-lo agora. Bem, acho que "isso é" e temos que viver com ele :)
Não é possível localizar qualquer documentação para suportar a utilização total do formato da estrutura do 8byte, caso haja documentação para suportar cadeias de caracteres mais longas, seria de interesse.
De qualquer forma, no passado tive problemas insolúveis usando strings, então eu apenas prefiro ficar com o que os docs dizem e trabalham em torno dele - se necessário.
& quot; O comprimento de uma constante de string fica entre 0 e 255 caracteres. Se a constante de string for mais longa, os caracteres supérfluos à direita serão rejeitados e o compilador irá alertar de forma correspondente.
Sua representação interna é uma estrutura de 8 bytes. O primeiro elemento da estrutura é um inteiro longo que contém o tamanho do buffer distribuído para a linha. O segundo elemento da estrutura é o endereço de 32 pedidos do buffer que contém a linha. & quot;
Citado do dicionário MetaEditor Tipos de Dados - Constantes de Cadeia de Caracteres.
pessoal fascinante pessoal.
Eu sei que esse tópico é antigo, mas vejo que todos têm uma maneira própria de obter um "número mágico" ou o que quer que você queira chamar. Eu também vi alguém queria lá EA para poder ler seu próprio nome. Bem, isso é o que eu uso para obter o nome da minha EA.
Coloque isso no topo da EA:
#define EAName & quot; Coloque o nome EA aqui & quot;
Quando a verificação de encomendas abertas, coloque isso:
se (OrderType () & lt; = OP_SELL & amp; & amp; OrderSymbol () == Symbol () & amp; OrderComment () == EAName & amp; & amp; OrderMagicNumber () == MagicNumber)
Para quando o seu comércio é colocado, certifique-se de que ele o tenha feito para que ele coloque o EAName para um comentário como este:
Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, 0, 0, EAName, MagicNumber, 0, Blue);
Então, se você quiser um número mágico que você faria se você quiser executar o EA no mesmo par, mas TF diferentes ao mesmo tempo. use apenas o seguinte:

O que é e como definir o número mágico na EA?
O número mágico destina-se a ser usado para identificação comercial. A implementação varia.
É definido quando o comércio é aberto por um EA com o comando OrderSend ().
Você tem dois EA comercializando EURUSD.
Para permitir que cada EA reconheça negócios que "pertencem a ele" Defina um número mágico diferente (ID) com cada EA.
Eu estava claro? desculpe o pobre inglês.
"Mas, se eu tiver apenas um EA, dois gráficos EURUSD em prazos diferentes? Preciso mudar o número mágico? Qual número definir? Alguém? & Quot;
Existe um número mágico específico Se eu quiser que o EA gerencie o comércio aberto manualmente?
Você poderia usar o Comentário para trocas manuais idênticas e adicionar um teste para comentários específicos na EA.
Eu tenho cinco gráficos em uma plataforma para cinco diferentes moedas (um gráfico por moeda).
Eu aplico o mesmo EA para todos os cinco gráficos (mesmo EA para todas as cinco curvas).
Preciso mudar o número mágico da EA para cada gráfico (cada moeda)?
Existe um número mágico específico Se eu quiser que o EA gerencie o comércio aberto manualmente?
Você poderia usar o Comentário para trocas manuais idênticas e adicionar um teste para comentários específicos na EA.
Eu tenho cinco gráficos em uma plataforma para cinco diferentes moedas (um gráfico por moeda).
Eu aplico o mesmo EA para todos os cinco gráficos (mesmo EA para todas as cinco moedas).
Preciso mudar o número mágico da EA para cada gráfico (cada moeda)?
Eu tenho cinco gráficos em uma plataforma para cinco diferentes moedas (um gráfico por moeda).
Eu aplico o mesmo EA para todos os cinco gráficos (mesmo EA para todas as cinco moedas).
Preciso mudar o número mágico da EA para cada gráfico (cada moeda)?
A resposta curta é não. A resposta correta é - depende. Sua EA deve ser inteligente o suficiente para determinar em que medida ela está operando se houver alguma modificação ou exclusão de ordem. O número mágico é uma maneira de fazer isso, embora uma boa EA use outros métodos, como a verificação do par de moedas.
Você precisará determinar se o seu código é robusto o suficiente para operar sem uma mudança de número mágico - ou se ele mesmo usa ou não o número mágico.

Número mágico no MetaTrader.
O número mágico é um conceito Metatrader usado para rastrear as posições abertas de uma EA. O conceito permite que a Ea distinga os negócios que abriu versus aqueles que não fazia.
Cada carro usa uma placa de matrícula. Quando você detecta um carro em um estado diferente ou mesmo em um país diferente, você observa que todas as placas que você encontra são únicas. A aplicação da lei pode utitlize o número para determinar quem é dono do carro.
Os números mágicos funcionam como placas de licença para consultores especializados. Quando um consultor especialista detecta um comércio aberto, chamado de bilhete, repetidamente pede seu número mágico. Se o número mágico do bilhete é idêntico ao número que o consultor perito espera, então sabe administrar a posição.
Os números mágicos são úteis, especialmente quando você deseja trocar vários quadros temporais do mesmo par forex. Os comerciantes costumam usar configurações que diferem daqueles nos preços M1 versus aqueles que eles usariam no gráfico diário. Se utilizassem o consultor especialista com o mesmo número mágico em todos os intervalos de tempo diferentes, o resultado seria um caos. O consultor especialista abriria e fecharia posições sem rima ou motivo. Configurando cada consultor especialista para emply, um número mágico exclusivo não permite que os robôs interfiram com os outros.
Número mágico de factoids.
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 variando de 0 e 2147483647. A linguagem de programação MQL atribui esse último número EMPTY_VALUE e protege o nome como um valor inteiro.

Número mágico do gerador Forex ea
Digite sua estratégia de negociação e gere Expert Advisor para troca de moeda Forex. Crie Scripts para ajudá-lo a trocar. Professional Edition gera arquivos *.ex4 / *. Ex5 e código fonte *.mq4 / *. Mq5.
Uma vez que a maioria das estratégias de negociação Forex contêm elementos comuns: posições de abertura, posições de fechamento, paradas de trânsito, sinais, etc. o gerador cria Expert Advisor, Script ou Indicador personalizado com os componentes comuns para negociação de mercados Forex. Pressione o menu Gerar e seu EA, Script ou Indicador personalizado está pronto.
Teste suas idéias antes de contratar alguém para programar o Expert Advisor, Script ou o Indicador personalizado para você.
Gerador Forex.
Suporte total para o MetaTrader 4. Suporte experimental limitado do MetaTrader 5. Não é necessária nenhuma programação para a maioria das configurações. Crie tanto Expert Advisors (EA), Custom Indicators e Scripts de negociação. Configurar sinais de abertura de pedidos através de indicadores personalizados ou personalizados. Importe seus próprios ou personalizados indicadores de terceiros. Defina a execução da ordem: aproveite o lucro, pare a perda, a parada final, etc. Limite a abertura de novas encomendas a dias específicos da semana. Defina horas em que o Consultor Especial deve abrir novos pedidos. Limit Expert Advisor para trabalhar somente quando os spreads são menores do que o valor definido. Configure a segunda ordem com diferentes lucros, perda de parada, etc. Principalmente usado para cenários de negociação equilibrados. Opção para fechar pedidos se o sinal oposto tiver sido recebido. Martingale e gerenciamento de risco Semi-Martingale. Inclua seu próprio código personalizado no diagrama.
Atualizações gratuitas.
Se você conseguir a versão atual 6.x, todas as atualizações para qualquer versão 6.x próxima serão gratuitas.

Комментарии