Programmers I'm stumped Ajude-me por favor !!
Results 1 to 6 of 6

Thread: Programmers I'm stumped Ajude-me por favor !!

  1. #1
    Oi para todos os programadores. Estou totalmente perplexo
    . Como obtenho um número para arredondar para o décimo mais próximo? Estou programando no MQL4. Um exemplo seria digamos lotsize = (lote0) * accteqty ();
    tamanho do lote = tamanho do lote1000;
    Vamos dizer que se trata de .14578 como eu poderia arredondar para .2.
    Qualquer ajuda que vocês pudessem me dar seria muito apreciada. Eu sei que provavelmente é algo simples
    . Agradecemos antecipadamente pela ajuda ... Valerie ....





  2. #2
    Olá valerie! Primeiro de tudo, eu não sou um MetaTrader-Programmer (eu apenas testei por cerca de 2 semanas agora), mas sua pergunta é meio universal. Então, uma breve olhada no MetaQuote Language Editor mostrou em Dictionary (no lado direito da tela) e lá sob o tópico Math Trig a entrada para a função que você está procurando: ela é chamada MathRound (). Se você clicar neste tópico, uma pequena ajuda será exibida. Então, como eu nunca programei com o MetaTrader, eu daria a dica adicional para tentar o seguinte: Como o MathRound é arredondado para o INTEGER mais próximo, você provavelmente multiplicaria primeiro por 10. No exemplo mencionado acima, isso seria: .14578 * 10 - 1.4578 em seguida, chame MathRound (1,4578) e o resultado seria 1,0 - divida novamente por 10 - 0,1. Isso significa que seria arredondar para baixo para o inteiro mais próximo. A partir daí, você pode ajustar-se facilmente ao tamanho do seu lote. MAS, se você quiser sempre arredondar UP para o próximo Integer mais alto você faria adicionalmente o seguinte: MathMod (.14578, .1) Se o resultado for gt; 0, então há um descanso e você precisa adicionar uma unidade .1 para o resultado acima que você recebeu usando MathRound (). Espero que isso ajude, tente um pouco ...

  3. #3
    Oi para todos os programadores. Estou totalmente perplexo
    . Como obtenho um número para arredondar para o décimo mais próximo? Estou programando no MQL4. Um exemplo seria digamos lotsize = (lote0) * accteqty (); lotsize = lotsize1000; Vamos dizer que se trata de .14578 como eu poderia arredondar para .2. Qualquer ajuda que vocês pudessem me dar seria muito apreciada. Eu sei que provavelmente é algo simples
    . Agradecemos antecipadamente pela ajuda ... Valerie ....

    Você também pode tentar a função NormalizeDouble () ver referência
    http://docs.mql4.com/convert/NormalizeDoublepara informações. Alguns exemplos do código de Phoenix de Hendrick: lote = NormalizeDouble (AccountFreeMargin () * Risk1000.0,1) lote = NormalizeDouble (lote de lote * perdasDecreaseFactor, 1) Então você pode precisar de uma linha como esta: if (lotlt; 0,1) lote = 0,1

  4. #4
    Olá valerie! Primeiro de tudo, eu não sou um MetaTrader-Programmer (eu apenas testei por cerca de 2 semanas agora), mas sua pergunta é meio universal. Então, uma breve olhada no MetaQuote Language Editor mostrou em Dictionary (no lado direito da tela) e lá sob o tópico Math Trig a entrada para a função que você está procurando: ela é chamada MathRound (). Se você clicar neste tópico, uma pequena ajuda será exibida. Então, como eu nunca programei com o MetaTrader, eu daria a dica adicional para tentar o seguinte: Como o MathRound é arredondado para o INTEGER mais próximo, você provavelmente multiplicaria primeiro por 10. No exemplo mencionado acima, isso seria: .14578 * 10 - 1.4578 em seguida, chame MathRound (1,4578) e o resultado seria 1,0 - divida novamente por 10 - 0,1. Isso significa que seria arredondar para baixo para o inteiro mais próximo. A partir daí, você pode ajustar-se facilmente ao tamanho do seu lote. MAS, se você quiser sempre arredondar UP para o próximo Integer mais alto você faria adicionalmente o seguinte: MathMod (.14578, .1) Se o resultado for gt; 0, então há um descanso e você precisa adicionar uma unidade .1 para o resultado acima que você recebeu usando MathRound (). Espero que isso ajude, tente um pouco ...
    McD
    Obrigado McD isso vai ser muito útil .....

  5. #5
    Você também pode tentar a função NormalizeDouble () ver referência
    http://docs.mql4.com/convert/NormalizeDoublepara informações. Alguns exemplos do código de Phoenix de Hendrick: lote = NormalizeDouble (AccountFreeMargin () * Risk1000.0,1) lote = NormalizeDouble (lote de lote * perdasDecreaseFactor, 1) Então você pode precisar de uma linha como esta: if (lotlt; 0,1) lote = 0,1
    Obrigado nvwine de fato, é onde eu tenho um monte de minhas idéias de programação. Além disso, olhando para a visão web metatrader. Eu ainda sou um novato quando se trata de programação, mas estou chegando lá. Valerie valerie ...

  6. #6
    Eu só quero agradecer a todos que responderam a este tópico e um agradecimento especial a Harris que me enviou hoje cedo. É bom saber que você tem um lugar amigável para trocar idéias e obter ajuda quando não consegue descobrir sozinho. Obrigado a todos ... Valerie ...
    Ps ... Obrigado por iniciar este site. Isso é de longe fanfu ** intastic ..

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.