¡Pide! - página 54

 

posible solución para el buffer 0:

int currentBar=0;

double lowestFG=iCustom(NULL,0, "Indicador de comercio Forex-Grail",period,PRICE_CLOSE,0, currentBar);

double highestFG = lowestFG;

for(;currentBar<4; currentBar++) lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE, 0,currentBar));

for(currentBar=0;currentBar<4; currentBar++) highestFG =MathMax(highestFG , iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE, 0,currentBar));

hay que hacer todo de nuevo para el buffer # 1

 
iscuba11:
¿Cómo puedo limitar la cantidad de lugares decimales que una declaración de comentario muestra en el gráfico. Ahora mismo muestra un resultado variable como .00347892, y quiero que sólo muestre .0035 (redondeado al siguiente número)?
Agradezco su aportación! Dave

función IndicatorDigits

 

En primer lugar, me gustaría daros las gracias a todos por ayudarme. Creo que ya puedo poner mi nuevo EA en línea para probarlo.

Todavía tengo una pregunta sobre los decimales.

La declaración de los comentarios se está generando desde el EA y no desde el indicador. La función indicatordigits creo que se utiliza en el propio indicador y no en el ea. No hay un simple redondeo hasta x lugares de una variable que podría utilizar. Por qué hacen este lenguaje tan complicado. ¡Incluso el lenguaje básico probablemente podría hacer esto!

Como siempre se agradece, los comentarios de conocimiento y sabiduría son bienvenidos. Por favor, ayuden si pueden.

¡Muchas gracias!

 

Por fin he leído bien tu post, prueba con Comment(DoubleToStr(doubleVariable, 4));

 

Ya está. Ahora a retocar y probar. Todos ustedes me han bendecido - ¡Gracias!

Paz y amor para todos, en el nombre de Jesús! Reverendo Dave
 

¡Necesito más ayuda por favor!

if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);

Lo que intento hacer es que el EA cambie automáticamente el OpenTriggerLevel por defecto de 4 decimales a 2 cuando el usuario selecciona 2 (currency_decimal) de 4 en la configuración del EA. Este cambio tendría que tener lugar en una moneda como el USDJPY que tiene 2 decimales.

Evidentemente al compilador no le gusta el segundo signo ' = ' en la declaración anterior.

Con la apreciación continua, ¡Gracias de antemano por su ayuda de entrada!

Dave
 

MQL4 tiene una variable predefinida Dígitos que corresponde al número de decimales del par.

DoubleToStr(OpenTriggerLevel, Digits);

el código es correcto, mira el error en la definición de la variable probablemente.

 
asmdev:
MQL4 tiene predefinida la variable Digits que corresponde al número de decimales del par.

DoubleToStr(OpenTriggerLevel, Digits);

El código es correcto, mira el error en la definición de la variable probablemente.

He probado esto, pero sigue mostrando OpenTriggerLevel como .0004 en lugar de .04:

if(currency_decimal == 2) DoubleToStr(OpenTriggerLevel,2);

Todavía estoy confundido...

 
iscuba11:
if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);[/PHP]

What I am attempting to do is have the EA automatically change the default OpenTriggerLevel from 4 decimal places to 2 when the user selects 2 (currency_decimal) from 4 in the EA setup. Such a change would have to take place on a currency like USDJPY which is 2 decimal places.

Evidently the compiler does not like the second ' = ' sign in the above statement.

With continued appreciation, Thanks in Advance for your input assistance!

Dave

El problema de esa declaración es que la variable 'OpenTriggerLevel' es de tipo 'double', mientras que la función devuelve una 'string'. Así que, aunque el código es sintácticamente correcto, es semánticamente incorrecto, y creo que por eso el compilador se queja.

Si quieres llevar la cadena en una variable, necesitarás una variable para hacerlo. Si no, puedes usar la función 'DoubleToStr' dentro del argumento 'Comment' para reemplazar donde actualmente dice 'OpenTriggerLevel'. Allí podría decir

[PHP]DoubleToStr( OpenTriggerLevel, currency_decimal )

y no necesitarías la declaración 'if ..' en absoluto.

 

¿alguien sabe cómo obtener el total de cada compra, venta, buystop, sellstop, buylimit y sellstop por el script? gracias