[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 563
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
abeiks:
Há algum tempo, , tenho tentado retrabalhar o bloco de compra próxima para fechar apenas as duas últimas posições de compra, mas falhou. Você pode dizer a como refazer o bloco ?
Há algum tempo, , tenho tentado retrabalhar o bloco de compra próxima para fechar apenas as duas últimas posições de compra, mas falhou. Você pode dizer a como refazer o bloco ?
Obrigado!
É mais fácil, e mais conveniente, fazer uma função (bloco) para fechar uma última posição. E execute-o duas vezes. Em laço, ou apenas em fila.
Obrigado, é uma boa opção que vou tentar também.
Devo ter escrito mal :(
Há um algoritmo para a abertura de pedidos.
Eu preciso, que em qualquer variante de fechamento da última ordem, o seguinte tenha sido aberto em outra direção (quando as condições forem adequadas).
Todos os trabalhos, mas se eu tiver fechado por um stop loss, por exemplo, para vender, e as condições para abrir uma venda nessa direção, a abertura continua. O que precisamos é esperar por condições para comprar.
Ou seja, precisamos verificar o último pedido fechado, para que não coincida com o de abertura (alternância compra-venda-compra-venda). Apenas um pedido ou à espera de um sinal está em operação.
Entendo que provavelmente deveríamos usar o OrderHistoryTotal(), mas como seria em uma EA funcional?
Obrigado.
Este é provavelmente o caso em algum lugar. Mas se há muitos pedidos na história, é melhor usar seu próprio livro de pedidos. https://www.mql5.com/ru/articles/1404https://www.mql5.com/ru/articles/1390
Uma opção mais rígida
Devo ter escrito mal :(
Há um algoritmo para a abertura de pedidos.
Eu preciso, que em qualquer variante de fechamento da última ordem, o seguinte tenha sido aberto em outra direção (quando as condições forem adequadas).
Todos os trabalhos, mas se eu tiver fechado por um stop loss, por exemplo, para vender, e as condições para abrir uma venda nessa direção, a abertura continua. O que precisamos é esperar por condições para comprar.
Ou seja, precisamos verificar o último pedido fechado, para que não coincida com o de abertura (alternância compra-venda-compra-venda). Apenas um pedido ou à espera de um sinal está em operação.
Entendo que provavelmente deveríamos usar o OrderHistoryTotal(), mas como seria em uma EA funcional?
Obrigado.
Se você quiser aprender a programar, você pode olhar através do código dos outros (é para isso que serve CodaBase), ou proceder a partir do algoritmo da solução do problema. Pedir para escrever código para você é a maneira mais desesperada de aprender. Na maioria das vezes, você terá uma solução mal codificada para seu problema, algo como (alegoricamente) seu vizinho chamando-o à porta a cada minuto e perguntando "qual é seu nome" - trata-se de cálculos desnecessários (supérfluos).
O algoritmo para resolver seu problema pode ser o seguinte. Primeiro, você precisa ter certeza de que não tem "suas" ordens. Este problema, se não for para o testador (onde podemos limitar a solução à condição se (OrderTotal() == 0), é resolvido através de buscas de pedidos usando filtros para combinar OrderMagicNumber() e Symbol(). Em seguida, você verifica a condição (de acordo com sua estratégia) para abrir o pedido. Se houver um sinal, então usando a busca de OrderHistoryTotal() (geralmente é o último da lista), calcule o OrderType() da última ordem fechada. Se o sinal para abrir a ordem e o tipo da última ordem fechada não coincidirem, abra a ordem com base no sinal.
Esta abordagem envolve cálculos mínimos e reduz muito o tempo de otimização do Expert Advisor no testador.
Há algum tempo atrás eu lhe dei o algoritmo para resolver a busca das últimas posições. E então o que fazer com eles não importa: contar, apagar, modificar STOP. Se você não for capaz de escrever código pelo menos "na imagem e semelhança", não é seu (programação)...
Sim, concordo, programação não é o meu forte, então estou aprendendo e fazendo perguntas aqui. Tentei adicionar fechamento de posição ao seu algoritmo mas falhou (todas as posições de compra estavam fechando) então decidi abordar o problema de outro ângulo e ver a solução de fechar as duas últimas posições de compra em um bloco de fechamento pronto que foi fornecido e oferecido a mim.
Eu ficaria muito grato se você pudesse me mostrar como fechar as duas últimas posições de compra. Vou entender onde cometi um erro.
Se você quiser aprender a programar, ou analisar o código de outras pessoas (é para isso que serve CodaBase) ou seguir o algoritmo para a tarefa em questão. Pedir para escrever código para você é a maneira mais desesperada de aprender. Na maioria das vezes você não receberá o melhor código para sua tarefa, algo como (alegoricamente) quando seu vizinho toca a cada minuto sua campainha e pergunta "qual é seu nome" - trata-se de cálculos desnecessários (supérfluos).
Concordo plenamente com você. Você está 100% certo. Este é o caminho certo e eu tentei segui-lo. Entretanto, estudar a MQL4 sem os livros didáticos e ler sem motivo levou a nada. Eu tinha que analisar o código de outra pessoa de qualquer maneira, já que eu não podia colocar minhas próprias idéias malucas no programa na maior parte do tempo. Comecei a construir a estratégia em ....excel (está mais perto de mim e é mais compreensível). Quanto aos princípios básicos da estratégia, ela tem sido muito bem sucedida e clara (sobre a história, é claro). Mas além disso, devo levar em conta as peculiaridades do comércio: spread flutuante, swap, peculiaridades da corretora, é difícil encaixar tudo isso em fórmulas exelentes. Assim, decidi analisar a diferença entre lucro em excel e MQL. Francamente falando, a diferença é muito grande, não a meu favor. Ainda não sei, vou analisar cada posição, talvez o Conselheiro Especialista tenha cometido um erro, mas isso depende de mim.
De qualquer forma, boas pessoas neste fórum me ajudaram a resolver um problema específico, que grande agradecimento humano.
não, o problema de alterar o número de ordem de uma posição quando uma delas é fechada foi resolvido, eu verifiquei mais de uma vez pensando que pode haver um erro lá, mas tudo está bem lá, a ordem requerida é selecionada e o prejuízo é calculado corretamente para ela, mas a ordem não quer ser modificada...
O erro 1 é gerado somente se todos os parâmetros passados para a funçãoOrderModify( ) forem iguais a todos os parâmetros da ordem sendo modificada, que você( por número de bilhete) ou a funçãoOrderSelect() selecionada para modificação. Exemplo de uso do cheque:
Somente "Funções úteis da KimIV".
Função ModifyOrder()https://www.mql5.com/ru/forum/131859