[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 322

 
Se a EA não foi originalmente projetada como uma EA com várias moedas, você provavelmente tem um magik e um filtro de símbolos. Permitir apenas um pedido por EA.
 
yosuf:
Obrigado, outra pergunta por favor: a EA está funcionando em 29 instrumentos simultaneamente, ou seja, em 29 terminais correspondentes em uma conta comum. Preciso ter certeza de que o número total de posições abertas nunca exceda 30. Eu havia colocado tal limite à EA e pensei que ela estaria contando pelo número mágico total, mas não o fez, ainda assim colocou mais de 30 ordens. Parece que eu dei uma instrução errada e a EA a tomou como 30 ordens por símbolo. O que devo fazer? Ainda estou acompanhando-o visualmente.

Como dizemos em Odessa, há duas grandes diferenças entre 29 símbolos em um terminal e 29 terminais com um símbolo em cada um. Eu não sei sobre você :)
 
A diferença é a multiplicidade de fios (capacidade de abrir vários pedidos simultaneamente) o resto é negócio como sempre
 
FAQ:
A diferença está em vários fios (capacidade de abrir várias ordens simultaneamente) o resto é o mesmo que o habitual

... e - a causa do problema do autor da pergunta.
 
Yusuf, faça o mesmo em um terminal abrindo 29 janelas de ferramentas. Quando começar a funcionar adequadamente, torne a arquitetura mais complexa, se necessário.
 
FAQ:
A diferença está nos fluxos múltiplos (a capacidade de abrir várias ordens simultaneamente) o resto é como de costume

Se estabelecermos uma ordem de cada vez, os instrumentos "rápidos", que poderiam abrir ordens mais vezes, perderiam essa oportunidade. Além disso, 8 outros instrumentos estão agora esperando por um momento oportuno e agora que deveriam ser abertos, eu tive que fechar urgentemente 10 ordens positivas extras:


 
Então, é preciso mudar a lógica. Para começar, remova o filtro de caracteres.
 

Agora vou perguntar e o fio voltará ao seu lugar original!

Eis uma pergunta: às vezes recebo o erro comum(2) quando uma posição é fechada por Stop Loss e a EA tenta fechá-la por Close. A função permite 3 tentativas de fechar a posição, portanto tenta até 3 vezes e recebe o ticket Inválido(4108) duas vezes. Como faço para que pare de tentar? O bilhete não foi aberto entre outras ordens e não há nenhuma outra posição, mas ainda assim obtemos o mesmo resultado.

E essas tentativas são enviadas para DC ou não? Talvez, ele permaneça apenas no terminal e eu não me incomode em DC por nada? Obrigado desde já pelo esclarecimento!

 

borilunad:

Eis uma pergunta: Às vezes acontece na Real que ERR_COMMON_ERROR sai, quando uma posição é fechada por Stop Loss e o Expert Advisor tenta fechá-la por Close, e como a função prevê 3 tentativas de fechá-la, ele tenta até 3 vezes. Como posso impedi-lo de tentar?

Execute OrderSelect e verifique OrderCloseTime antes de tentar fechar. Se já for superior a 0, o pedido é fechado.

 
sergeev:

antes de tentar fechar, executar OrderSelect e verificar OrderCloseTime. Se já for maior que 0, o pedido é fechado.


Eu tenho Select, e onde devo colocar OrderCloseTime? Após selecionar ou na função CloseOrder()?

Procurado em Doc. Não tenho Seleção de História, apenas Trad. Portanto, vou tentar colocar este Histórico Selecione após a condição de fechamento e antes de CloseOrder(). Obrigado!