Agora a plataforma MetaTrader 5 possui um sistema de cobertura de registro de posições
MetaQuotes | 22 março, 2016
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:
Para abrir uma conta demo com cobertura, habilite a opção correspondente:
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:
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:
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.
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.
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.
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:
Cálculo para o volume não coberto
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:
Cálculo para 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".
|
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.
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:
- TRADE_ACTION_CLOSE_BY — novo tipo de operação de negociação — fechamento da posição oposta.
- ORDER_TYPE_CLOSE_BY — novo tipo de ordem — fechamento da posição oposta.
- ORDER_POSITION_BY_ID — nova propriedade da ordem — bilhete da posição oposta que se usa para fechar a atual.
- DEAL_ENTRY_OUT_BY — novo tipo de transação - fechamento da posição oposta.
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!