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
Acertei que os valores devolvidos pela ACCOUNT_TRADE_ALLOWED são gerados no lado do servidor?
Nenhuma acção do lado do comerciante (em terminal) pode alterar este valor...
PS
Mas a relutância da ACCOUNT_TRADE_EXPERT em mudar é realmente estranha...
O que faz então o botão "Auto-Trading" no menu do terminal e a caixa de verificação "Allow auto-trading"?
PPS
Em lançamentos antigos tudo parecia estar correcto e tudo funcionava, mas em 299 não percebo o que se passa...
Quem cavou em ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT e porquê?
Aos criadores - Ou já estou a enlouquecer ou "drubashki" apareceu no terminal. :)
E não no último lançamento, mas pelo menos em 294 (quem os deixou lá?)... :(
Uma pequena experiência
Vamos pegar no lançamento do terminal 294 e colocar no gráfico um Expert Advisor que controla o valor de retorno de AccountInfoInteger(ACCOUNT_TRADE_ALLOWED).
Ao mesmo tempo, a auto-negociação é desactivada nos parâmetros do Expert Advisor e no terminal (o botão "auto-negociação").
Como resultado, o diário de bordo do Conselheiro Especialista contém o seguinte
Aqui podemos ver o registo das acções realizadas pelo Expert Advisor (durante a inicialização) e a verificação do valor ACCOUNT_TRADE_ALLOWED no temporizador.
Estamos interessados em todos os símbolos destacados a cores (antes disto a lista de símbolos era carregada numa classe especializada).
1. O primeiro resultado devolvido pelo temporizador é azul (espera-se que seja falso);
2. A cor vermelha realça o resultado seguinte, que foi devolvido pelo temporizador, e de repente revelou-se verdadeiro(estou muito interessado no que BARABACA permitiu negociar);
3. A reacção da minha turma (evento OnEventTimer) às mudanças é verde.
Aqui a turma "compreende" que a auto-comercialização é permitida e informa sobre ela com prazer (não partilho do seu optimismo);
Além disso, a mensagem é apresentada duas vezes (embora não tivesse sido vista antes). A mensagem não deve aparecer duas vezes, uma vez que o evento OnEventTimer contém uma verificação que exclui esta possibilidade.
4. Então o temporizador retorna constantemente verdadeiro, aconteça o que acontecer ao terminal.
PS
A situação com AccountInfoInteger(ACCOUNT_TRADE_EXPERT) é ainda mais confusa. O temporizador retorna o ture independentemente das configurações do terminal e do Expert Advisor.
Será que precisamos dele?
Estou também interessado numa questão semelhante. O que devo fazer se não houver fundos suficientes na minha conta para abrir uma posição?
1. Impedir o Expert Advisor de negociar.
2. Proibir a abertura de uma posição.
3. retirar o Consultor Especialista do quadro.
O ponto 3 pode ser resolvido utilizando o ExpertRemove. Resolvi o 2º item desta forma:
1. Compreendo que a proibição de negociação não é definida programmaticamente, mas utilizando o botão "Auto-Trading" e a caixa de verificação "Allow auto-trading" seguida da verificação ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT.
Também pode proibir operações comerciais adicionando o parâmetro necessário ao seu Consultor Especialista e depois controlando este parâmetro (por exemplo, proibir a negociação numa conta real).
O controlo preliminar é realizado durante a inicialização de um Expert Advisor, enquanto no modo de trabalho é tratado em OnTimer() ou OnTick().
2. O controlo da possibilidade de abrir (fechar) uma posição deve ser conduzido considerando o estado actual: a ligação, a possibilidade de auto-comercialização, e outras condições (por exemplo, o controlo da possibilidade de realizar uma determinada operação para este símbolo).
Para controlar todas as condições, é melhor criar uma função com um resultado semelhante a um bool.
Por exemplo, como este:
3. o consultor especializado só deve ser retirado do quadro em casos extremos (quando o seu trabalho não pode ser feito ou quando já não é necessário)
Esta situação é muito extrema e rara. Deve ser utilizado, por exemplo, se alguns ficheiros necessários para o Consultor Especialista não forem encontrados, ou se houver um erro que o Consultor Especialista não consiga resolver.
PS
A remoção e colocação de EAs também é útil se vários EAs negociarem em pares diferentes, mas são geridos por um EA (ele decide em que par colocar um EA e qual remover)...
Quem cavou ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT, e o mais importante, porquê?
Desenvolvedores - Ou já estou a ficar louco ou o terminal "drubashki" apareceu... :)
E não no último lançamento, mas pelo menos em 294 (quem os deixou entrar ali?)... :(
Uma pequena experiência
Vamos pegar no lançamento do terminal 294 e colocar no gráfico um Expert Advisor que controla o valor de retorno de AccountInfoInteger(ACCOUNT_TRADE_ALLOWED).
Ao mesmo tempo, a auto-negociação é desactivada nos parâmetros do Expert Advisor e no terminal (o botão "auto-negociação").
Como resultado, o diário de bordo do Conselheiro Especialista contém o seguinte
Aqui podemos ver o registo das acções realizadas pelo Expert Advisor (durante a inicialização) e a verificação do valor ACCOUNT_TRADE_ALLOWED no temporizador.
Estamos interessados em todos os símbolos destacados a cores (antes disto a lista de símbolos era carregada numa classe especializada).
1. O primeiro resultado devolvido pelo temporizador é azul (espera-se que seja falso);
2. A cor vermelha realça o resultado seguinte, que foi devolvido pelo temporizador, e de repente revelou-se verdadeiro(estou muito interessado no que BARABACA permitiu negociar);
3. A reacção da minha turma (evento OnEventTimer) às mudanças é verde.
Aqui a turma "compreende" que a auto-comercialização é permitida e informa sobre ela com prazer (não partilho do seu optimismo);
Além disso, a mensagem é apresentada duas vezes (embora não tivesse sido vista antes). A mensagem não deve aparecer duas vezes, uma vez que o evento OnEventTimer contém uma verificação que exclui esta possibilidade.
4. Então o temporizador retorna constantemente verdadeiro, aconteça o que acontecer ao terminal.
PS
A situação com AccountInfoInteger(ACCOUNT_TRADE_EXPERT) é ainda mais confusa. O temporizador retorna a ture independentemente das configurações do terminal e do Expert Advisor.
Será que precisamos dele?
Algo de estranho se passa aqui, ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT são permissões para negociar na sua empresa de corretagem.
Botão "AutoTrade". - TerminalInfoInteger(TERMINAL_TRADE_ALLOWED).
Existe MQL5InfoInteger(MQL5_TRADE_ALLOWED) - permissão/proibição de comércio para perito/script
Algo de estranho acontece, ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT são permissões de comércio no CD.
Botão "AutoTrade". - TerminalInfoInteger(TERMINAL_TRADE_ALLOWED).
Existe também MQL5InfoInteger(MQL5_TRADE_ALLOWED) - permissão/proibição de comércio para perito/script
Conheço a MQL5InfoInteger(MQL5_TRADE_ALLOWED), funciona bem e é normalmente monitorizada em Expert Advisor; MQL5_DLLS_ALLOWED é também normalmente processada.
Assim, tal como eu o entendo:
TERMINAL_DLLS_ALLOWED e TERMINAL_TRADE_ALLOWED são permissões de nível terminal;
MQL5_DLLS_ALLOWED e MQL5_TRADE_ALLOWED - permissões a nível de peritos;
ACCOUNT_TRADE_ALLOWED e ACCOUNT_TRADE_EXPERT - permissões a nível de servidor.
Então assumiremos que o servidor muda falso para verdadeiro (embora não seja claro porque é que esta mensagem é mostrada duas vezes).
Boa tarde tenho este problema, começo a percorrer a tabela horária e numa determinada data vai para a tabela diária, também com 15 minutos vão para a tabela horária ou 4 horas, ficheiros apagados onde o histórico é armazenado de acordo com a documentação mas nada mudou.
Boa tarde tenho este problema, começo a percorrer a tabela horária e numa determinada data vai para a tabela diária, também com 15 minutos vão para a tabela horária ou 4 horas, ficheiros apagados onde o histórico é armazenado de acordo com a documentação mas nada mudou.
Descobri que existe um problema com HistoryDealsTotal() ao utilizar os algoritmos de optimização do testador.
Durante um backtest normal tudo está bem, mas numa sessão de optimização, durante a fase de inicialização da EA, HistoryDealsTotal() devolve o número de negócios da execução anterior da EA. Mais tarde, durante a fase de negociação, HistoryDealsTotal() começa novamente em 0.
Encontrei este número através do seguinte trecho de código:
A forma de contornar isto, é inicializar com 0, mas mesmo assim ficaria satisfeito com uma resposta oficial a esta questão, porque para mim parece que algumas variáveis internas são reiniciadas demasiado tarde.
Obrigado de antemão!
Olá, responda à minha pergunta:
Porque não posso descarregar o mt5, descarrego o ficheiro de instalação, inicio a meio caminho, pára, salta para outro ponto de acesso, etc. No final há um erro...
-lido falhou [12002]
esta é a história constantemente, não importa quantas vezes reinstale o terminal ou janelas, mas agora ao terceiro dia falha
por favor diga-me porque é que esta construção regressa sempre 0
e como é que sei quantos minutos são agora?