Opreço de abertura é normalizado por Digits por algum motivo.
A comissão é calculada com um erro e lentamente: ela é normalizada e dobrada a cada etapa do ciclo.
Opreço de abertura é normalizado por Digits por algum motivo.
A comissão é calculada com um erro e lentamente: ela é normalizada e dobrada a cada etapa do ciclo.
Obrigado por sua opinião.
Verifiquei o código referente à normalização. Há apenas dois casos na classe CHedgePositionInfo: comissão e margem. Os preços permanecem não normalizados. O preço de abertura, pelo que entendi, é implicitamente normalizado para a impressão no script de teste Test_hedge_properties.mq5.
Em seguida, sobre a comissão. Você a comparou com os registros na guia "History"? Lá, para cada negociação, o valor da comissão é normalizado com uma precisão de 2. E a duplicação está levando em conta o momento da saída(DEAL_ENTRY_OUT). Ou seja, o painel reflete a comissão para o ciclo completo - abertura e fechamento. Há uma menção sobre isso no artigo.
Obrigado por sua opinião.
Verifiquei o código referente à normalização. Há apenas dois casos na classe CHedgePositionInfo: comissão e margem. Os preços permanecem não normalizados. O preço de abertura, pelo que entendi, é implicitamente normalizado para a impressão no script de teste Test_hedge_properties.mq5.
Sim, era sobre a impressão.
Depois, sobre a comissão. Você a comparou com os registros na guia "History"? Lá, para cada negociação, o valor da comissão é normalizado para o valor mais próximo de 2. E a duplicação está levando em conta o momento da saída(DEAL_ENTRY_OUT). Ou seja, o painel reflete a comissão para o ciclo completo - abertura e fechamento. Há uma menção a isso no artigo.
Não, eu estava julgando pelo código. Abrir uma posição e depois fechar uma parte dela. De acordo com seu código, a comissão da posição atual não será alterada.
Além disso, dobrar a posição é uma boa intenção que cria um problema. A questão é que você precisa que o saldo seja igual ao patrimônio líquido + PositionCommission depois de fechar todas as posições. Mas, nesse caso, não deve haver duplicação, porque o MT5 já refletiu a comissão de abertura no saldo ao abrir as posições.
E é muito caro realizar a normalização em cada etapa do ciclo ao calcular a comissão. Isso é importante ao otimizar.
...Não, a julgar pelo código. Abra uma posição e depois feche parte dela. De acordo com seu código, a comissão da posição atual não será alterada.
Além disso, a duplicação é uma boa intenção que cria um problema. A questão é que você precisa que o saldo seja igual ao patrimônio líquido + PositionCommission depois de fechar todas as posições. Mas, nesse caso, não deve haver duplicação, porque o MT5 já refletiu a comissão de abertura no saldo ao abrir as posições.
Sim, ela não será alterada. O objetivo era mostrar a comissão máxima que pagamos no total para o hedge atual. E, além disso, já pagamos parte dela e pagaremos a segunda parte mais tarde. Mas há nuances.
Por exemplo, existe um tipo de transação chamado DEAL_ENTRY_OUT_BY. Não há comissão alguma, pelo menos com minha corretora. A comissão também pode mudar (a entrada e a saída podem ter custos diferentes) se a moeda da conta não coincidir com a moeda base. Portanto, meu exemplo está longe de ser ideal....
O que o faz pensar que eu preciso disso? Acabei de mostrar uma das maneiras de calcular custos indiretos como a comissão.
Bem, ao calcular a comissão, é muito caro normalizar em cada etapa do loop. Isso é importante na otimização.
Exceto para otimização. Bem, ninguém o impede de fazer suas próprias alterações e levá-las em conta no código.
Sim, isso não mudará. O objetivo era mostrar o valor máximo de comissão que pagamos no total para o hedge atual. E, além disso, já pagamos parte dela e pagaremos a segunda parte mais tarde. Mas há nuances.
Por exemplo, existe um tipo de transação chamado DEAL_ENTRY_OUT_BY. Não há comissão alguma, pelo menos com meu corretor.
CloseBy não está sujeito a comissão por definição.
A comissão também pode mudar (a entrada e a saída podem ter custos diferentes) se a moeda da conta não for a mesma que a moeda base. Portanto, meu exemplo está longe de ser perfeito....
O que o faz pensar que eu preciso disso? Acabei de mostrar uma das maneiras de calcular custos indiretos como a comissão.
Porque na linguagem do MT4 Equity = Saldo + Lucro + Swap + Comissão. Essa é a lógica mais comum. Mas é claro que você pode ter sua própria lógica.
Exceto pela otimização. Bem, ninguém o impede de fazer suas próprias alterações e levá-las em conta no código.
Os desenvolvedores estão tentando tornar o Otimizador mais rápido. Mas o código lento é permitido nos artigos. Parece estranho.
Porque, na linguagem do mesmo MT4, patrimônio líquido = saldo + lucro + swap + comissão. Essa é a lógica mais comum. Mas é claro que você pode ter sua própria lógica.
Você não vai acreditar em mim, eu penso da mesma forma sobre o patrimônio líquido :-))))
Farei uma escolha para o método de comissão, como contar. Fazer alterações no código...
...Os desenvolvedores falam em tornar o Otimizador mais rápido. Mas nos artigos eles permitem código lento. Parece estranho.
Em linguagem diplomática. Você ainda está fervendo? - Estou testando tudo na nuvem há muito tempo e não me preocupo com a existência de normalizações desnecessárias e macros de várias linhas em algum lugar...
Estou testando tudo na nuvem há muito tempo e não me preocupo com o fato de que em algum lugar há normalizações desnecessárias e nenhuma macro de várias linhas...
Parece ser uma tendência de longa data substituir até mesmo a otimização algorítmica mais simples pelo poder do hardware. Eu não posso fazer isso.
Até mesmo a otimização algorítmica mais simples sendo substituída pelo poder do hardware é aparentemente uma tendência estabelecida há muito tempo. Não posso fazer isso.
A geração do gigahertz e do gigabyte.
Hi,
Quando baixei o arquivo zip, extraí-o e abri os arquivos no editor, mas quando os compilei, eles retornaram com muitos erros.
Há algo que eu possa usar?
Obrigado
Se você seguir meu caminho, não haverá erros. O procedimento é simples. Abra seu MetaEditor e:
1) crie uma subpasta "Hedge" na pasta "Shared Projects" ( Projetos compartilhados);
2) coloque os arquivos de origem na subpasta.

Em seguida, você pode compilar o HedgePropertiesEA.mq5 (um consultor especialista) e o Test_hedge_properties.mq5 (um script). Quando a compilação for concluída com êxito, você encontrará os executáveis no navegador do terminal.

- 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
Novo artigo Receitas MQL5 – Obtendo as propriedades de uma posição de cobertura aberta foi publicado:
A plataforma MetaTrader 5 não é apenas multimercado, pois ela também permite que utilizar diferentes sistemas de registro de posição. Esses recursos expandem significativamente as ferramentas para a implementação e formalização de ideias de negociação. O artigo trata de como processar e levar em conta as propriedades das posições quando elas são registradas independentemente (cobertura - 'hedge'). Além disso, é proposta uma classe derivada, é exemplificado como processar e obter as propriedades de uma posição de cobertura.
Relativamente recentemente no terminal de negociação MetaTrader 5 surgiu a capacidade oportunidade de abrir ordens multidirecionais. Esse sistema de registro de ordens é chamado de cobertura (em inglês, 'hedge'). Esse sistema de ordens permite que você transfira facilmente os algoritmos de negociação do MetaTrader 4 para a quinta versão do terminal, aproveitando ao máximo sus recursos. Você pode saber mais sobre a cobertura do MetaTrader 5 no artigo "Agora a plataforma MetaTrader 5 possui um sistema de cobertura de registro de posições".
Esse artigo fala sobre as propriedades da posição agregada, tratada no sistema de cobertura.
Fig. 4 Painel de propriedades da posição de cobertura
Autor: Denis Kirichenko