![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
Tenho um problema maior agora, meu corretor tende a executar parcialmente as ordens.
Prezado cliente,
Informamos que seu comércio foi aberto parcialmente (2,32 lotes em 15,84) ao preço de 587.318.
Caso você tenha alguma dúvida adicional sobre este assunto, não hesite em nos contatar.
Cordiais cumprimentos,
Corretor.
aqui está o que diz o apoio:
Favor ser avisado, durante períodos de alta volatilidade ou baixa liquidez, Ordens Limitadas podem ser parcialmente executadas. Isto significa que a posição será preenchida imediatamente, total ou parcialmente, se o preço for cumprido. No caso de sua ordem ter sido executada parcialmente, é por isso que você recebeu uma carta de notificação.
Eu entendo como fechar todas as ordens apesar de serem fechadas parcialmente, eu só tenho que fechar todas as ordens enquanto OrdensTotal() > 0, mas ainda não sei o que fazer quando as ordens abrem parcialmente.
editar:
Acabei de perceber que tenho que verificar os pedidos com símbolos e números mágicos adequados, é um pouco mais difícil
editar: aqui está a função fechar todas as ordens que devem fechar as ordens mesmo com fechamento parcial
reescrito
reescrito
Uau!
Isso é um pouco complicado para mim, eu já li isso umas 4 ou 5 vezes antes de consegui-lo. Obrigado!
e... o que acontece se a OrderSelect retorna falsa?
Com que freqüência a OrderSelect retorna falsa? É mesmo possível?
Uau!
Isso é um pouco complicado para mim, eu já li isso umas 4 ou 5 vezes antes de consegui-lo. Obrigado!
e... o que acontece se a OrderSelect retorna falsa?
Com que freqüência a OrderSelect retorna falsa? É mesmo possível?
i= 0
volta do loop
i = -1
if(OrderSelect(-1,SELECT_BY_POS,MODE_TRADES)===falso) break; // ==> terminar a verificação de negócios nós quebramos o loop
próximo CloseOrder()
o que os commonerrors podem ser devolvidos pela GetLastError()
se o fechamento falhar, pode ser que o próximo falhe também por um erro como um contexto comercial muito ocupado ou outro erro...
então o que você pode fazer para evitar muitas destas situações ??
então o que você pode fazer para evitar muitas destas situações ??
ainda não sei. Tenho que pensar sobre isso.
Estou preso a outro problema neste momento.
Coloquei meu EA em um VPS Windows 2003 e agora ele está retornando com erro de "timeout", mas nunca vi tal erro em meu PC de casa.
E o erro aparece não no momento em que eu fecho e abro os ciclos de pedidos, mas quando o perito verifica a travessia e fica ocioso.
Quero dizer, o programa verifica a abertura de uma nova barra, trailingstop = 0 para que nenhuma chamada de função trailing stop, então se a nova barra for aberta, verifica a travessia EMA, não há travessia (as vezes em que recebi erros de timeout as linhas EMA estavam longe de atravessar), então o programa retorna(0)
Não há ciclos! Como pode ser encerrado com um timeout?
ainda não sei. Tenho que pensar sobre isso.
Estou preso a outro problema neste momento.
Coloquei meu EA em um VPS Windows 2003 e agora ele está retornando com erro de "timeout", mas nunca vi tal erro em meu PC de casa.
E o erro aparece não no momento em que eu fecho e abro os ciclos de pedidos, mas quando o perito verifica a travessia e fica ocioso.
Quero dizer, o programa verifica a abertura de uma nova barra, trailingstop = 0 para que nenhuma chamada de função trailing stop, então se a nova barra for aberta, verifica a travessia EMA, não há travessia (as vezes em que recebi erros de timeout as linhas EMA estavam longe de atravessar), então o programa retorna(0)
Não há ciclos! Como pode ser encerrado com um timeout?
isto não é um ciclo ??
isto não é um ciclo ??
Quero dizer, durante o tempo em que a EA terminou as linhas EMA estavam longe de cruzar, então uma função NewOrder não foi chamada, então o ciclo de que você está falando (que está dentro da função NewOrder) não foi executado.
adicionado Condição IsStopped