Neste artigo
Depois deste artigo, saberá…
- Ligar ordens, negócios e identificador do ciclo.
- Conservar o total ao atribuir resultados por estratégia.
- Reconciliar ciclos abertos incluindo flutuante e custos.
Conceitos sem sair do artigo
Expert Advisor (EA) Execução de ordem ComissãoUma posição não é uma carteira isolada por robô
Em netting, dois Expert Advisors que negociam o mesmo símbolo alteram uma posição comum. Uma ordem manual também a pode reduzir, aumentar ou inverter. O resultado apresentado na posição não se divide automaticamente entre estratégias. Se um robô A compra e outro B vende, B pode estar a fechar exposição criada por A em vez de abrir uma posição independente.
Separe três perguntas: quem enviou a instrução, que negócios executaram e como atribui economicamente entradas e saídas. Expert Advisor (EA) explica o programa; o identificador do programa não transforma a posição numa conta segregada. Em hedging, posições separadas facilitam algumas ligações, mas continuam a exigir custos e confirmações corretos.
Conserve a cadeia de identificadores
DEAL_MAGIC é uma etiqueta do negócio; DEAL_REASON indica a origem ou motivo documentado. Magic zero, sozinho, não prova intervenção manual: um programa pode usar zero. Comentários são auxiliares, não substitutos da cadeia. Relacione DEAL_ORDER, DEAL_POSITION_ID e POSITION_IDENTIFIER, guardando identificadores como valores exatos, sem arredondamentos de folha de cálculo.
POSITION_IDENTIFIER liga o ciclo; o ticket da posição pode mudar em operações de serviço. HistorySelectByPosition seleciona ordens e negócios desse identificador e devolve sucesso ou falha. Verifique o retorno e a integridade do histórico. Outras funções de seleção podem substituir as listas selecionadas: não percorra uma coleção supondo que permanece intacta depois de outra seleção.
O volume pedido não demonstra o volume executado. Use cada preenchimento real e a sua hora, preço e quantidade. Separe lucro, comissão, fee, swap e lançamentos de saldo que não estejam atribuídos ao negócio. Se falta a entrada, marque o caso por reconciliar; não invente preço a partir do comentário da saída.
Quatro negócios, duas convenções, um total
Modelo sintético, não histórico de cliente: EUR/USD linear, 100 000 EUR por lote, conta USD sem posição inicial. As compras são aos preços Ask indicados e as vendas aos Bid indicados; não subtraímos novamente um spread. Cada negócio custa 1 USD de comissão e não há swap ou outros encargos. Todos pertencem ao ciclo POSITION_IDENTIFIER 5001.
| Negócio / ordem | Iniciador | Execução | Posição depois |
|---|---|---|---|
| 7001 /5001 | EA A | Compra 0,10 a 1,1000 | Long 0,10 |
| 7002 /5002 | EA B | Compra 0,10 a 1,1020 | Long 0,20 |
| 7003 /5003 | Manual | Venda 0,10 a 1,1010 | Long 0,10 |
| 7004 /5004 | Manual | Venda 0,10 a 1,1030 | Sem posição |
Após as duas entradas, o preço médio comum é 1,1010. A primeira saída realiza 0 USD pelo preço médio; a segunda realiza 20 USD. Resultado do ciclo fechado:20−4=16 USD. Este total não depende da convenção que usamos para apresentar o contributo de cada robô.
Na atribuição analítica FIFO, a saída 7003 é ligada à entrada A: (1,1010−1,1000)× 10 000=10 USD. A saída 7004 é ligada a B: (1,1030−1,1020)× 10 000=10 USD. Alocando uma comissão de entrada e outra de saída por parcela, A fica 8 USD e B 8 USD.
Na atribuição analítica LIFO,7003 fecha primeiro B e dá −10 USD;7004 fica com A e dá 30 USD. Depois das duas comissões por parcela: A 28 USD e B −12 USD. Ambos somam 16 USD. Isto não altera a contabilidade do servidor e não constitui uma regra fiscal portuguesa ou universal. É uma decisão de atribuição interna, a definir antes de avaliar estratégias.
FIFO: A 8+B 8; LIFO: A 28+B(−12). A convenção muda a atribuição, não o total 16 USD.
- FIFO
- A 8; B 8 USD – Total 16 USD
- LIFO
- A 28; B −12 USD – Total 16 USD
Atribuição por robô: o total permanece 16 USD
Desloque horizontalmente ou amplie o diagrama para ler todos os detalhes.
Comparar apenas lucro realizado dá uma conclusão errada
Pare agora a experiência após 7003 e assuma Bid 1,1010. Pela posição partilhada, o realizado é 0 e o flutuante é 0. Pela atribuição FIFO, A tem +10 realizado e a parcela remanescente B tem −10 não realizado. Com três comissões já cobradas, o resultado combinado é−3 USD nas duas leituras.
Mostrar apenas A com lucro de 7 USD depois das comissões atribuídas e omitir a parcela aberta transforma apresentação em distorção. Compare sempre realizado e não realizado à mesma cotação, hora e moeda. Quando 7004 fecha o ciclo, o flutuante passa a zero e o resultado líquido total passa a 16 USD. Resultado flutuante e realizado: a transferência não cria lucro distingue estas duas componentes.
Uma leitura em EUR sem confundir conversão e execução
Modelo adicional para apresentação numa conta EUR: use uma taxa fixa assumida de 1,10 USD por EUR apenas para converter todos os montantes deste exemplo.16 USD /1,10=14,5454…EUR, ou 14,55 EUR arredondados no total. FIFO dá 7,2727…EUR por robô; LIFO dá 25,4545…EUR para A e −10,9090…EUR para B. Conserve valores não arredondados ao reconciliar; somar duas parcelas já arredondadas pode diferir um cêntimo.
Esta taxa fixa é uma hipótese didática. A corretora pode converter cada lançamento em momento diferente; nesse caso, diferença cambial precisa de coluna própria. Não atribua automaticamente a diferença ao robô ou ao spread. Um relatório em EUR não muda os preços de execução originais em USD.
Procedimento para o diário
- Exporte o ciclo completo, incluindo ordens, negócios, identificador da posição, horas e componentes de custo. Confira quantidades executadas e posição atual.
- Defina FIFO, LIFO ou outra regra de atribuição antes da comparação. Guarde iniciador da saída e proprietário analítico em colunas diferentes.
- Reconcilie a soma das parcelas com a conta, incluindo flutuante se o ciclo continuar aberto e conversões reais se existirem. Mantenha lacunas como pendentes.
Se a convenção mudar, identifique a quebra de metodologia em vez de juntar séries silenciosamente. Netting MT5: como uma operação altera SL e TP explica como outra entrada também pode alterar a proteção partilhada. O diagnóstico serve para detetar interferência entre robôs, não para provar qual teria lucrado numa conta separada com outra execução.
Verifique o que aprendeu
Aprox. 2 minutos de prática.
Ver resposta e explicação
10−10−3=−3 USD à mesma cotação e hora.
Mais perguntas
Magic zero significa ordem manual?
Não. É uma etiqueta que um programa também pode deixar a zero. Cruze DEAL_REASON, ordem, identificador da posição e registos; comentário sozinho não resolve autoria.
LIFO muda o lucro do servidor?
Não neste modelo. É uma convenção analítica de ligar entradas a saídas. A conta continua com 16 USD líquidos no ciclo fechado, embora os contributos atribuídos mudem.
Posso comparar só lucros realizados?
Não se existirem parcelas abertas. Após 7003, FIFO tem +10 realizado e −10 flutuante; três comissões levam o conjunto a −3 USD à cotação assumida.
Como tratar histórico em falta?
Marque por reconciliar, tente recuperar a cadeia de ordens e negócios e confira a posição atual. Não estime uma entrada inexistente a partir de comentário ou preço médio final.
Fontes e verificação
- MT5: princípios de negociação
Netting, ordens, negócios e posição comum por símbolo.
- MQL5: propriedades dos negócios
Magic, motivo, ordem, posição, lucro, comissão, fee e swap.
- MQL5: propriedades das posições
Identificador do ciclo distinto do ticket e mudanças de serviço.
- MQL5: HistorySelectByPosition
Seleção por identificador, retorno booleano e substituição das listas por seleção individual.
Os cálculos usam pressupostos explícitos. Não substituem os dados atuais do mercado nem as condições do prestador.
