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
Funções úteis e freqüentemente utilizadas:
Função GetPositionPrice() redesenhada:
Esta função mostra o resultado errado, ou melhor, o resultado errado. Investiguei e descobri que a identificação da posição não muda no retorno (isto é, durante uma troca de entrada/saída), como descrito na documentação:
https://www.mql5.com/ru/docs/constants/tradingconstants/positionproperties
Uma inversão de posição muda sua identificação para o bilhete de pedido que resultou na inversão.
Seu GetPositionPrice pode empilhar 2 ou mais posições opostas se houver uma inversão, e calcula um preço médio para elas. Tal preço médio de uma posição não tem utilidade prática.
Então, a identificação da posição muda ou não na inversão?
Como você pode dizer a partir de um comércio de entrada/saída qual volume fechou uma posição anterior e qual abriu uma nova posição?
Pode ser comparado com a atual posição aberta. Mas é melhor examinar a história da posição por seu id, que não muda quando a posição é revertida... Comprar/vender volumes para ajudar.
A partir de recentemente, as MUDANÇAS de ID de posição quando você se vira. A documentação sobre isso já foi atualizada....
POSITION_IDENTIFIER
O ID da posição é um número único, que é atribuído a cada posição recém-aberta e não muda ao longo de sua vida útil. Corresponde ao bilhete do pedido com o qual a posição foi aberta.
O identificador de posição é especificado em cada ordem (ORDER_POSITION_ID) e cada comércio (DEAL_POSITION_ID) que o abriu, alterou ou fechou. Use esta propriedade para procurar ordens e negócios relacionados com a posição.
A inversão de uma posição muda seu identificador para o bilhete de pedido, o que resultou na inversão.
longo
Você poderia compará-lo com o atual aberto. Mas é melhor examinar a história da posição pelo id, que não muda durante uma inversão... Comprar/vender volumes para ajudar.
Esta não é uma opção de forma alguma. A posição anterior também poderia estar aberta devido à inversão, etc. Poderia ser uma opção, mas claramente não uma opção ótima.
A partir de recentemente, as MUDANÇAS de ID de posição quando você se vira. A documentação sobre isso já foi atualizada....
POSITION_IDENTIFIER
O ID da posição é um número único, que é atribuído a cada posição recém-aberta e não muda ao longo de sua vida útil. Corresponde ao bilhete do pedido com o qual a posição foi aberta.
O identificador de posição é especificado em cada ordem (ORDER_POSITION_ID) e cada comércio (DEAL_POSITION_ID) que o abriu, alterou ou fechou. Use esta propriedade para procurar ordens e negócios relacionados com a posição.
A inversão de uma posição muda seu identificador para o bilhete de pedido, o que resultou na inversão.
longo
Está escrito assim, mas na realidade nada muda.
Meu código, se você quiser:
Onde deal2_ticket é o in/out transaction ticket, deal1_ticket é o ticket que precede a transação in/out, deal3_ticket é o ticket após a transação in/out. Em todos os três casos recebo a mesma identificação de posição.
É o que diz, mas na realidade nada muda.
Se você quiser, meu código:
Onde deal2_ticket é o in/out transaction ticket, deal1_ticket é o ticket que precede a transação in/out, deal3_ticket é o ticket após a transação in/out. Em todos os três casos recebo a mesma identificação de posição.
E como podemos determinar a partir de um comércio in/out que volume fechou a posição anterior e que abriu a nova?
Este Expert Advisor é executado no modo "Debugging on History" em uma conta netting. O exemplo é um pouco rude, pois calcula-se que há apenas um negócio do tipo "IN/OUT" na história do negócio.
A princípio, depois de todos os negócios executados e do fechamento completo de uma posição, as descrições de todos os negócios são mostradas(DEAL_POSITION_ID, DEAL_VOLUME, DEAL_ENTRY,DEAL_TYPE), nesse DEAL_POSITION_ID para um negócio do tipo IN/OUT é memorizado.
Em seguida, ele percorre novamente a história e soma todas as entradas para o comércio com DEAL_POSITION_ID.
Obtemos algo como isto:
Está mudando para mim. Experimente o último build 1340.