![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Está me faltando algo aqui. Se eu abrir dois gráficos para, por exemplo, USDJPY H1, e adicionar uma instância da EA a cada um deles, então ambos usam o número mágico 9999033.
Sim, essa opção não foi incorporada porque eu nunca tive qualquer utilidade para ela. Somente a possibilidade de distinguir dois gráficos indenéticos (que eu posso ver) seria o hash no manípulo da janela...
mas então você perderia a persistência sobre o reinício e o fechamento do gráfico, e portanto as ordens órfãs poderiam ou serão criadas como resultado.
Então o terminal MT é um 'container' - com um único hWnd para <a coisa toda>?
Sim. É uma aplicação MDI bastante típica. Há uma janela de nível superior que contém coisas como barras de ferramentas, painéis e a área do cliente MDI. Esta última contém então cada gráfico, e cada gráfico na verdade consiste de duas janelas: um recipiente com a área de desenho dentro dele. Cada uma destas coisas tem seu próprio cabo hWnd. A função WindowHandle() retorna a alça da área de desenho e, portanto, usando a chamada API GetParent() três vezes, obtém-se o hWnd da janela MT4 de nível superior.
fwiw, eu uso abaixo e nunca tive duplicatas. O mesmo EA em até 10 gráficos [de qualquer tipo].
Eu não tenho resposta para o massivamente exagerado número de atuadores de lixo entregue à função de hash. Eu apenas empurrei em tudo, inclusive na pia da cozinha. Ou seja, não sou uma pessoa de matemática..., apenas martelo 'n' arrancado até nunca ter repetições - mesmo na inicialização do terminal com 10 cartas de perfil, todas do mesmo EA...
Obviamente, eu estaria interessado em ter um método melhor e mais descritível/lógico... então comece a rasgá-lo em pedaços :O)
fwiw, eu uso abaixo e nunca tive duplicatas. O mesmo EA em até 10 gráficos [de qualquer tipo].
Eu não tenho resposta para o massivamente exagerado número de atuadores de lixo entregue à função de hash. Eu apenas empurrei em tudo, inclusive na pia da cozinha. Ou seja, não sou uma pessoa de matemática..., apenas martelo 'n' arrancado até nunca ter repetições - mesmo na inicialização do terminal com 10 cartas de perfil, todas do mesmo EA...
Obviamente, eu estaria interessado em ter um método melhor e mais descritível/lógico... então comece a rasgá-lo em pedaços :O)
Eu gosto disso. Particularmente o bom velho haxixe djb2.
Muito impressionantes calças de couro :)
Os recipientes MDI me levam de volta <sigh>
Eu ainda digo que, IMHO, Números Mágicos são muito importantes para serem aplicados de forma aleatória!
Tenho certeza que a CB confirmaria que a recuperação previsível no reinício é um elemento extremamente importante em um sistema robusto...
FWIW
-BB-
Com este código uma EA é capaz de reconhecer suas próprias ordens se a plataforma for desativada. Ele usa Variáveis Globais, portanto, se você quiser tornar o EA "inmune" ao desligamento do PC, ele poderá ser reescrito para usar arquivos em vez de Variáveis Globais. Anexei também um exemplo que abre uma posição apenas na hora do init e a fecha na próxima barra, você pode carregar o especialista em 1M de tempo, fechar o metatrader e depois abri-lo novamente, basta esperar a próxima barra para ver como a EA fecha seu pedido. Não foi provado com vários gráficos nem enganado com várias ordens, mas o que você pensa sobre isso?
Eu gosto disso. Particularmente o bom velho haxixe djb2.
obrigado - mas eu realmente me sinto um pouco descuidado com uma codificação tão desinformada no makeexpertid...
Ainda é cedo, mas talvez alguém consiga detectar a(s) falha(s)... se eles estiverem presentes
Muito impressionantes calças de couro :)
Os recipientes MDI me levam de volta <sigh>
Eu ainda digo que, IMHO, Números Mágicos são muito importantes para serem aplicados de forma aleatória!
Tenho certeza que a CB confirmaria que a recuperação previsível no reinício é um elemento extremamente importante em um sistema robusto...
FWIW
-BB-
Eu ainda digo que, IMHO, Números Mágicos são muito importantes para serem aplicados de forma aleatória!
com certeza BB, vip datums. Eu gastei muito tempo tentando descobrir um dado único que várias instâncias de um EA poderiam usar. Este dado tinha que ser repetível, de modo que todos os arquivos abertos pudessem ser mapeados na recuperação/reinício. Eu queria permitir a possibilidade de qualquer número de instâncias do mesmo gráfico ccy+per EA para "como" abrir um nome de arquivo único e, ao reiniciar, reabrir magicamente...
Os dados da janela podem ser aquele 'fator X' ?
com certeza BB, vip datums. Passei muito tempo tentando descobrir um dado único que várias instâncias de um EA poderiam utilizar. Este dado tinha que ser repetível, de modo que todos os arquivos abertos pudessem ser mapeados na recuperação/reinício. Eu queria permitir a possibilidade de qualquer número de instâncias do mesmo gráfico ccy+per EA para "como" abrir um nome de arquivo único e, ao reiniciar, reabrir magicamente...
Não consigo ver como isso é possível sem o MT4 ou sem que o usuário atribua uma identificação a cada EA. Ou, mais precisamente, não consigo ver nada que não envolva algo muito desagradável, como gerar uma ID única e depois modificar o arquivo .chr da EA para armazenar a ID como parte dos parâmetros externos da EA.
E, para entretenimento geral, o seguinte não adianta de forma alguma a discussão, mas substitui a entrada para o hash djb2 por um valor que é garantido como único (ao custo de requerer chamadas DLL). Não sei como o djb2 deve ser bom em coisas como GUIDs, mas acabei de tentar gerar 1.000.000 de IDs sem nenhuma colisão. Mas ainda não resolve o problema do reinício.
Os dados da janela podem ser aquele 'fator X' ?
Se você não estivesse fechando parcialmente nenhum pedido, você poderia usar o comentário do pedido para armazenar as informações sobre o par/tempo de origem...?
Assim, o EA, ao reiniciar, poderia funcionar se tivesse algum pedido anterior e que número mágico ele deveria estar usando?
NB
Mantenha os comentários em < 25 e verifique na ESQUERDA (OrderComments(), 24) senão o material [sl] ou [tp] pode afetar as coisas
Supõe que <todos os históricos> estão disponíveis na guia Histórico de contas!
FWIW
-BB-