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
Olá especialistas, qual é a sua opinião sobre esta solução?
Olá especialistas, qual é a sua opinião sobre esta solução?
É claro. Isto é tudo muito próximo.
Às vezes há situações (por exemplo, você quer fechar imediatamente muitas transações abertas) quando a versão "original" não funciona. Esta versão é boa para isso.
É claro. Isto é tudo muito próximo.
Às vezes, há situações (por exemplo, você quer fechar imediatamente muitos negócios abertos demais) quando a versão "original" não funciona. Esta versão é boa para isso.
Hi,
Tenho uma pergunta sobre os loops. Quero executar a EA atual em um loop o mais freqüente possível. Portanto, meu pensamento é colocar o código atual dentro de um loop while com uma função de sono incluída dentro que faz com que o while execute apenas a cada 1 milissegundo.
Entretanto, quando fiz isto, (tenho algumas chamadas de função Print("...") colocadas em que se mantém um registro do que está acontecendo em cada loop), eu vejo este congelamento, e não mais impressões na tela.
Estou me perguntando qual poderia ser o problema. É correto executar o EA em um loop com a mesma freqüência de 1ms? Haveria algum problema em tentar obter o último lance/pesquisa, por exemplo, do servidor a cada milissegundo? Isso colocaria muita carga lá, causando o congelamento?
Possivelmente algo mais que meu algoritmo está fazendo está causando isto, não tenho certeza.
Eu o executei em ciclos de 200ms e ainda tenho o mesmo problema (embora não tão imediato). Poderia haver um problema com a impressão de demasiadas linhas no arquivo de registro?
obrigado por qualquer conselho sobre isto.
cumprimentos,
C.
14967057:
Eu tenho uma pergunta sobre os loops. Quero executar a EA atual em um loop o mais freqüente possível.
Então, meu pensamento é colocar o código atual dentro de um loop while com uma função sleep incluída dentro que faz com que o while execute apenas a cada 1 milissegundo.
Haveria um problema em tentar obter a última oferta/venda.
Haveria um problema com a impressão de demasiadas linhas no arquivo de registro?
Hi,
Acontece que o problema que eu tinha não era devido a encapsular meu código EA dentro de um loop de 1ms com um sono de 1ms. Esta parte parece boa (independentemente de onde eu imprima ou não para a tela), pois tenho-o funcionando agora durante a última meia hora sem falhas.
O problema se deveu a outra parte que eu tinha no código, o que acabou fazendo com que a EA ficasse presa em um loop infinito.
Obrigado pela entrada de Gooly e Roesder.
cumprimentos,
Olá a todos. Eu li este tópico e tenho uma pergunta. Tento fazer um código, que apague a ordem pendente (apenas STOP, sem LIMIT), mas somente se outra ordem pendente tiver sido ativada (iniciar OP_SELL ou OP_BUY). Então o código é este (mas há um erro, mas eu não sei onde). Você poderia olhar meu código, por favor?
OrdensTotal() não correto...
Fiquei surpreso com a seqüência de códigos de looping que usa OrdersTotal() não dando resultados corretos (observados com dois corretores diferentes).
Estou usando a versão 1090 do MT4 em um desktop Linux Ubuntu-MATE 16.04, executando o WINE 3.0
Aqui está o que tenho usado...
for(int cc = 0; cc < OrderTotal(); cc++)
{
se (!OrderSelect(cc, SELECT_BY_POS, MODE_TRADES) ) continuar;
se (OrderSymbol() != Symbol() ) continuar;
se (OrderType() > 1) continuar; //--ignore negociações pendentes
OpenTradecnt++; //- conta para cada posição viva desse símbolo que existe
Imprimir("a contagem dos negócios abertos deste símbolo é: ", OpenTradecnt);
}
Notei com dois corretores diferentes que o valor OrdersTotal() nem sempre concorda com o que é mostrado na aba 'Trade' do corretor MT4. Inicialmente, pensei que era o corretor fazendo com que OrderTotal() não funcionasse corretamente. Quando notei no segundo corretor, comecei a me perguntar se o MT4 tinha um 'problema' interno, ou se meu código estava errado OU se este era um problema com o MT4 sincronizando corretamente com o servidor....?
Depois de ler este tópico do fórum, me pergunto se eu teria uma mudança nos resultados para mudar o for...loop para ler:
for(int cc = OrderTotal() - 1; cc >= 0; cc--)
{
...........
}
OU, há uma bandeira ou linha de código que assegurará que o OrdersTotal() esteja devidamente sincronizado durante um evento OnTick()?
Qualquer esclarecimento a este respeito seria muito útil e seria muito apreciado!
Favor usar o botão </> para inserir seu código.