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
Apanhando todos os eventos por tick, em comparação com os dados registrados anteriormente.
Tudo em arrays.
Na verdade, às vezes há freios, quando há muitos carrapatos. É por isso que eu fiz um atraso entre as verificações de 1 segundo.
Diz respeito ao monitoramento de muitas posições.
E se você apenas monitorar as posições de um determinado robô, é claro que lá é mais fácil.
Tenho uma tarefa simples, e não há mais do que duas ou três dúzias de pedidos em funcionamento.
E, portanto, vou usar um temporizador para verificar o que está em OrdersTotal() e escrever volumes em variáveis novas e antigas com substituição a cada iteração, e se o volume tiver mudado - tomar outras medidas.
Tenho uma tarefa simples, e não há mais do que duas ou três dúzias de pedidos em funcionamento.
E, portanto, vou usar um temporizador para verificar o que está em OrdersTotal() e escrever volumes em variáveis novas e antigas com substituição a cada iteração, e se o volume tiver mudado - tomar outras medidas.
O volume não mudará quando uma ordem pendente for acionada.
O volume não mudará quando o pedido pendente for acionado.
Bem, eu filtro as ordens por tipo no laço e calculo o volume da posição cumulativa aberta.
Entristece-me que eu tenha que desperdiçar recursos e perder meu tempo, quando o MT5 me permite simplesmente esperar por um evento específico sem qualquer estresse.
Bem, eu filtro as ordens por tipo no laço e calculo o volume da posição cumulativa aberta.
É triste que você tenha que treinar assim e desperdiçar recursos, quando na MT5 você pode simplesmente esperar por um evento específico sem qualquer estresse.Bem mt5 é uma ordem de magnitude maior do que mt4.
Isto também se aplica a outras funções.
Em minha situação específica, se negociarmos uma vez por dia e tivermos um evento uma vez por dia, teremos 60*60*24=86.400 esforços extras. E ainda não há outra maneira.
Depende da tarefa.
Se quisermos capturar a abertura/fechamento (não parcial) de uma posição e o ajuste/eliminação de uma ordem, então não precisamos passar pela lista toda vez em um loop.
Podemos simplesmente verificar os valores atuais e anteriores do OrderTotal(). Se detectarmos uma diferença, temos um evento, e então olhamos para o valor.
Eu fiz tudo usando hash soma de propriedades de ordem e posição. Tão logo tenha mudado - temos algum evento - então olhamos o que exatamente mudou ali.
Mas eu tinha a tarefa de rastrear tudo, e quaisquer mudanças.
Em minha situação específica, se as negociações forem executadas uma vez por dia e um evento ocorrer uma vez por dia, teremos que fazer 60*60*24=86.400 esforços extras. E não há outra maneira.
Há também esta abordagem (se o aparecimento de uma nova ordem só for possível a partir do lado da EA):
Se o pedido estiver lá, atualize seus dados, se necessário. Isto se o monitoramento de SL/TP/volume for necessário. Se não for necessário, não fazemos mais nada.
Se a ordem for encontrada na lista de fechados (OrderCloseTime() > 0), então exclua-a da matriz. O conjunto só será reabastecido quando o pedido for aberto por uma EA.
Como resultado, não teremos que passar por toda a lista de pedidos em cada carrapato. As operações só são possíveis com sua própria matriz.
Vou tentar comparar os valores de OrderTotal() por enquanto (graças a @Artyom Trishkin), isso deve ser suficiente. Eu não terei fechamentos parciais.
Durante a inicialização, atribuirei o valor -1 ao antigo, para que no início a verificação completa seja sempre realizada, independentemente da presença de ordens no mercado.
Depois disso, um novo pedido aparecerá (evento) ou o antigo será apagado (evento) e até mesmo o símbolo não importa - podemos verificar tudo completamente, ainda é muitas vezes menos freqüente do que a agitação interminável.
Vou tentar comparar os valores de OrderTotal() por enquanto (graças a @Artyom Trishkin), isso deve ser suficiente. Eu não terei fechamentos parciais.
Durante a inicialização, atribuirei o valor -1 ao antigo, para que no início a verificação completa seja sempre realizada, independentemente da presença de ordens no mercado.
Depois disso, a nova ordem aparecerá (evento) ou a antiga será apagada (evento) e mesmo o símbolo não importa - podemos fazer uma verificação completa de todas elas, ainda é muitas vezes menos freqüente do que a batida interminável.
Mas deve ser tratado com cuidado, hoje enfrentei que uma posição fechou e a outra abriu sobre outra, e quase ao mesmo tempo entre carrapatos.
No final das OrdensTotal() permaneceu 8. A lógica do Expert Advisor ficou confusa - ele não recalculou os novos dados