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
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: MT4Orders
fxsaber, 2023.07.07 13:12
Desempenho.
Tabela de desempenho (tempo de execução em milissegundos) para b3815 e b2958.
O MT4Orders de 20.07.2022 foi usado em todos os lugares.
Usando a mesma metodologia, uma tabela de comparação de duas compilações do MT5: b4040 e b4057.
No b4057+, o desempenho do MT4Orders ao trabalhar com histórico não é inferior ao do MQL5 nativo.
Dessa forma, a recomendação dada anteriormente não é mais relevante (para MT5 b4057+).
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Bibliotecas: MT4Orders
fxsaber, 2023.07.07 13:12
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: MT4Orders
fxsaber, 2017.06.14 11:30 AM.
Se você precisa entender, o terminal fez uma rejeição na ordem de negociação ou no servidor.
Real. Utilizo o MT4Orders, ambiente virtual via Virtual, e sincronizo o virtual com o real. Para isso, em cada tick, analiso várias vezes as ordens abertas no real. Para isso, na primeira passagem, formo uma lista de ordens de interesse e, nas outras passagens, trabalho com essa lista.
Eu costumava ter esse código:
A prática mostrou que essa não é uma boa maneira de fazer isso. Um limitador parcialmente preenchido gerará duas ordens com o mesmo tíquete e, na segunda passagem, isso será um infortúnio.
Agora mudei para este código
Além disso, é feito um instantâneo antes do trabalho. Isso funcionará corretamente ou pode ocorrer algo diferente?
O código costumava ser o seguinte:
A prática mostrou que essa não é uma boa maneira de fazer isso. Um limitador parcialmente preenchido gerará duas ordens com o mesmo tíquete e, na segunda passagem, isso será um infortúnio.
Não haverá tristeza se você fizer isso dessa forma.
AddToArray(OrderTickets, (OrderType() <= OP_SELL) ? OrderTicket() : - OrderTicket());Esse é um recurso do MT4Orders. No entanto, o SELECT_BY_TICKET não é um mecanismo rápido no MT4/5 e na virtualização. Um dos motivos é que, se ele não encontrar entre os ativos, irá para o histórico (o sinalizador MODE_TRADES é apenas uma indicação de prioridade de onde procurar primeiro).
Agora mudei para este código
Além disso, um instantâneo é criado antes do trabalho. Isso funcionará corretamente ou pode ocorrer algo diferente?
Aqui já estamos falando sobre o add-on do Virtual.mqh. É claro que os instantâneos acelerarão muito o trabalho se houver muitos personagens/mágicos sendo negociados.
O Snapshot reduz ao mínimo o trabalho com o ambiente externo ao Expert Advisor (API de negociação). Ou seja, as funções mais lentas são chamadas uma vez para a leitura inicial e, em seguida, todo o trabalho com o ambiente de negociação é feito dentro do EA sem que o programador perceba, pois é o mesmo estilo MT4.
Faz sentido usar uma dessas variantes de snapshot.
Você pode chamar VIRTUAL::Snapshot() milhares de vezes seguidas, mas ele não interagirá com a API de negociação externa com mais frequência do que a definida em VIRTUAL_SNAPSHOT_REFRESHTIME (no exemplo, é um milissegundo - isso é suficiente para mim). Portanto, nada precisa ser memorizado, e o código é mais ou menos o seguinte.
Aqui está meu código de sincronização (chamado para cada subTS) com ambientes virtuais.
No destaque, você pode ver a criação do snapshot. Ele deve ser chamado após as funções de freio. Por exemplo, OrderSend. Se você chamá-lo uma vez a mais, não há problema, conforme mostrado no código acima.
No entanto, o código-fonte é fornecido por outro motivo. Coloquei todas as funções potencialmente lentas em uma macro que interrompe completamente a sincronização se um novo tique (SymbolInfoTick ou CopyTicks) chegar durante a sincronização, porque os novos ticks devem primeiro ser lançados em todos os virtuais e só depois sincronizados com o real. Tudo é exatamente igual ao que deveria funcionar para copiadoras de negociação e trocas de criptografia externas.
Não há problema.
algum erro
algum erro
Isso é normal.