Bom dia amigos,
Tenho um EA que efetua 1 ENTRADA por vez, seja comprado ou vendido. Pra isso antes da ENTRADA eu verifico se existe alguma ordem em aberto, dessa forma:
e na hora da compra só verifico se foi true ou false
Simples assim.
Em Ambiente de Tester funciona perfeitamente.
Mas ao colocar numa VPS e mandar rodar em conta real, ele está efetuando duas operações ao mesmo tempo, como se existisse dois EAs. Mas já me certifiquei que apenas o VPS tá rodando o EA, localmente eu até fechei meu MT5 para certificar-me que não está rodando local + VPS. Mesmo assim continua dobrando.
Se alguém puder me ajudar, agradeço muito. Obrigado.
Olá.
Eu faria assim como abaixo. Veja se funciona.
Ou verifique se por ser tão rápido você acaba comprando a mercado a primeira e segunda antes de ter um posição em aberto. Talvez criar um NotBefore entre uma compra e outra de alguns segundos para permitir estar posicionado.
bool SemPosicao() { if PositionSelect(_Symbol) == false // não existe ordem em aberto vai retornar true para SemPosição e permitir comprar e vender. { return(true); } else { return(false); } }
Olá.
Eu faria assim como abaixo. Veja se funciona.
Ou verifique se por ser tão rápido você acaba comprando a mercado a primeira e segunda antes de ter um posição em aberto. Talvez criar um NotBefore entre uma compra e outra de alguns segundos para permitir estar posicionado.
Ivan, pensei nisso, pode ser que esteja duplicando pelo tempo entre processar o EA e executar a primeira ordem. Vou testar com o NotBefore.
Obrigado Ivan :) Segunda lhe dou retorno se vai funcionar.
Bom dia amigos,
Tenho um EA que efetua 1 ENTRADA por vez, seja comprado ou vendido. Pra isso antes da ENTRADA eu verifico se existe alguma ordem em aberto, dessa forma:
e na hora da compra só verifico se foi true ou false
Simples assim.
Em Ambiente de Tester funciona perfeitamente.
Mas ao colocar numa VPS e mandar rodar em conta real, ele está efetuando duas operações ao mesmo tempo, como se existisse dois EAs. Mas já me certifiquei que apenas o VPS tá rodando o EA, localmente eu até fechei meu MT5 para certificar-me que não está rodando local + VPS. Mesmo assim continua dobrando.
Se alguém puder me ajudar, agradeço muito. Obrigado.
Olá.
Eu faria assim como abaixo. Veja se funciona.
Ou verifique se por ser tão rápido você acaba comprando a mercado a primeira e segunda antes de ter um posição em aberto. Talvez criar um NotBefore entre uma compra e outra de alguns segundos para permitir estar posicionado.
Sim! Crie uma variavel GLOBAL e use junto com a Compra e Venda, assim você já trava o EA para não abrir mais nada...
Depois, caso dê erro de Ordem, ou saia depois da operação, você zera essa variável, liberando o EA pra mais um novo trade.
;)
Você está operando uma conta Netting?
Flavio, estou operando somente em VPS e com 1 única conta da Corretora (Rico). Não sei o que seria operar em Netting.
Sim! Crie uma variavel GLOBAL e use junto com a Compra e Venda, assim você já trava o EA para não abrir mais nada...
Depois, caso dê erro de Ordem, ou saia depois da operação, você zera essa variável, liberando o EA pra mais um novo trade.
;)
Flávio, entendi, é exatamente esse o passo que estou testando agora. Vou ver como se comporta nas próximas entradas. Obrigado.
Flavio, estou operando somente em VPS e com 1 única conta da Corretora (Rico). Não sei o que seria operar em Netting.
- www.metatrader5.com
Flávio, entendi, é exatamente esse o passo que estou testando agora. Vou ver como se comporta nas próximas entradas. Obrigado.
Cara tenta fazer que nem ta aqui que n da esse problema.
https://www.mql5.com/pt/articles/481
So lembra de setar SetAsyncMode pra false e não true.
- www.mql5.com
Cara tenta fazer que nem ta aqui que n da esse problema.
https://www.mql5.com/pt/articles/481
So lembra de setar SetAsyncMode pra false e não true.
Ricardo, fantástico, vários códigos para eu estudar. Vou olhar. Mas já adianto que fiz algo simples que funcionou. Como meus Candles não são de 1 minuto, então para eu "barrar" a situação de duplicidade no mesmo candle, eu usei uma variável Global. Nela alimento a primeira entrada com o minuto da operação. Se ele tentar fazer uma segunda entrada onde seja == minuto da entrada anterior, ele não prossegue com a segunda entrada. Por fim quando fecha o candle eu zero o minuto e começa tudo de novo. Aparentemente funcionou :)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Bom dia amigos,
Tenho um EA que efetua 1 ENTRADA por vez, seja comprado ou vendido. Pra isso antes da ENTRADA eu verifico se existe alguma ordem em aberto, dessa forma:
e na hora da compra só verifico se foi true ou false
Simples assim.
Em Ambiente de Tester funciona perfeitamente.
Mas ao colocar numa VPS e mandar rodar em conta real, ele está efetuando duas operações ao mesmo tempo, como se existisse dois EAs. Mas já me certifiquei que apenas o VPS tá rodando o EA, localmente eu até fechei meu MT5 para certificar-me que não está rodando local + VPS. Mesmo assim continua dobrando.
Se alguém puder me ajudar, agradeço muito. Obrigado.