Fala galera, blz...
Então, gostaria de saber se há alguma ferramenta nativa, ou alguma maneira mas simples de verificar se há mais de uma posição aberta no mesmo ativo, com robôs diferentes com M.N.(Magic Number) diferentes.
Estou com 2 robôs no mesmo ativo, quando eu abro uma posição, a posição fica com o M.N. do 1º robô, se eu abro uma posição com o 2º robô, a posição fica com o M.N do 2º robo.
O problema é que se usar o método tradicional de verificar posições abertas,(for, todas as posições, symbol==symbol, magic==magic, posAberta=True ) eu não vou saber qual posição de qual robô esta aberta.
A maneira que eu fiz é a seguinte, eu verifico o volume das ordens abertas de cada robô, se for executada total ou parcial, eu sei que tem posição aberta no robô especifico.
Eu faço essa verificação através das ordens, a dúvida é se tem alguma função para verificar a posição, através de PositionGet...
Eu vou fazer alguns testes quando o mercado abrir, tentar POSITION_IDENTIFIER, utilizar o comentário das ordens, para verificar na posição, qual posição é de cada robô, porém é especulação minha, não sei o que dá certo.
Alguém tem alguma ideia?
Obgd.
Ou você melhora o comportamento dos robôs ou usa a Conta do Tipo Hedge...
Ou você melhora o comportamento dos robôs ou usa a Conta do Tipo Hedge...
Obgd pelo comentário.
Eu tinha pensando em conta Hedge, mas não daria pra utilizar pela maneira que eu fecho a posição, no caso, com ordens limit. Eu estava usando o volume executado das ordens para descobrir se havia posição aberta ou não.
Andei pesquisando, e estou usando HistoryDeals, parece resolver este problema, com uma lógica bem mais simples comparada a qual eu estava usando antes.
uma coisa que muita gente esquece é adicionar um comentário na hora do buy/sell ....dá para ajudar em muita coisa isso
Mas vc não acha que criar logicas em cima de compo string acaba com a performance do seu algoritmo ?
uma coisa que muita gente esquece é adicionar um comentário na hora do buy/sell ....dá para ajudar em muita coisa isso
Cuidado que tem corretora que zera este campo...
;)
Mas vc não acha que criar logicas em cima de compo string acaba com a performance do seu algoritmo ?
é eu sei que usando o Comment("...") acaba com a perfomance, dá até para ver na hora do backtest que o EA fica lento, mas escrever um comentario na ordem que envia não deixa lento (nunca fiz um teste para bater o martelo).
Na pergunta em questão do rapaz, eu não usaria o comentario, eu usaria o PositionsTotal, depois o simbolo e depois o magic number, porém como ele está verificando tamanho do lote para saber qual robo que é, acho que usar o comentario facilitaria ele a descobrir.
Cuidado que tem corretora que zera este campo...
;)
Essa eu não sabia!
Obrigado pela dica
é eu sei que usando o Comment("...") acaba com a perfomance, dá até para ver na hora do backtest que o EA fica lento, mas escrever um comentario na ordem que envia não deixa lento (nunca fiz um teste para bater o martelo).
Na pergunta em questão do rapaz, eu não usaria o comentario, eu usaria o PositionsTotal, depois o simbolo e depois o magic number, porém como ele está verificando tamanho do lote para saber qual robo que é, acho que usar o comentario facilitaria ele a descobrir.
Em qualquer linguagem usar string para comparação (if) se torna lento. Faça o teste e comprove, eu evito ao máximo tais situações.
Se a conta é netting , mas se quer usar dois robos em um mesmo ativo, operando duas estratégias sua conta tem que ser hedge, ou seja, comida de bola sua sim!
Entenda sobre os nuances que não terá esse tipo de problema.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Fala galera, blz...
Então, gostaria de saber se há alguma ferramenta nativa, ou alguma maneira mas simples de verificar se há mais de uma posição aberta no mesmo ativo, com robôs diferentes com M.N.(Magic Number) diferentes.
Estou com 2 robôs no mesmo ativo, quando eu abro uma posição, a posição fica com o M.N. do 1º robô, se eu abro uma posição com o 2º robô, a posição fica com o M.N do 2º robo.
O problema é que se usar o método tradicional de verificar posições abertas,(for, todas as posições, symbol==symbol, magic==magic, posAberta=True ) eu não vou saber qual posição de qual robô esta aberta.
A maneira que eu fiz é a seguinte, eu verifico o volume das ordens abertas de cada robô, se for executada total ou parcial, eu sei que tem posição aberta no robô especifico.
Eu faço essa verificação através das ordens, a dúvida é se tem alguma função para verificar a posição, através de PositionGet...
Eu vou fazer alguns testes quando o mercado abrir, tentar POSITION_IDENTIFIER, utilizar o comentário das ordens, para verificar na posição, qual posição é de cada robô, porém é especulação minha, não sei o que dá certo.
Alguém tem alguma ideia?
Obgd.