[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 858
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
É uma pergunta simples, mas não consigo pensar em nada.
Existem 4 posições em aberto em um determinado momento. Estou tentando fechar todos eles da seguinte maneira:
Mas eles estão fechados não todos, mas através de um só. De fato, eles têm os seguintes números: 2,4,6,7. Portanto, a 2ª e 6ª posições estão fechadas.
Qual é o truque?
É uma pergunta simples, mas não consigo pensar em nada.
Existem 4 posições em aberto em um determinado momento. Estou tentando fechar todos eles da seguinte maneira:
Mas eles estão fechados não todos, mas através de um só. De fato, eles têm os seguintes números: 2,4,6,7. Portanto, a 2ª e 6ª posições estão fechadas.
Qual é o senão?
O truque é que depois que a posição é fechada, a numeração muda na OrderSelect(i,SELECT_BY_POS,MODE_TRADES) e simultaneamente nem tudo pode ser fechado
SZY: Eu fui muito ajudado pelo fts I. Kim, eu mudei um pouco - removi parênteses extras e puxei em uma linha:
pesquise no fórum - você encontrará os originais
é que depois de fechar uma posição, a numeração muda em OrderSelect(i,SELECT_BY_POS,MODE_TRADES) e tudo não pode ser fechado simultaneamente
SZY: Eu fui muito ajudado pelo fts I. Kim, eu mudei um pouco - removi parênteses extras e puxei em uma linha:
procure através do fórum - você encontrará o original
Obrigado pela dica e pelo exemplo. Vou investigar isso.
No caminho, vou fazer outra pergunta.
A tarefa é a seguinte: preciso determinar que tipo de ordem desencadeada por um stop loss foi fechada, e comparar uma ordem futura fechada por um stop loss com uma ordem anterior (isto é, comparar seus tipos). Tendo pesquisado a documentação, não consegui encontrar nada relacionado ao processamento do último evento.
Neste ponto, eu implementei esta operação como um fechamento de uma ordem quando ela atinge um limite estabelecido (Bid-OrderOpenPrice() >=TP*Point). Isso me permitiu armazenar em uma variável o tipo do último pedido fechado e compará-lo com o que acabou de ser fechado ( if(type===OrderType())) ). Tudo funciona bem durante os testes, mas eu ainda gostaria de implementá-lo usando stop losses.
Tentei selecionar uma ordem fechada do histórico usando OrderSelect() e o argumento MODE_HISTORY. Como não há condições para fechar ordens, então uma mudança na variável OrdersTotal() pode ser considerada como o gatilho de uma stop loss. Mas encontrei um problema: não consigo encontrar o número da última ordem fechada (já que seu número está mudando constantemente), ou simplesmente ainda não descobri como fazer isso.
A questão é: Como implementá-la usando stop-losses? Talvez haja maneiras muito mais fáceis? Bem, se a direção do pensamento estiver correta, então como encontramos a última ordem fechada?
a numeração é alterada em OrderSelect(i,SELECT_BY_POS,MODE_TRADES) após o fechamento de uma posição e todas as posições não podem ser fechadas simultaneamente
SZS: Eu fui muito ajudado pelas funções de I. Kim, eu as mudei um pouco - removi os suportes extras e os puxei para uma única linha:
procure através do fórum - você encontrará o original
https://docs.mql4.com/ru/trading/OrderSelect
É uma pergunta simples, mas não consigo pensar em nada.
Existem 4 posições em aberto em um determinado momento. Estou tentando fechar todos eles da seguinte maneira:
Mas eles estão fechados não todos, mas através de um só. De fato, eles têm os seguintes números: 2,4,6,7. Portanto, a 2ª e 6ª posições estão fechadas.
Qual é o problema?
Você está falando de números em ordem? Ou de ingressos?
Você está falando de números em ordem? Ou de ingressos?
Eu mesmo já estou confuso. Eles são bilhetes, mas eu os dei para deixar a situação clara. Eles fecham um a um.
Viva, eu consegui!!!
Victor muito obrigado, eu tive um erro, não escrevi o nome do indicador corretamente.
O que você acabou de dizer... tudo em uma pilha
https://docs.mql4.com/ru/trading/OrderSelect
Tente mudar/remover takeaways ou paradas em um grupo de pedidos - a tarefa é simples, mas eu encontrei que, quando a seleção do pedido foi feita usando OrderSelect(i,SELECT_BY_POS,MODE_TRADES), a numeração do pedido mudou bem no corpo do loop e eu consegui modificar um pedido já modificado (sem takeaways) várias vezes - erro #1, e é por isso que eu sugeri que quem tiver um problema semelhante
Por favor, informe - como fazer o indicador recalcular no fechamento de várias barras, por exemplo: quero que o indicador seja recalculado a cada 5 novas barras
Por favor, informe - como fazer um indicador recalcular no fechamento de várias barras, por exemplo: quero que o indicador seja recalculado a cada 5 novas barras
Você sabe de programação.
Esta é uma tarefa lógica e não é preciso ser muito esperto para resolvê-la. Pense com sua cabeça.
Há casos diferentes. Onde exatamente deve ser religado, em que TF, como deve ocorrer a religação, etc. Como responder à sua pergunta.
Anote o tempo da barra e após cinco barras reiniciadas desta vez e anote-o novamente. No momento de zerar o tempo, você pode colocar uma condição para recalcular. A função iTime(NULL,0,0) irá ajudar. O resto é tudo lógico.
Por favor, informe - como fazer um indicador recalcular no fechamento de várias barras, por exemplo: quero que o indicador seja recalculado a cada 5 novas barras
O método não é o mais confiável, provavelmente, mas funcionará apenas para tentar a idéia (por exemplo, um rascunho).
Use a variável Bars e acompanhe sua mudança. Aumentado em 5, lembrado, etc.