Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Alguien tiene un código listo para calcular el número de dígitos significativos de un volumen?
Algo como SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), pero sólo para el volumen.
Por ejemplo, para el caso SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1,0" - la respuesta sería "0", para "0,1" - "1", para "0,01" - "2", etc.
Permítanme aclarar un matiz. Para un paso de volumen como "0,1", "0,01", "0,001" tengo.
El código debería funcionar para los siguientes casos como "0,2", "0,11", 0,023" etc.
No existe un código específicopara el volumen. Hay para todo.
El guión es para comprobarlo en el tráiler.Un guión para comprobar en el tráiler.
Quiere decir que..., y pensé que debía comprobar el lote permitido antes de hacer un pedido.
;)
No sé realmente lo que quiere. Veremos lo que dice. Sólo estoy practicando mi telepatía. ;)
¿Alguien tiene un código listo para calcular el número de cifras significativas de un volumen?
Algo como SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), pero sólo para el volumen.
Por ejemplo, para el caso SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1.0" - la respuesta sería "0", para "0.1" - "1", para "0.01" - "2", etc.
Permítanme aclarar un matiz. Para un paso de volumen como "0,1", "0,01", "0,001" tengo.
El código debería funcionar para los siguientes casos como "0,2", "0,11", 0,023" etc.
Específicamente para los volúmenes puede ser sencillo:
sergeev
MetaDriver
Valmars
Una pregunta bien formulada es la mitad de la respuesta. :) Lo siento, ya me he acostado, no he descrito la tarea con precisión. Lo intentaré de nuevo.
Me refiero a pasar un volumen normalizado a una orden de comercio.
Es lo que hacemos con el precio:
La normalización de los precios, creo que está claro para todos.
En mi época (desde MT4), leí en algún artículo de MT que sería conveniente normalizar también el volumen.
Aplicación №2.En realidad, escribí la funciónGetVolumeDigits(string Symbol) para encontrar el menor valor posible de volumen según las condiciones del broker. Hay al menos dos implementaciones (el resultado es el mismo):
Aplicación nº 1.
Ambos funcionan perfectamente para variantes con paso mínimo = 1,0, 0,1, 0,01, 0,001, etc. Es decir, si el paso mínimo es 1,0, la función devolverá 0; si el paso es 0,1, la función devolverá 1, etc.
¿Y si el paso mínimo es 1,1, o 0,11, o 0,011, por ejemplo? Este algoritmo mostrará incorrectamente el dígito menos significativo.
Por supuesto, se puede afirmar que en la práctica no se dan estos casos. Sólo quiero considerar tal posibilidad hipotética en mi Asesor Experto. Pensé que tal vez alguien podría compartir su experiencia en este asunto...
Se trata de enviar el volumen normalizado a la orden de comercio.
Sólo quiero considerar esta posibilidad hipotética en nuestro Asesor Experto.
¿de qué herramienta "hipotética" estamos hablando?
1. La variante de MetaDriver es adecuada para usted. CountSignedDigits mostrará el número de caracteres de cualquier lote.
2. Conociendo el número de dígitos se puede hacer la normalización:
sergeev
Gracias por la función de validación del lote. Estoy utilizando una construcción/ramificación de cheques similar.
Mi pregunta se centra en encontrar el lugar más joven del lote, para normalizarlo.
En particular, MetaDriver dio su construcción para "todo". :) Sin embargo, no está exento de defectos (o mi compilador tiene fallos). A continuación se muestra el código y el resultado de la ejecución:
Resultado:
Siguiente opción (la función CountSignedDigits es la misma):
Resultado:
Se ha cambiado la siguiente línea en OnStart:
Resultado:
O bien estoy haciendo algo mal (por favor, corríjanlo), o MetaDriver se equivocó en la teoría (al diseñar el algoritmo).
Mi pregunta se centra en determinar el lugar más bajo del lote para normalizarlo.
Incluso, si al enviar una solicitud de operación, la variable lote se pone en blanco (en el segundo decimal), será rechazada por el propio terminal.
Al menos, no he tenido ningún problema durante varios años de uso de este diseño.
Y si se quiere reasegurar, se puede normalizar hasta el octavo decimal (con reserva) - si después de la normalización "correcta" aparece basura, será mucho más.