Cálculo de dinheiro de entrada e saída de um comércio..e mais
Results 1 to 10 of 10

Thread: Cálculo de dinheiro de entrada e saída de um comércio..e mais

  1. #1
    Só quero calcular em uma barra distinta (a barra é uma entre o tempo de abertura ou o tempo de fechamento) o valor dos pontos/dinheiro desta negociação!

    Procurando por esta fórmula:
    ProfitInMoney= (Abrir-fechar .........)*.....
    Existe uma mesma fórmula de pontos para cada alavancagem e tamanho de lote diferente?
    Quando tenho uma negociação com 1 lote ou 0,01 com 1:500 ou 1:100 tenho a mesma diferença de pontos...mas qual valor escrever em um gerenciador de negociação?

  2. #2
    Acredito que a razão para a pequena discrepância entre suas colunas O e P é que, sempre que você estiver negociando um par XXXYYY e YYY for uma moeda diferente da moeda de depósito da sua conta (digamos ZZZ), então TICKVALUE muda conforme o preço se move, porque é usado para converter YYY de volta para ZZZ, e a taxa de câmbio YYYZZZ quase certamente terá mudado entre a abertura e o fechamento da posição.
    //---- ei hanover.....
    ..... eu nunca pensei no fator de conversão de volta para usd..... você quase tem que estar correto .... a razão pela qual eu não postei nada ontem à noite foi porque meu trabalho foi de muito tempo atrás e meio esquecido .... para não mencionar que nunca descobri até o centavo ..... assim como você disse, tanto quanto me lembro, cada negociação de xxxusd estaria correta .... qualquer outra coisa tinha uma grande chance de ser alguns centavos de desconto ..... espero que sua negociação esteja indo bem ..... e seus extintores estejam totalmente carregados ..... h

  3. #3
    1 Anexo(s)
    por alguma razão, nunca consegui fazer com que os componentes individuais sempre igualassem o lucro do pedido .... talvez 10% do tempo seja um par de centavos ..... possivelmente é apenas um problema de arredondamento de dígitos ... .. abaixo está o script fácil de ler ..... talvez vocês possam ver meu erro .... veja se as colunas 'o' e 'p' correspondem
    Hayseed, TICKSIZE é sempre constante, até onde eu sei, e geralmente é o mesmo que POINT (exceto em casos raros, como emmzett aponta. Eu não tinha encontrado isso anteriormente, pois costumo trabalhar apenas com os principais). Acredito que a razão para a pequena discrepância entre suas colunas O e P é que, sempre que você estiver negociando um par XXXYYY e YYY for uma moeda diferente da moeda de depósito da sua conta (digamos ZZZ), então TICKVALUE muda conforme o preço se move, porque é usado para converter YYY de volta para ZZZ, e a taxa de câmbio YYYZZZ quase certamente terá mudado entre a abertura e o fechamento da posição. Para explicar usando MQL4, o que você está efetivamente fazendo é: open_value = open_priceTICKSIZE * tickvalue_at_time_of_ close * volume; close_value = close_priceTICKSIZE * tickvalue_at_time_of_close * volume; lucro = close_value - open_value; Considerando que eu espero que você salve o valor de TICKVALUE no momento em que a posição é aberta e faça o seguinte: open_value = open_priceTICKSIZE * tickvalue_at_time_of_ open * volume; close_value = close_priceTICKSIZE * tickvalue_at_time_of_close * volume; lucro = close_value - open_value; então qualquer discrepância deve ser apenas devido ao arredondamento. Se YYY e ZZZ forem iguais (por exemplo, se você negociar EURUSD e sua moeda de depósito for USD), não deverá haver discrepância. Pode haver razões adicionais que eu desconheço, mas tenho certeza que é isso. David _________________________ [EDIT] Por exemplo, realizando um dump de EURAUD, seu tickvalue é o mesmo que a taxa de câmbio AUDUSD atual (0,68514), pois a moeda de depósito é USD:

  4. #4
    {quote} Obrigado pelo aviso, mas nesse caso acho que seu cálculo deve ser: PL = priceDiffMODE_TICKSIZE * MODE_TICKVALUE * volume Você pode confirmar? Dividir por PONTO e TICKSIZE não me parece certo. Embora o lucro inflacionado seja atraente.
    Claro que voce esta certo. MODE_TICKSIZE já é um duplo absoluto, não um simples multiplicador (um int). Vem de mim não testando o que escrevo. Obrigado :-)

  5. #5
    3 Anexo(s)
    {quote} Obrigado pelo aviso, mas nesse caso acho que seu cálculo deve ser: PL = priceDiffMODE_TICKSIZE * MODE_TICKVALUE * volume Você pode confirmar? Dividir por PONTO e TICKSIZE não me parece certo. Embora o lucro inflacionado seja atraente.
    //----- ei hanover..... isso pode estar fora do tópico...... comecei a mencionar algo semelhante ontem à noite, mas decidi contra isso...... a necessidade do ticksize é ajustar o valor do tick para sua constante padrão..... tickvalue muda devido à mudança de preço entre 2 ticks..... você pode verificar isso em segundos com 1 linha de código de impressão.... se o preço saltar 10 pips em um único tick , o tickvalue seria 10 vezes maior.... a divisão do ticksize de 10 retorna o tickvalue para sua constante.... a mesma lógica é válida se o preço se mover 1/10 de um pip em um único tick..... todos ao todo, por algum motivo, nunca consegui que os componentes individuais sempre igualassem o lucro do pedido... ..... abaixo está o script fácil de ler ..... talvez vocês possam ver meu erro .... veja se as colunas 'o' e 'p' correspondem......h/-- -- Código inserido p = (OrderClosePrice()-OrderOpenPrice())*((MarketInfo(OrderSymbol()) ,MODE_TICKVALUE)/MarketInfo(OrderSymbol(),MODE_TICKSIZE)))*OrderLot s();/---- editar captura de tela adicionada de diferenças comuns na coluna o e p
    https://www.tradingintuitivo.com/att...7518612230.mq4
    https://www.tradingintuitivo.com/att...8383593575.ex4

  6. #6
    PL = priceDiffMODE_POINTMODE_TICKSIZE * MODE_TICKVALUE * volume
    Obrigado pelo aviso, mas nesse caso acho que seu cálculo deve ser: Código inserido PL = priceDiffMODE_TICKSIZE * MODE_TICKVALUE * volume Você pode confirmar? Dividir por PONTO e TICKSIZE não me parece certo. Embora o lucro inflacionado seja atraente.

  7. #7
    1 Anexo(s)
    double entry_price = Open[0];/ou o que você quiser double exit_price = Close[0];/ou o que você quiser que seja double volume_in_lots = 0.01;/microlote (ou qualquer tamanho de lote desejado) string symbol = Symbol();/ou qualquer símbolo que você queira double profit_in_money = (exit_price - entry_price)MarketInfo(symbol,MODE_POINT) * MarketInfo(symbol,MODE_TICKVALUE) * volume_in_lots; entry_price e exit_price podem ser quaisquer dois níveis de preço entre os quais você deseja calcular o valor monetário. O cálculo acima deve funcionar universalmente....
    Obrigado... muito bem explicado!

  8. #8
    Código inserido double entry_price = Open#91;0#93;;/ou o que você quiser double exit_price = Close#91;0#93;;/ou o que você quiser que seja double volume_in_lots = 0.01;/microlote (ou qualquer tamanho de lote desejado) string symbol = Symbol();/ou qualquer símbolo que você queira double profit_in_money = (exit_price - entry_price)MarketInfo(symbol,MODE_POINT) * MarketInfo(symbol,MODE_TICKVALUE) * volume_in_lots; entry_price e exit_price podem ser quaisquer dois níveis de preço entre os quais você deseja calcular o valor monetário. O cálculo acima deve funcionar universalmente. A alavancagem é irrelevante; apenas determina quanta margem (que equivale a dinheiro em sua conta) que você precisa para abrir uma posição. Provavelmente deve verificar o erro de divisão por zero, mas vou deixar isso para você fazer isso.

  9. #9

    double entry_price = Open[0];/ou o que você quiser double exit_price = Close[0];/ou o que você quiser que seja double volume_in_lots = 0.01;/microlote (ou qualquer tamanho de lote desejado) string symbol = Symbol();/ou qualquer símbolo que você queira double profit_in_money = (exit_price - entry_price)MarketInfo(symbol,MODE_POINT) * MarketInfo(symbol,MODE_TICKVALUE) * volume_in_lots; entry_price e exit_price podem ser quaisquer dois níveis de preço entre os quais você deseja calcular o valor monetário. O cálculo acima deve funcionar universalmente....
    Hanover, você tem um pequeno bug em sua lógica. @all: Antes de multiplicar com MODE_TICKVALUE, você deve dividir por MODE_TICKSIZE. MODE_TICKSIZE é sempre um múltiplo de MODE_POINT. Normalmente a relação é de 1:1, mas nem sempre é o caso, especialmente para CFDs. Código inserido PL = priceDiffMODE_POINTMODE_TICKSIZE * MODE_TICKVALUE * volume O que isso significa? Isso significa que existem alguns instrumentos raros em que MODE_POINT não é igual a MODE_TICKSIZE, por exemplo. um instrumento é precificado em incrementos de 0,05. Muitos anos atrás, era a maneira típica de cotar ações etc.

  10. #10
    eu nunca pensei no reverso de volta ao fator de conversão usd
    oi ha,
    Faz sentido quando penso nisso. Suponha que eu queira comprar EURAUD, o que significa que estou 'vendendo' AUD para comprar EUR à taxa EURAUD; mas se a minha moeda de depósito for USD, então eu preciso de alguma forma converter USD suficiente na minha conta para AUDs (eletrônicos) de antemão, para fornecer alguns AUDs para eu 'vender'. Daí a conversão da taxa AUDUSD que está incorporada ao TICKVALUE. Então a sequência inversa se aplica quando eu fecho a 'posição'. Claro que na realidade não estou comprando ou vendendo nada tangível, é tudo apenas um grande videogame eletrônico. Até eu (espero) retirar meus lucros.
    Enfim, espero que tenham tido um ótimo feriado, tudo de bom para 2020.
    DL

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.