Ah, aqui está o MAIS delicioso da "Sala de Leitura", vamos ler o que e como ...
Especialmente de um autor assim. :)
Eu também gostaria de ver a função de cálculo de swap. Existem 5 tipos de swaps, e cada um tem suas próprias nuances.
Às vezes, não é possível chegar ao lugar certo pelo método científico.
Encontrei três variantes por seleção, mas ainda há SYMBOL_SWAP_MODE_BY_INTEREST. Não posso verificá-la porque não consigo encontrar uma corretora com esse método de cálculo.
Por favor, se houver a possibilidade de postar no CodeBase a função de cálculo de swap para a moeda e o lote especificados, ficaremos gratos.
Eu também gostaria de ver a função de cálculo de swap. Existem 5 tipos de swaps, e cada um tem suas próprias nuances.
Às vezes, não é possível chegar ao lugar certo pelo método científico.
Encontrei três variantes por seleção, mas ainda há SYMBOL_SWAP_MODE_BY_INTEREST. Não posso verificá-la porque não consigo encontrar uma corretora com esse método de cálculo.
Por favor, se houver a possibilidade de postar no CodeBase a função de cálculo de swap para a moeda e o lote especificados, ficaremos gratos.
Если даже торговля на данном счете разрешена, то это еще не означает, что эксперт имеет право торговать. Чтобы проверить, разрешено ли торговать эксперту, пишем:
Quais são esses casos em que a negociação é permitida, mas o Expert Advisor não tem permissão para negociar?
Isso significa a proibição do corretor ou as configurações do terminal?
Por analogia com 4: - " ...se o especialista tem permissão para negociar e o fluxo para operações de negociação é livre..."
Ou seja, IsTradeAllowed = IsExpertEnabled + IsTradeContextBusy ??? ?
Artigo interessante e necessário! Tentei verificar as fórmulas desse artigo e o resultado foi o seguinte. Tomemos o EURGBP como exemplo. A moeda da conta está em dólares. O par de moedas mais próximo é EURUSD, ou seja, mode=true. Até aqui tudo bem? Usamos as fórmulas do artigo para determinar a margem necessária:
if(direction==POSITION_TYPE_BUY)
{
//--- citação reversa
if(mode)
{
//--- contar com o preço de compra para a cotação inversa
calc_price=tick.ask;
answer=lot*lot_size*calc_price;
}
...
if(direction==POSITION_TYPE_SELL)
{
//--- citação reversa
if(mode)
{
//--- contagem por preço de venda para a cotação inversa
calc_price=tick.bid;
answer=lot*lot_size*calc_price;
}
Ou seja, ao comprar, de acordo com o artigo, a margem necessária deve ser:
BUY: margem = lot*lot_size*tick_ask/leverage
e na venda:
VENDER: margem = lot*lot_size*tick_bid/leverage
Codificamos essas fórmulas em um EA simples e tentamos vender e comprar EURUSD com fundos baixos antecipadamente para que o metatrader nos diga qual é a margem necessária. Ao mesmo tempo, emitimos nossa margem calculada. Recebemos essas mensagens do testador:
2010.07.06 16:34:01 Core 1 no enough money [instant sell 0.10 EURGBP at 0.82227 sl: 0.83296 tp: 0.79796]
2010.07.06 16:34:01 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.91, NewFreeMargin: -112.91 - margem calculada pelo testador
2010.07.06 16:34:01 Core 1 Error: not enough money. Margem livre = 10, margem necessária = 122,899 - margem calculada por nós.
2010.07.06 16:34:01 Core 1 no enough money [instant buy 0.10 EURGBP at 0.81247 sl: 0.80191 tp: 0.82988]
2010.07.06 16:34:01 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.72, NewFreeMargin: -112.72 - margem calculada pelo testador
2010.07.06 16:34:01 Core 1 Error: not enough money. Margem livre = 10, margem necessária = 122,737 - margem calculada por nós.
Há uma diferença. Agora, alteramos as fórmulas de cálculo da margem necessária para
COMPRAR: margem = lote*tamanho do lote*tick_bid/alavancagem
VENDER: margem = lote*tamanho_do_lote*tick_ask/alavancagem
o que contradiz o artigo. Recebemos essas mensagens do testador:
2010.07.06 16:39:49 Core 1 no enough money [instant sell 0.10 EURGBP at 0.82227 sl: 0.83296 tp: 0.79796]
2010.07.06 16:39:49 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.91, NewFreeMargin: -112.91 - margem calculada pelo testador
2010.07.06 16:39:49 Core 1 Error: not enough money. Margem livre = 10, margem requerida = 122.911 - margem calculada por nós
2010.07.06 16:39:49 Core 1 no enough money [instant buy 0.10 EURGBP at 0.81247 sl: 0.80191 tp: 0.82988]
2010.07.06 16:39:49 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.72, NewFreeMargin: -112.72 - margem calculada pelo testador
2010.07.06 16:39:49 Core 1 Error: not enough money. Margem livre = 10, margem necessária = 122,722 - margem calculada por nós
.
Aqui, a margem calculada pelo Consultor especialista usando o método "errado" é exatamente a mesma que a margem calculada pelo testador. Acontece que, tanto no testador quanto no artigo, o bid e o ask são rearranjados ao calcular cruzamentos como EURGBP. Quem está certo: o artigo ou o testador?
O artigo é bom e útil para mim.
Tanto para entender quanto para economizar tempo. Muito obrigado
Só não entendo o que obtemos com essa função.
Se o valor da garantia for necessário, o valor do contrato não deveria ser dividido pela alavancagem?
- www.mql5.com
O artigo é bom e útil para mim.
Tanto para entender quanto para economizar tempo. Obrigado pela atenção
Eu simplesmente não entendo o que obtemos com essa função.
Se o tamanho da garantia exigida, então o valor do contrato não deveria ser dividido pela alavancagem?
Se o valor da margem for necessário, o valor do contrato não deveria ser dividido pela alavancagem?
- 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 Funções para gerenciamento de dinheiro em um conselheiro especialista foi publicado:
O desenvolvimento das estratégias de negócio foca principalmente em buscar padrões para entrar e sair do mercado, bem como manter posições. Se formos capazes de formalizar alguns padrões em regras para negociação automatizada, então, o negociante enfrenta o problema de cálculo do volume das posições, o tamanho das margens, bem como manter um nível seguro dos fundos de hipoteca para garantir posições abertas no modo automatizado. Neste artigo, usaremos a linguagem do MQL5 para construir exemplos simples para realizar estes cálculos.
Autor: MetaQuotes Software Corp.