Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1919
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
É pouco provável que você obtenha respostas dos desenvolvedores neste tópico. Se você encontrar um erro, certifique-se de que seja realmente um erro, relate-o à filial de Alexey. Não há necessidade de esperar ações de moderadores nesta ocasião - nós também somos pessoas e também não temos tempo.
Olá Artem!
Tudo está claro.
Atenciosamente, Vladimir.
Boa tarde!!!!
Aqui estão duas funções para o consultor da grade A primeira função é o cálculo do lucro, levando em conta o fechamento parcial de pedidos perdidos
A segunda função é fechar ordens com fechamento parcial de ordens não-lucrativas
A situação é a seguinte: se eu fechar uma grade de ordens levando em conta o fechamento parcial de ordens perdidas, recebo uma perda como resultado do arredondamento para o lado maior de alguns lotes que precisam ser fechados
A questão é se você pode usar estas duas funções para escrever uma função para calcular a perda de pedidos, ou melhor, uma parte de um pedido a ser fechado.
Se for o caso, por favor, ajude-me a escrevê-lo
Obrigado
Boa tarde!!!!
Se for o caso, ajude-me a escrevê-lo.
Não é um bom momento.
Você quer dizer escrevê-lo para você?
Estes não são bons tempos.
Você quer dizer escrever para você?
Não se rasgue Alexandre
perdido nas coisas elementares:
como organizo uma postura de arrasto - co-dirigida, por alguma razão ela arrasta uma postura, ou seja, não arrasta... MT5
posso usar uma seção de código simples como enumeração de posições para uma rede de arrasto com posições de mercado HEDGE - obrigado.
o problema está resolvido! Parabéns mais uma vez a Vladimir Karputov!!!
com sua rede de arrasto!
https://www.mql5.com/ru/code/17263
o truque chave é olhar o índice no laço e modificá-lo com a opção ticket!!!
Uma tarefa simples: você precisa bater todos os elementos do ArrayJ que são o mesmo índice e valor que os elementos do ArrayI:
O fio condutor é destacado. Resultado:
Esperado:
O ArrayJ é dinâmico, parece haver algo de errado com ele. Mas eu também não preciso de um estático.
Partiu-me a cabeça. O QUE ESTÁ ACONTECENDO? Ou será este o equivalente da velha canção:
https://www.mql5.com/ru/forum/1111/page3141#comment_27152680
и
https://www.mql5.com/ru/forum/1111/page3142#comment_27371998
sobre constantes nomeadas?
O fio condutor é destacado. Resultado:
Esperado:
O ArrayJ é dinâmico, parece haver algo de errado com ele. Mas eu também não preciso de um estático.
1. ArrayResize seria melhor sair do loop.
2. ArrayRemove não torna um elemento de matriz "vazio", ele "desloca" os elementos subseqüentes para seu lugar. Portanto, a correspondência de elementos em índices subseqüentes é quebrada.
1. ArrayResize deve ser movido para fora do loop
2. ArrayRemove não torna um elemento de matriz "vazio", mas "desloca" os elementos subseqüentes em seu lugar. Portanto, a correspondência de elementos em índices subseqüentes é quebrada.
Não há dúvidas sobre 2, eu apenas coloquei os intervalos lá para torná-lo mais claro. Além disso, no Help diz sobre uma matriz estática:"Se a função é usada para uma matriz de tamanho fixo, o tamanho da matriz em si não muda: a "cauda" restante é fisicamente copiada para a posição inicial. "O exemplo na Ajuda também usa uma matriz de tamanho fixo, e eu tenho uma dinâmica.
Re 1. Não podemos colocá-lo fora de um loop, pois em uma tarefa real não sabemos de antemão nem o tamanho do ArrayJ ou do ArrayI, muito menos o tamanho do CommonArray, já que todos eles não coincidem.
Tenho também um exemplo em que o embaralhamento de elementos não é interrompido pela metade, como no exemplo acima:
O resultado é bom:
Mas você precisa dessa variante para trabalhar. O engate aparentemente acontece se houver elementos com o mesmo valor (ver post anterior) na cauda à direita - o que é semelhante ao problema ao qual eu estava me referindo acima.
Não há perguntas sobre 2, eu coloco os intervalos para maior clareza. Além disso, no Help diz sobre a matriz estática:"Se a função é usada para uma matriz de tamanho fixo, o tamanho da matriz em si não muda: ela copia fisicamente a "cauda" restante para a posição inicial."O exemplo na Ajuda também usa uma matriz de tamanho fixo, e eu tenho uma dinâmica.
Re 1. Não podemos colocá-lo fora de um loop, pois em uma tarefa real não sabemos de antemão nem o tamanho do ArrayJ ou do ArrayI, muito menos o tamanho do CommonArray, já que todos eles não coincidem.
Tenho também um exemplo em que o despejo de elementos não quebra pela metade, como neste exemplo:
O resultado é bom:
Mas eu preciso dessa variante para trabalhar. O engate aparentemente acontece se houver elementos com o mesmo valor na cauda à direita (ver post anterior) - o que é semelhante ao problema a que me referi acima.
1. Você pode e deve tirá-lo do circuito, da maneira como eu mostrei. A menos que o tamanho do ArrayI mude ao longo do loop.
2. Então algo como isto