Resultados 1 al 6 de 6

Tema: Programadores Estoy perplejo, ¡Ayúdame por favor!

  1. #1
    Hola a todos los programadores. Estoy totalmente perplejo
    . ¿Cómo obtengo un número para redondear a la décima más cercana? Estoy programando en MQL4. Se dejaría un ejemplo, decir mucho a tamaño = (lote0) * accteqty ();
    tamaño de lote = tamaño de lote1000;
    digamos que resulta ser .14578 cómo podría hacer que se redondeara a .2.
    Cualquier ayuda que ustedes me puedan dar sería muy apreciada. Sé que probablemente sea algo simple.
    . Gracias de antemano por la ayuda ... Valerie ....





  2.                         
    Publicidad
  3. #2
    Hola valerie En primer lugar, NO soy un programador de MetaTrader (solo lo probé durante aproximadamente 2 semanas), pero su pregunta es algo universal. Por lo tanto, una breve mirada en MetaQuote Language Editor se muestra en el Diccionario (en el lado derecho de la pantalla) y allí, en el tema Matemáticas, active la entrada para la función que está buscando: se llama MathRound (). Si hace clic en este tema, se mostrará una breve ayuda. Entonces, ya que nunca programé con MetaTrader, daría la pista adicional para probar lo siguiente: como MathRound redondea al INTEGER más cercano, lo más probable es que primero se multiplique por 10. En el ejemplo mencionado anteriormente, esto sería: .14578 * 10 - 1.4578 luego llame a MathRound (1.4578) y el resultado sería 1.0 - divídalo nuevamente entre 10 - 0.1 Esto significa que redondeará ABAJO al número entero más cercano. A partir de ahí, puede adaptarse fácilmente a su tamaño de lote. PERO, si desea siempre redondear hacia arriba al siguiente Integer superior, también haría lo siguiente: MathMod (.14578, .1) Si el resultado es gt; 0, entonces hay un descanso y debe agregar una unidad .1 al resultado anterior que recibió utilizando MathRound (). Espero que esto ayude, intente un poco ...

  4. #3
    Cita Iniciado por ;
    Hola a todos los programadores. Estoy totalmente perplejo
    . ¿Cómo obtengo un número para redondear a la décima más cercana? Estoy programando en MQL4. Se dejaría un ejemplo, decir mucho a tamaño = (lote0) * accteqty (); tamaño de lote = tamaño de lote1000; digamos que resulta ser .14578 cómo podría hacer que se redondeara a .2. Cualquier ayuda que ustedes me puedan dar sería muy apreciada. Sé que probablemente sea algo simple.
    . Gracias de antemano por la ayuda ... Valerie ....

    También puedes probar la función NormalizeDouble () ver referencia
    http://docs.mql4.com/convert/NormalizeDoublepara información. Un par de ejemplos del código Phoenix de Hendrick: lot = NormalizeDouble (AccountFreeMargin () * Risk1000.0,1) lot = NormalizeDouble (lot-lot * lossDecreaseFactor, 1) Entonces puede que necesite una línea como esta: if (lotlt; 0.1) lote = 0.1

  5. #4
    Cita Iniciado por ;
    Hola valerie En primer lugar, NO soy un programador de MetaTrader (solo lo probé durante aproximadamente 2 semanas), pero su pregunta es algo universal. Por lo tanto, una breve mirada en MetaQuote Language Editor se muestra en el Diccionario (en el lado derecho de la pantalla) y allí, en el tema Matemáticas, active la entrada para la función que está buscando: se llama MathRound (). Si hace clic en este tema, se mostrará una breve ayuda. Entonces, ya que nunca programé con MetaTrader, daría la pista adicional para probar lo siguiente: como MathRound redondea al INTEGER más cercano, lo más probable es que primero se multiplique por 10. En el ejemplo mencionado anteriormente, esto sería: .14578 * 10 - 1.4578 luego llame a MathRound (1.4578) y el resultado sería 1.0 - divídalo nuevamente entre 10 - 0.1 Esto significa que redondeará ABAJO al número entero más cercano. A partir de ahí, puede adaptarse fácilmente a su tamaño de lote. PERO, si desea siempre redondear hacia arriba al siguiente Integer superior, también haría lo siguiente: MathMod (.14578, .1) Si el resultado es gt; 0, entonces hay un descanso y debe agregar una unidad .1 al resultado anterior que recibió utilizando MathRound (). Espero que esto ayude, intente un poco ...
    McD
    Gracias McD esto será muy útil .....

  6. #5
    Cita Iniciado por ;
    También puedes probar la función NormalizeDouble () ver referencia
    http://docs.mql4.com/convert/NormalizeDoublepara información. Un par de ejemplos del código Phoenix de Hendrick: lot = NormalizeDouble (AccountFreeMargin () * Risk1000.0,1) lot = NormalizeDouble (lot-lot * lossDecreaseFactor, 1) Entonces puede que necesite una línea como esta: if (lotlt; 0.1) lote = 0.1
    Gracias, nvwine, de hecho, es donde tengo muchas ideas de programación. Además de mirar la vista web de metatrader. Todavía soy nuevo en lo que respecta a la programación, pero estoy llegando. Gracias valerie ...

  7. #6
    Solo quiero agradecer a todos los que han respondido a este hilo y un agradecimiento especial a harris que me avisó temprano hoy. Es bueno saber que tienes un lugar amigable para intercambiar ideas y obtener ayuda cuando no puedes resolverlo por tu cuenta. Gracias a todos ... Valerie ...
    Ps ... Gracias por comenzar este sitio web. Esto es de lejos fanfu ** intastic ..

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.