Você está na página 1de 13

MetaTrader 5 apresenta sistema de contabilidade de

posição de hedge
mql5.com/en/articles/2299

A plataforma MetaTrader 5 foi originalmente projetada para negociação dentro do sistema


de contabilidade de posição de compensação. O sistema de compensação permite ter apenas
uma posição por instrumento financeiro, o que significa que todas as operações posteriores
naquele instrumento conduzem apenas ao fechamento, reversão ou alteração do volume da
posição já existente. A fim de expandir as possibilidades dos negociantes de Forex de varejo,
adicionamos o segundo sistema de contabilidade - hedging. Agora, é possível ter várias
posições por símbolo, incluindo as de direção oposta. Isso abre o caminho para a
implementação de estratégias de negociação com base no chamado "bloqueio" - se o preço se
mover contra um negociador, ele pode abrir uma posição na direção oposta.

Uma vez que o novo sistema é semelhante ao usado no MetaTrader 4, ele será familiar para
os traders. Ao mesmo tempo, os traders poderão desfrutar de todas as vantagens da quinta
versão da plataforma - preenchimento de pedidos usando vários negócios (incluindo
preenchimentos parciais), testador multimoedas e multithreaded com suporte para MQL5
Cloud Network e muito mais.

Agora, você pode usar uma conta para negociar nos mercados que aderem ao sistema de
compensação e permitir ter apenas uma posição por instrumento, e usar outra conta na
mesma plataforma para negociar Forex e aplicar hedge.

Este artigo descreve os sistemas de compensação e hedge em detalhes, bem como lança luz
sobre as mudanças relacionadas à implementação do segundo sistema de contabilidade.

A contabilidade da posição depende de uma conta de negociação


Um sistema de contabilidade de posição é definido em um nível de conta e exibido no
cabeçalho da janela do terminal e no Diário:
Para abrir uma conta de demonstração com cobertura, habilite a opção apropriada:
Para abrir uma conta real com hedge, entre em contato com sua corretora.

Sistema de rede

Com este sistema, você pode ter apenas uma posição comum para um símbolo ao mesmo
tempo:

Se houver uma posição aberta para um símbolo, executar um negócio na mesma


direção aumenta o volume dessa posição.
Se uma negociação for executada na direção oposta, o volume da posição existente
pode ser diminuído, a posição pode ser fechada (quando o volume da negociação for
igual ao volume da posição) ou revertida (se o volume da negociação oposta for maior
que a posição atual).

Não importa o que causou o negócio oposto - uma ordem de mercado executada ou uma
ordem pendente acionada.

O exemplo abaixo mostra a execução de duas ofertas de compra de EURUSD de 0,5 lotes
cada:
A execução de ambos os negócios resultou em uma posição comum de 1 lote.

Sistema de cobertura
Com este sistema, você pode ter várias posições abertas de um mesmo símbolo, incluindo
posições opostas.

Se você tiver uma posição aberta para um símbolo e executar um novo negócio (ou uma
ordem pendente for acionada), uma nova posição será aberta adicionalmente. Sua posição
atual não muda.

O exemplo abaixo mostra a execução de duas ofertas de compra de EURUSD de 0,5 lotes
cada:

A execução desses negócios resultou na abertura de duas posições distintas.

Impacto do sistema selecionado


Dependendo do sistema de contabilização de posição, algumas das funções da plataforma
podem ter comportamentos diferentes:

As regras de herança Stop Loss e Take Profit mudam.


Para fechar uma posição no sistema de compensação, deve-se realizar uma operação de
negociação oposta para o mesmo símbolo e mesmo volume. Para fechar uma posição
no sistema de hedge, selecione explicitamente o comando "Fechar Posição" no menu de
contexto da posição.
Uma posição não pode ser revertida no sistema de hedge. Neste caso, a posição atual é
fechada e uma nova com o volume restante é aberta.
No sistema de hedge, uma nova condição para cálculo de margem está disponível -
Margem de hedge.

Novo tipo de operação comercial - Fechar por

O novo tipo de operação comercial foi adicionado para contas de hedge - fechando uma
posição por outra. Esta operação permite fechar duas posições opostas em um único símbolo.
Se as posições opostas tiverem números de lotes diferentes, apenas uma ordem das duas
permanecerá aberta. Seu volume será igual à diferença dos lotes das posições fechadas,
enquanto a direção da posição e o preço de abertura serão iguais (em volume) ao maior das
posições fechadas.

Comparado com um único fechamento das duas posições, o fechamento por uma posição
oposta permite que os traders salvem um spread:

No caso de um único fechamento, os traders têm que pagar um spread duas vezes: ao
fechar uma posição de compra a um preço mais baixo (Bid) e ao fechar uma posição de
venda a um preço mais alto (Ask).
Ao usar uma posição oposta, um preço de abertura da segunda posição é usado para
fechar a primeira, enquanto um preço de abertura da primeira posição é usado para
fechar a segunda.
No último caso, um pedido "por perto" é feito. Tickets de posições fechadas são especificados
em seu comentário. Um par de posições opostas é fechado por duas negociações "out by". O
lucro / perda total resultante do fechamento de ambas as posições é especificado apenas em
um negócio.

Cálculo de margem no sistema de hedge de contabilidade de posição


Se o sistema de contabilidade da posição de hedge for usado, a margem é calculada usando
as mesmas fórmulas e princípios descritos acima. No entanto, existem alguns recursos
adicionais para várias posições do mesmo símbolo.

Posições / pedidos abrem na mesma direção

Seus volumes são somados e o preço de abertura médio ponderado é calculado para eles. Os
valores resultantes são usados para calcular a margem pela fórmula correspondente ao tipo
de símbolo.

Para pedidos pendentes (se a proporção da margem for diferente de zero), a margem é
calculada separadamente.

Posições / ordens opostas

As posições abertas com direções opostas do mesmo símbolo são consideradas cobertas ou
cobertas. Dois métodos de cálculo de margem são possíveis para tais posições. O método de
cálculo é determinado pelo corretor.

Usando a perna
Cálculo básico maior

Usado se "calcular
Usado se "calcular usando perna maior" não for especificado no usando perna maior"
campo "Margem coberta" da especificação do contrato. for especificado no
campo "Margem
O cálculo consiste em várias etapas: coberta" da
Para volume descoberto
especificação do
Usando a perna
contrato.
Cálculo básico maior
Cálculo de
Para o volume coberto (se o tamanho da margem coberta margem para
for especificado) pernas mais
Para pedidos pendentes curtas e mais
longas para
O valor da margem resultante é calculado como a soma das todas as
margens calculadas em cada etapa. posições
abertas e
Cálculo para volume descoberto ordens de
Cálculo do volume total de todas as posições e ordens de mercado.
mercado para cada uma das pernas - compra e venda. Cálculo da
Cálculo da posição média ponderada e preço de abertura da margem para
ordem de mercado para cada perna: (preço de abertura da cada tipo de
posição ou ordem 1 * volume da posição ou ordem 1 + ... + pedido
preço de abertura da posição ou ordem N * volume da pendente
posição ou ordem N) / (volume da posição ou ordem 1 + ... + separadamente
volume da posição ou ordem N). (Limite de
Cálculo do volume descoberto (o volume da perna menor é compra, Limite
subtraído do maior). de venda, etc.).
O volume calculado e o preço médio ponderado são usados Resumindo
para calcular a margem pela fórmula apropriada uma margem
correspondente ao tipo de símbolo. de perna mais
O valor médio ponderado do índice e da taxa é usado longa: posições
quando se leva em consideração o índice de margem e a longas e
conversão da moeda de margem em moeda de depósito. ordens de
mercado +
ordens longas
Cálculo do volume coberto pendentes.
Usado se o valor da "margem coberta " for especificado em uma
Resumindo
especificação do contrato. Nesse caso, a margem é cobrada pelo
uma margem
volume coberto, bem como pelo volume descoberto. de perna mais
curta: posições
Se a margem inicial for especificada para um símbolo, a margem
coberta é especificada como um valor absoluto (em termos curtas e ordens
monetários). de mercado +
ordens
Se a margem inicial não for especificada (igual a 0), o tamanho do pendentes
contrato é especificado no campo "Coberto". A margem é curtas.
calculada pela fórmula apropriada de acordo com o tipo de O maior de
instrumento financeiro, usando o tamanho do contrato todos os
especificado. Por exemplo, temos duas posições Comprar valores
EURUSD 1 lote e Vender EURUSD 1 lote, o tamanho do contrato calculados é
é 100.000. Se o valor de 100.000 for especificado no "Campo usado como o
coberto", a margem para as duas posições será calculada para 1 valor da
lote. Se você especificar 0, nenhuma margem será cobrada pelo margem final.
volume coberto (coberto).

Por cada lote coberto de uma posição, a margem é cobrada de


acordo com o valor especificado no campo "Margem Coberta" na
especificação do contrato:
Usando a perna
Cálculo básico maior
Cálculo do volume coberto para todas as posições abertas e
ordens de mercado (o volume descoberto é subtraído da
perna maior).
Cálculo da posição média ponderada e preço de abertura do
pedido de mercado: (preço de abertura da posição ou
pedido 1 * volume da posição ou pedido 1 + ... + preço de
abertura da posição ou pedido N * volume da posição ou
pedido N) / (volume de posição ou ordem 1 + ... + volume de
posição ou ordem N).
O volume calculado, o preço médio ponderado e o valor da
margem coberta são usados para calcular a margem pela
fórmula apropriada correspondente ao tipo de símbolo.
O valor médio ponderado do índice e da taxa é usado
quando se leva em consideração o índice de margem e a
conversão da moeda de margem em moeda de depósito.

Cálculo para pedidos pendentes


Cálculo da margem para cada tipo de pedido pendente
separadamente (Limite de compra, Limite de venda, etc.).
O valor médio ponderado do índice e taxa para cada tipo de
pedido pendente é usado ao levar em consideração o índice
de margem e converter a moeda da margem em moeda de
depósito.

Mudanças no MQL5
Agora, cada posição tem seu bilhete único. Geralmente corresponde ao bilhete de um pedido
usado para abrir a posição. Um tíquete é atribuído automaticamente a todas as posições
disponíveis após a atualização do terminal.

Ao modificar ou fechar uma posição no sistema de hedge, certifique-se de especificar o seu


tíquete (MqlTradeRequest :: tíquete). Você também pode especificar um tíquete no sistema
de compensação; no entanto, as posições são identificadas por um nome de símbolo.

MqlTradeRequest

MqlTradeRequest apresenta dois novos campos:


posição - bilhete de posição. Preencha-o ao trocar e fechar uma posição para sua clara
identificação. Geralmente corresponde ao bilhete de um pedido usado para abrir a
posição.
position_by - tíquete de posição oposta. É usado para fechar uma posição por uma
posição oposta (aberta no mesmo símbolo, mas na direção oposta).

struct MqlTradeRequest
{
Ação ENUM_TRADE_REQUEST_ACTIONS ; // Ação realizada tipo
ulong magic; // Número mágico do Expert Advisor
ulong order; //
Símbolo da string do bilhete do pedido ; // Nome do
símbolo
double volume; // Volume de negócio solicitado em lotes
double price; // Preço
double stoplimit; // Nível de ordem de limite de parada
double sl; // Nível de ordem Stop Loss
double tp; // nível de ordem Take Profit
ulong deviation; // Desvio máximo permitido do preço
solicitado
ENUM_ORDER_TYPE type; // Tipo de pedido
ENUM_ORDER_TYPE_FILLING type_filling; // Tipo de
atendimento do pedido ENUM_ORDER_TYPE_TIME type_time; // Tipo de tempo de
pedido
expiração de data e hora ; // Data de expiração do pedido
(para pedidos do tipo ORDER_TIME_SPECIFIED)
string comentário; // Comentário do pedido
posição ulong ; // Bilhete de
posição ulong position_by; // tíquete de posição oposta
};

MqlTradeTransaction

MqlTradeTransaction também apresenta os dois campos semelhantes:

position - ticket de uma posição afetada pela transação. É preenchido para transações
relacionadas ao tratamento de ordens de mercado
(TRADE_TRANSACTION_ORDER_ * exceto
TRADE_TRANSACTION_ORDER_ADD, onde um bilhete de posição ainda não foi
atribuído) e histórico de ordens (TRADE_TRANSACTION_HISTORY_ *).
position_by - tíquete de posição oposta. É usado para fechar uma posição por uma
posição oposta (aberta no mesmo símbolo, mas na direção oposta). Ele é preenchido
apenas para ordens fechando uma posição por uma posição oposta (perto) e negócios
fechando por uma posição oposta (saindo por).
struct MqlTradeTransaction
{
ulong deal; //
Pedido ulong do tíquete da transação ; //
Símbolo da string do bilhete do pedido ; // Nome do
símbolo
ENUM_TRADE_TRANSACTION_TYPE type; // Tipo de transação
ENUM_ORDER_TYPE order_type; // Tipo de pedido
ENUM_ORDER_STATE order_state; // Estado do pedido
ENUM_DEAL_TYPE deal_type; // Tipo de negócio
ENUM_ORDER_TYPE_TIME time_type; // Tipo de tempo do pedido
datetime time_expiration; // Data de vencimento do pedido
double price; // Preço
double price_trigger; // Preço limite de acionamento de ordem
de parada
double price_sl; // Nível de Stop Loss
double price_tp; // Nível Take Profit
double volume; // Volume em lotes
ulong position; // Posição dos tickets
ulong position_by; // Bilhetes de posição oposta
};

PositionGetTicket

A nova função PositionGetTicket retorna um tíquete de posição por um índice na lista de


posições abertas e seleciona automaticamente essa posição para trabalho posterior usando as
funções PositionGetDouble , PositionGetInteger e PositionGetString .

ulong PositionGetTicket (
int index // indexar na lista de posições
);

PositionSelectByTicket

A nova função PositionSelectByTicket seleciona uma posição aberta para trabalho posterior
por um tíquete especificado.

bool PositionSelectByTicket (
ulong ticket // position ticket
);

PositionSelect
PositionSelect seleciona uma posição por um nome de símbolo para trabalho posterior
usando as funções PositionGetDouble , PositionGetInteger e PositionGetString . No sistema
de hedge (onde pode haver várias posições em um único símbolo), a função seleciona a
posição com o tíquete mais baixo.

ACCOUNT_MARGIN_MODE

A nova propriedade ACCOUNT_MARGIN_MODE permite receber o modo de cálculo de


margem e contabilidade de posição em uma conta de negociação:

Identificador Descrição

ACCOUNT_MARGIN_MODE_RETAIL_NETTING Usado para o mercado de balcão ao


contabilizar posições no modo de
compensação (uma posição por
símbolo). O cálculo da margem é
baseado em um tipo de símbolo (
SYMBOL_TRADE_CALC_MODE ).

ACCOUNT_MARGIN_MODE_EXCHANGE Usado nos mercados de câmbio. O


cálculo da margem é baseado nos
descontos especificados nas
configurações do símbolo. Os
descontos são definidos pela
corretora, porém não podem ser
inferiores aos valores definidos na
bolsa.

ACCOUNT_MARGIN_MODE_RETAIL_HEDGING Usado para o mercado de balcão


com contabilidade de posição
independente (hedge, pode haver
várias posições em um único
símbolo). O cálculo da margem é
baseado em um tipo de símbolo
(SYMBOL_TRADE_CALC_MODE).
A presença de várias posições em
um único símbolo é considerada.

SYMBOL_MARGIN_HEDGED

A nova propriedade SYMBOL_MARGIN_HEDGED permite receber o valor de uma margem


coberta por um símbolo de negociação. O cálculo da margem no sistema de hedge de
contabilidade de posição foi descrito acima .
Novas constantes de negociação

Devido à adição do novo tipo de operação Fechar por, as novas propriedades comerciais
também apareceram:

TRADE_ACTION_CLOSE_BY - novo tipo de operação de negociação - fecha uma


posição por uma oposta.
ORDER_TYPE_CLOSE_BY - novo tipo de pedido - fecha uma posição por um oposto.
ORDER_POSITION_BY_ID - propriedade da nova ordem - tíquete de posição oposta
usado para fechar a atual.
DEAL_ENTRY_OUT_BY - novo tipo de negócio - feche uma posição por um oposto.

Bônus extra - cobertura e rede em nuvem MQL5

Now, you can use MetaTrader 5 to trade both stock markets and the popular retail Forex with
hedging. Developers of the automated systems applying hedging have received another
important advantage. Apart from the multithreaded tester, the entire computing capacity of
the MQL5 Cloud Network is at their disposal now.

Update your platform and try the new features!

Translated from Russian by MetaQuotes Software Corp.


Original article: https://www.mql5.com/ru/articles/2299

Warning: All rights to these materials are reserved by MetaQuotes Ltd. Copying or reprinting
of these materials in whole or in part is prohibited.

Last comments | Go to discussion (23)

Rodrigo Silva Cosme:


I see one great advantage when trading different time frames. On the netting system it was
necessary to keep virtual positions on each time frame, virtual stop loss and take profit
orders, etc. That was a lot of work. I could be long on EURUSD on H1, short on H8 and long
on D1 all with different stop loss levels and there was no easy way to handle that with the
netting system. With the possibility of closing different positions on the same currency that
problem is solved and trading on the way I described on the same currency is a lot easier.
Of course, that's a lot easier.

Você também pode gostar