English Русский 中文 Español Deutsch 日本語
Agora a plataforma MetaTrader 5 possui um sistema de cobertura de registro de posições

Agora a plataforma MetaTrader 5 possui um sistema de cobertura de registro de posições

MetaTrader 5Negociação | 22 março 2016, 07:50
8 923 1
MetaQuotes
MetaQuotes

A plataforma MetaTrader 5 foi inicialmente criada para trading de bolsa com registro de posições baseado na compensação. Ao fazer um registro baseado na compensação segundo um instrumento financeiro, você pode ter apenas uma posição, por isso, todas as subseqüentes operações do instrumento levarão à alteração do volume, ao fechamento ou à reversão da posição existente. Para ampliar as possibilidades dos traders de retail-Forex, foi adicionado à plataforma a cobertura (segundo sistema de registro). Agora, segundo o instrumento, você pode ter várias posições, incluindo posições opostas. Isto permite implementar estratégias de negociação com o assim chamado bloqueio, por outras palavras, se o preço estiver contra o trader, ele terá a possibilidade de abrir uma posição na direção oposta.

O novo sistema de registro é análogo ao utilizado na MetaTrader 4, o que faz com que seja familiar para os traders. Além disso, eles poderão utilizar todas as vantagens da quinta versão da plataforma: execução de ordens usando várias transações (incluindo a parcial), o testador multimonetário e multi-fio (multithread) com o apoio da rede de computação em nuvem MQL5 Cloud Network e muitas outras.

Agora, você pode em uma conta negociar na bolsa, onde se utiliza a compensação, e pode ter apenas um instrumento segundo uma posição. Além disso, na mesma plataforma, mas em outra conta, você pode negociar no Forex e utilizar a cobertura.

Mais à frente no artigo será falado detalhadamente acerca da compensação e da cobertura, bem como sobre alterações ligadas com a implementação de um segundo sistema de registro.


O registro de posições depende da conta de negociação

O tipo de registro de posições é definido no nível da conta, ele é exibido no cabeçalho da janela do terminal e, também, no diário:

Sistema de registro de posições na conta atual

Para abrir uma conta demo com cobertura, habilite a opção correspondente:

Abertura de uma conta demo com cobertura

Para abrir uma conta real com cobertura, entre em contato com o seu corretor.


Sistema de compensação

Este sistema de registro implica que num dado momento, possa haver apenas uma posição aberta, segundo o mesmo símbolo, na conta:

  • Se existir uma posição segundo um instrumento, ao realizar uma transação na mesma direção ocorrerá o aumento do volume dessa posição.
  • Ao realizar uma transação na direção oposta, ocorrerá a diminuição do volume da posição existente, quer o seu fechamento (ao realizar uma transação de volume idêntico ao da posição atual), quer a reversão (se o volume da transação oposta for superior ao da posição atual).

Neste caso, não importa a ação pela qual é realizada a transação na direção oposta, por outras palavras, é indiferente se foi resultado da execução de uma ordem de mercado ou devido à ativação de uma ordem pendente.

Abaixo mostramos um exemplo da execução de duas transações de compra de EURUSD com um volume de 0,5 lotes cada:

Sistema de compensação de registro de posições

Como resultado da execução destas transações, temos uma posição geral com um volume de 1 lote.


Sistema de cobertura

Este sistema de registro permite que você tenha múltiplas posições do mesmo instrumento, incluindo em direções opostas.

Se, segundo um instrumento de negociação, existir uma posição aberta e o trader executar uma nova transação (ou se estiver ativa uma ordem pendente), ocorrerá a abertura de uma nova posição. A posição atual não será alterada.

Abaixo mostramos um exemplo da execução de duas transações de compra de EURUSD com um volume de 0,5 lotes cada:

Sistema de compensação de registro de posições

Como resultado da execução destas transações, temos a abertura de duas posições distintas.


Alcance dos sistemas de registro

Dependendo do sistema de registro de posições na conta, algumas funções da plataforma de negociação se comportam de forma diferente:

  • As regras de herança de Stop Loss e Take Profit são alteradas.
  • Para fechar posições, no sistema de compensação, basta executar uma operação de negociação segundo o mesmo símbolo e o mesmo volume, mas na direção oposta. Para fechar uma posição no sistema de cobertura, selecione explicitamente o comando "Fechar posição" no menu de contexto da posição.
  • No sistema de cobertura não é possível virar a posição. Na verdade, a posição atual será fechada e aberta uma nova com o volume residual.
  • Fica habilitada a margem de cobertura, que é, por sua vez, uma nova condição para o cálculo da margem no sistema de cobertura.


Novo tipo de operação de negociação Close By

Para contas com cobertura de registro de posições, foi adicionado um novo tipo de operações de negociação que consiste no fechamento da posição usando a posição contrária. Esta operação permite fechar simultaneamente duas posições opostas de um mesmo instrumento. Se as posições opostas tiverem diferentes números de lotes, então, permanecerá aberta apenas uma das duas. O seu volume será igual à diferença dos lotes de duas posições fechadas, e a direção da posição e o preço de abertura será igual à maior (em volume) das posições fechadas.

Em comparação com o fechamento individual de duas posições, o fechamento da oposta permite ao trader poupar um spread:

  • Com o fechamento individual, o trader paga duas vezes pelo spread: fecha a compra ao menor preço (Bid), e a venda, ao maior (Ask).
  • Com o fechamento oposto, para fechar a primeira posição, usa-se o preço de abertura da segunda posição, e para fechar a segunda posição é utilizado o preço de abertura da primeira.

Fechamento de uma posição com outra oposta

Ao fechar a posição usando outra oposta, estabelece-se uma ordem do tipo "close by". No seu comentário são indicados os bilhetes das posições fechadas. O fechamento de duas posições opostas ocorre usando duas transações do tipo "out by". O tamanho do lucro/perda total, obtido como resultado do fechamento de ambas as posições, é indicado apenas em uma transação.

Operação de fechamento da posição usando outra oposta no histórico da conta


Particularidades do cálculo de margem no sistema de cobertura de registro de posições

Ao usar o sistema de cobertura de registro de posições, o cálculo da margem é realizado de acordo com as mesmas fórmulas e princípios que usa o sistema de compensação. No entanto, há certas peculiaridades, se você tiver várias posições do mesmo instrumento.

Posições/ordens abertas em uma direção

Para posições, soma-se o volume e calcula-se o preço médio ponderado de abertura. Os valores obtidos são utilizados para calcular a margem segundo a fórmula correspondente ao tipo de instrumento.

Para ordens pendentes (com um coeficiente de margem nulo), a margem será calculada individualmente.

Posições/ordens em distintas direções

São consideradas como posições cobertas ou tapadas, aquelas posições abertas em um mesmo instrumento, mas em direções distintas. Há duas maneiras de calcular a margem dessas posições. O método de cálculo é determinado pela corretora.

Configurações do cálculo de margem de cobertura na especificação do contrato


Cálculo básico
Cálculo em conformidade com o maior lado
Usa-se, se no campo "Margem de cobertura" nas especificações do contratonão tiver sido indicado o valor "cálculo em conformidade com a parte maior".

O cálculo consiste em várias etapas:
  • Para volume não coberto
  • Para o volume volume coberto (se estiver indicado o tamanho da margem de cobertura)
  • Para ordens pendentes
  • O tamanho final da margem calcula-se como a soma da margem calculada em cada etapa.

Cálculo para o volume não coberto
  • Calcula-se o volume total de todas as posições e ordens pendentes para cada uma das partes, buy e sell.
  • Calcula-se o preço médio ponderado de abertura de posições e ordens de mercado: (preço de abertura da posição ou ordem 1 * volume da posição ou ordem 1 + ... + preço de abertura da posição ou ordem N * volume da posição ou ordem N) / (volume da posição ou ordem 1 + ... + volume da posição ou ordem N).
  • Calcula-se o volume não coberto (do volume da parte maior subtrai-se a parte menor).
  • Usando o volume calculado e o preço médio ponderado, realiza-se o cálculo da margem segundo a fórmula correspondente ao  tipo de instrumento.
  • Ao calcular o coeficiente da margem e a conversão da moeda da margem para a moeda do depósito usam-se o valor médio ponderado do coeficiente e da taxa de câmbio.

Cálculo para o volume coberto

Usa-se, se nas especificações do contrato tiver sido indicado o valor "Margem de cobertura". Neste caso, a margem é cobrada tanto para o volume coberto, como para o volume não coberto.

Se, para o instrumento, tiver sido estabelecida uma margem inicial, então, a margem de cobertura é indicada como valor absoluto (em dinhero).

Se não se tiver estabelecido uma margem inicial (igual a 0), no campo "Coberto" indica-se o tamanho do contrato. O cálculo da margem realiza-se segundo a fórmula que corresponde ao tipo de instrumento, usando o tamanho do contrato indicado. Por exemplo, temos duas posições Buy EURUSD 1 lot e Sell EURUSD 1 lot, o tamanho do contrato será igual a 100 000. Se no campo "Coberto" se indicar o valor 100 000, então, para ambas as posições a margem será tomada como para 1 lote. Se for indicado 0, não será cobrada a margem pelo volume coberto.

Por cada lote coberto de posições, a margem é cobrada de acordo com o valor indicado no campo "Margem de cobertura" nas especificações do contrato:
  • Calcula-se o volume coberto de todas as posições tanto abertas como de mercado (do volume da parte maior subtrai-se o volume não coberto).
  • Calcula-se o preço médio ponderado de abertura de posições e ordens: (preço de abertura da posição ou ordem 1 * volume da posição ou ordem 1 + ... + preço de abertura da posição ou ordem N * volume da posição ou ordem N) / (volume da posição ou ordem 1 + ... + volume da posição ou ordem N).
  • Usando o volume calculado, o preço médio ponderado e o tamanho da margem de cobertura, realiza-se o cálculo da margem conforme a fórmula correspondente ao tipo de instrumento.
  • Ao calcular o coeficiente da margem e a conversão da moeda da margem para a moeda do depósito usam-se o valor médio ponderado do coeficiente e da taxa de câmbio.

Cálculo para ordens pendentes
  • Calcula-se a margem de cada tipo de ordens pendentes (separadamente para Buy Limit, separadamente para Sell Limit, etc.)
  • Ao calcular o coeficiente da margem e a conversão da moeda da margem para a moeda do depósito usam-se o valor médio ponderado do coeficiente e da taxa de câmbio para cada tipo de ordens pendentes.
Usa-se, se no campo "Margem de cobertura" nas especificações do contrato tiver sido indicado o valor "cálculo em conformidade com a parte maior".
  • Calcua-se a margem para a parte maior e menor de todas as posições abertas e ordens de mercado.
  • Calcula-se a margem de cada tipo de ordens pendentes (separadamente para Buy Limit, separadamente para Sell Limit, etc.)
  • Soma-se a margem da parte maior: posições longas e ordens de mercado + ordens longas pendentes.
  • Soma-se a margem da parte menor: posições curtas e ordens de mercado + ordens curtas pendentes.
  • Como tamanho total da margem usa-se o maior dos valores calculados.


Alterações na MQL5

Agora todas as posições têm o seu próprio bilhete. Normalmente, coincide com o bilhete da ordem com a qual a posição foi aberta. O bilhete será atribuído automaticamente a todas as posições anteriormente abertas, após a atualização para uma nova versão do terminal.

Para modificar ou fechar posições no sistema de cobertura, você deve especificar o seu bilhete (MqlTradeRequest::ticket). No sistema de compensação o bilhete também pode ser especificado, mas a identificação da posição é realizada segundo o nome do símbolo.


MqlTradeRequest

À estrutura da solicitação de negociação MqlTradeRequest foram adicionados dois novos campos:

  • position — bilhete de posição. Deve ser preenchido ao alterar e fechar a posição para a sua identificação inequívoca. Normalmente, corresponde ao bilhete de ordem, do qual, como resultado, a posição foi aberta.
  • position_by — bilhete da posição oposta. Utiliza-se ao fechar uma posição usando outra oposta, se estiver aberta no mesmo instrumento, mas na direção oposta.
struct MqlTradeRequest
  {
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Tipo de ação executada
   ulong                         magic;            // Carimbo do expert (identificador magic number)
   ulong                         order;            // Bilhete da ordem
   string                        symbol;           // Nome do instrumento financeiro
   double                        volume;           // Volume solicitado da negociação em lotes
   double                        price;            // Preço 
   double                        stoplimit;        // Nível da ordem Stop Limit
   double                        sl;               // Nível da ordem Stop Loss
   double                        tp;               // Nível da ordem Take Profit
   ulong                         deviation;        // Desvio máximo admissível no que respeita ao preço solicitado
   ENUM_ORDER_TYPE               type;             // Tipo de ordem
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Tipo de ordem segundo a execução
   ENUM_ORDER_TYPE_TIME          type_time;        // Tipo de ordem segundo o tempo da ação
   datetime                      expiration;       // Prazo de validade da ordem (para ordens do tipo ORDER_TIME_SPECIFIED)
   string                        comment;          // Comentários anexados à ordem
   ulong                         position;         // Bilhete da posição
   ulong                         position_by;      // Bilhete da posição oposta
  };

MqlTradeTransaction

À estrutura da transação financeira MqlTradeTransaction foram adicionados dois campos análogos:

  • position — bilhete da posição que foi afetado pela transação. Preenche-se para transações relacionadas com o processamentos das ordens de mercado (TRADE_TRANSACTION_ORDER_* exceto TRADE_TRANSACTION_ORDER_ADD, onde o bilhete da posição ainda não foi atribuído) e o histórico de ordens (TRADE_TRANSACTION_HISTORY_*).
  • position_by — bilhete da posição oposta. Utiliza-se ao fechar uma posição usando outra oposta, se estiver aberta no mesmo instrumento, mas na direção oposta. Preenche-se apenas para ordens de fechamento da posição oposta (close by) e transações de fechamento da oposta (out by).
struct MqlTradeTransaction
  {
   ulong                         deal;             // Bilhete da operação
   ulong                         order;            // Bilhete da ordem
   string                        symbol;           // Nome do instrumento financeiro
   ENUM_TRADE_TRANSACTION_TYPE   type;             // Tipo de transação financeira
   ENUM_ORDER_TYPE               order_type;       // Tipo de ordem
   ENUM_ORDER_STATE              order_state;      // Estado da ordem
   ENUM_DEAL_TYPE                deal_type;        // Tipo de transação
   ENUM_ORDER_TYPE_TIME          time_type;        // Tipo de ordem segundo o tempo da ação
   datetime                      time_expiration;  // Prazo de validade da ordem
   double                        price;            // Preço 
   double                        price_trigger;    // Preço da ativação da ordem stop-limit
   double                        price_sl;         // Nível Stop Loss
   double                        price_tp;         // Nível Take Profit
   double                        volume;           // Volume em lotes
   ulong                         position;         // Bilhete da posição
   ulong                         position_by;      // Bilhete da posição oposta
  };


PositionGetTicket

A nova função PositionGetTicket devolve o bilhete da posição segundo o índice na lista de posições abertas e seleciona automaticamente esta posição para trabalhar com ela no futuro usando as funções PositionGetDouble, PositionGetInteger, PositionGetString.

ulong  PositionGetTicket(
   int  index      // número na lista de posições
   );


PositionSelectByTicket

A nova posição PositionSelectByTicket seleciona uma posição aberta para trabalhar com ela no futuro segundo o bilhete indicado.

bool  PositionSelectByTicket(
   ulong   ticket     // bilhete da posição
   );


PositionSelect

A PositionSelect seleciona uma posição segundo o nome do símbolo para trabalhar com ela no futuro usando as funções PositionGetDouble, PositionGetInteger, PositionGetString. No sistema de cobertura de registro de posições, onde podem existir várias posições segundo um símbolo, a função selecionará a posição com o menor bilhete.


ACCOUNT_MARGIN_MODE

A nova propriedade ACCOUNT_MARGIN_MODE permite obter o modo de cálculo da margem e do registro das posições na conta:

Identificador
Descrição
ACCOUNT_MARGIN_MODE_RETAIL_NETTING
Usa-se para o mercado de balcão ao registrar as posições no modo "compensação" (segundo um símbolo pode existir apenas uma posição). O cálculo da margem é realizado com base no tipo de instrumento (SYMBOL_TRADE_CALC_MODE).
ACCOUNT_MARGIN_MODE_EXCHANGE
Usa-se para o mercado de bolsa. O cálculo da margem é realizado com base nos descontos indicados nas configuraçãoes dos instrumentos. Os descontos são estabelecidos pela corretora, no entanto não podem ser inferiores aos valores determinados pela bolsa.
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING
Usa-se para o mercado de balcão ao ser realizado o registro independente de posições ("cobertura", segundo um símbolo, podem existir várias posições). O cálculo da margem realiza-se com base no tipo de instrumento (SYMBOL_TRADE_CALC_MODE) e tendo em conta a existência de várias posições dum mesmo símbolo.


SYMBOL_MARGIN_HEDGED

A nova propriedade SYMBOL_MARGIN_HEDGED permite obter o tamanho da margem de cobertura de um instrumento de negociação. As particularidades do cálculo da margem com o sistema de cobertura de registro de posições são exibidas acima.


Novas constantes de negociação

Por causa da adição do novo tipo de operação de negociação "Close by", apareceram novas propriedades de negociação:


A cobertura e a MQL5 Cloud Network são um bónus adicional

Agora, usando a MetaTrader 5, você pode negociar tanto nos mercados de bolsa, como no popular retail-Forex com cobertura. E os desenvolvedores de sistemas automáticos, que usam cobertura, obtiveram mais uma vantagem importante: agora não só têm à sua disposição o testador multi-fio (multithread), mas também a poderosa rede de computação em nuvem distribuída MQL5 Cloud Network.

Atualize e use as novas possibilidades!

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/2299

Últimos Comentários | Ir para discussão (1)
patrickrico
patrickrico | 4 mai 2016 em 17:31
o

ola , boa tarde. como faço pra usar minha conta demo normal sem ser a hedge, quero usar ela como estava antes. mas nao consigo . obrigado.

MQL5 para iniciantes: Proteção antivandalismo de objetos gráficos MQL5 para iniciantes: Proteção antivandalismo de objetos gráficos
O que o seu programa deve fazer, se os painéis de controle gráfico foram removidos ou modificados por alguém? Neste artigo, vamos mostrar a você o porquê de não ter objetos no gráfico "sem dono" e como não perder o controle sobre eles, se forem renomeados ou excluídos após o aplicativo ser deletado.
MQL5 Cookbook: Implementando seu próprio Depth of Market (Book de Ofertas) MQL5 Cookbook: Implementando seu próprio Depth of Market (Book de Ofertas)
Este artigo demonstra como utilizar o Depth of Market de forma programática e descreve o princípio de funcionamento da classe CMarketBook, que pode expandir a biblioteca padrão de classes de MQL5 e oferecer métodos convenientes para usar o Depth of Market (DOM). No Brasil o Livro de Ofertas faz o papel do DOM e registra todas as ordens por nível de preço.
Avaliação e seleção de variáveis para os modelos de aprendizado da máquina Avaliação e seleção de variáveis para os modelos de aprendizado da máquina
Este artigo foca sobre as especificidades de escolha, o pré-condicionamento e avaliação das variáveis de entrada (preditoras) para uso em modelos de aprendizagem da máquina. Novas abordagens e oportunidades de análises preditoras profundas e suas influências no possível sobre-ajuste (overfitting) dos modelos serão consideradas. O resultado global do uso de modelos, em grande parte, depende do resultado desta etapa. Vamos analisar dois pacotes, oferecendo abordagens novas e originais para a seleção dos preditores.
Desenhando Resistência e Níveis de Suporte Com MQL5 Desenhando Resistência e Níveis de Suporte Com MQL5
Este artigo descreve um método para encontrar quatro pontos extremos, onde baseado neles, se desenha os níveis de suporte e de resistência. Para encontrar o extremos num gráfico de um par de moedas, foi usado o indicador RSI. Para dar um exemplo, nós fornecemos um código de indicador que exibe os níveis de suporte e resistência.