Tenho muitos terminais e EAs funcionando no meu VPS, mas às vezes o SL+TP não é definido no pedido... Por quê?
24 respostas
Karish
8 anos atrás #114929
Tenho muitos terminais e EAs funcionando no meu VPS, mas às vezes o SL+TP não é definido no pedido... Por quê?
É por causa do atraso do meu VPS ou há algo errado com o código mql4? meu VPS está usando muito a CPU e a memória regularmente por causa dos muitos terminais e EAs em funcionamento,
talvez por causa disso...
é muito raro, mas já aconteceu comigo pela terceira vez...
Isso também aconteceu com alguém aqui? obrigado.
mikeyc
8 anos atrás #136043
O SL e o TP são muito pequenos (próximos ao preço de abertura da ordem)? Nesse caso, em um VPS sobrecarregado, no momento em que a modificação da ordem for recebida pelo corretor, o preço poderá estar abaixo ou acima do SL/TP.
Qual é o erro no registro do terminal?
Karish
8 anos atrás #136045
.
Karish
8 anos atrás #136078
O SL e o TP são muito pequenos (próximos ao preço de abertura da ordem)? Nesse caso, em um VPS sobrecarregado, no momento em que a modificação da ordem for recebida pelo corretor, o preço poderá estar abaixo ou acima do SL/TP.
Qual é o erro no registro do terminal?
*EDIT, encontrei o erro: "trade context is busy", depois que reduzi a cpu/ram do MT4s, continuo recebendo esse erro O_O, ordens sendo executadas sem a modificação do SL + TP, isso é a coisa mais insegura que existe..., o que devo fazer?, devo adicionar algo ao código do mql4?, ou devo adicionar mais CPU/RAM ao meu VPS? mas não consigo ver que é problema do VPS se a CPU/RAM estiver abaixo de 50%...
Por favor, ajude!
O principal aqui é que acho que esse é um problema de código do mql4, porque quando o contexto fica disponível após o erro, a ordem ainda não recebe nenhuma modificação e permanece nua sem SL + TP....
Talvez Mark possa responder a isso...?
Karish
8 anos atrás #136084
Será que só eu estou tendo esse problema?
É um erro de código do mql4 que, quando há um O erro "contexto de negociação está ocupado" e o SL+TP não foi modificado para a ordem, por que não há nova tentativa depois?
ou devo simplesmente trocar meu VPS?
RAM 2048 ÃÅ"B
2 x Xeon E5-2640 (1500 MHz)
SSD DE 30 GB
Windows Server 2008/2012 (64 bits)
por favor, comente o mais rápido possível...
mikeyc
8 anos atrás #136086
Quantos EAs você tem em execução nesse único terminal?
Acredito que haja 8 threads disponíveis para cada terminal para processar pedidos.
Karish
8 anos atrás #136087
2 MT4s em execução, um com 12 EAs, o segundo com 16, o de 16 apresenta esses problemas, o de 12 nem sequer uma vez..,
Você acha que é um problema do VPS?
Existe alguma maneira de aprimorar o código do mql4 para que, se não houver SL + TP definidos para uma ordem quando ela for executada e receber esse erro de "contexto ocupado", seja necessário tentar novamente e modificar a ordem novamente,
dessa forma, ele resolverá esse problema IMO...
mikeyc
8 anos atrás #136089
Há apenas um número limitado de threads (acho que são 8) por instância de terminal. Portanto, se você tiver 16 e mais da metade estiver tentando colocar ou modificar ordens na mesma abertura de barra, você possivelmente receberá um erro de contexto de negociação ocupado.
Enviei a Mark uma biblioteca MQL4 há muitos meses, chamada OrderReliable, que tem uma lógica muito melhor de tratamento de erros e de repetição, mas ela nunca chegou a ser incluída no modelo SQ EA.
Com qual corretor esse erro de contexto ocupado está ocorrendo?
Karish
8 anos atrás #136092
Obrigado por sua resposta, espero que isso seja corrigido no SQ4,
Estou usando o ActivTrades Live & Demo, no Demo há 16 janelas com EAs e os problemas só aparecem lá...
o Live em execução 12 janelas, mas nenhuma mensagem de erro.
O que você acha que eu deveria fazer...?
Karish
8 anos atrás #136093
Você poderia colar o código do tratamento de pedidos que mencionou, por favor?
cole-o aqui: http://paste.ofcode.org/
então copie o link da URL e cole-o aqui. Vou dar uma olhada, obrigado.
Karish
8 anos atrás #136095
Talvez eu tenha resolvido o problema definitivamente com a função "sqIsTradeAllowed",
não foi esquecido de ser colocado antes de modificar um pedido,
Atenção, Mark, se você vir isso...
Atualizarei esta postagem se o problema foi resolvido ou não em algumas horas, mas espero que tenha sido resolvido.
mikeyc
8 anos atrás #136098
A ActivTrades é um formador de mercado (eles operam contra você). Você ganha, eles perdem dinheiro, você perde dinheiro, eles ganham dinheiro. Agora, como eles controlam o spread e a execução, você consegue ver um conflito de interesses? A primeira dica é o contexto ocupado, ou seja, "achamos que você pode ganhar essa operação, isso nunca vai acontecer, meu velho".
Nunca vi um contexto ocupado com uma corretora ECN. No entanto, já vi o erro várias vezes com corretores formadores de mercado...
Algo para se pensar.
Patrick
8 anos atrás #136100
A ActivTrades é um formador de mercado (eles operam contra você). Você ganha, eles perdem dinheiro, você perde dinheiro, eles ganham dinheiro. Agora, como eles controlam o spread e a execução, você consegue ver um conflito de interesses? A primeira dica é o contexto ocupado, ou seja, "achamos que você pode ganhar essa operação, isso nunca vai acontecer, meu velho".
Nunca vi um contexto ocupado com uma corretora ECN. No entanto, já vi o erro várias vezes com corretores formadores de mercado...
Algo para se pensar.
Concordo, tive o mesmo problema com o MM, mas o ECN funciona bem
Karish
8 anos atrás #136101
A ActivTrades é um formador de mercado (eles operam contra você). Você ganha, eles perdem dinheiro, você perde dinheiro, eles ganham dinheiro. Agora, como eles controlam o spread e a execução, você consegue ver um conflito de interesses? A primeira dica é o contexto ocupado, ou seja, "achamos que você pode ganhar essa operação, isso nunca vai acontecer, meu velho".
Nunca vi um contexto ocupado com uma corretora ECN. No entanto, já vi o erro várias vezes com corretores formadores de mercado...
Algo para se pensar.
Concordo, tive o mesmo problema com o MM, mas o ECN funciona bem
Muito obrigado pelas informações, vou levar isso em consideração,
No entanto, fiz algumas modificações no lado do mql4,
Eu adicionei e editei a função "sqIsTradeAllowed" antes de qualquer OrderSend/OrderDelete/OrderModify/OrderClose/OrderCloseBy,
deve solucionar o problema; caso contrário, provavelmente é o corretor. Obrigado por suas informações, pessoal, agradeço muito 🙂
Patrick
8 anos atrás #136119
Acho que o mm broker recusa a ordem SL e TP, isso acontece quando você negocia manualmente com muita frequência.
mikeyc
8 anos atrás #136120
Se a modificação da ordem estiver falhando, deve haver algo no diário do MT4.
Veja um exemplo:
2016.04.01 09:13:54.325 '983257': modificação da ordem #115394117 comprar 0,12 GBPUSD a 1,43665 sl: 1,42594 tp: 0,00000 -> sl: 1,42595 tp: 0,00000 falhou [Erro comum]
2016.04.01 09:08:45.168 '983257': modificação da ordem #115394117 comprar 0,12 GBPUSD a 1,43665 sl: 1,42593 tp: 0,00000 -> sl: 1,42594 tp: 0,00000 falhou [Tempo limite da negociação]
etc.
A parte no final lhe dirá o porquê.