Página 1 de 1
¿Como multiplico?
Publicado: 09 Sep 2022 19:52
por carol
Hola, otra vez por aquí con una duda de "programadora Experta"
Quiero que mi EA configure las entradas a una cierta distancia de una determinada vela
La vela en cuestión me la individualiza bien, pero no consigo que me multiplique el spread para ver después, en el probador de estrategias , a qué distancia del cierre de la vela me interesa mas poner la entrada
Pongo solo el código referente al caso para no liarme
Código: Seleccionar todo
variables
input int Multiplicador = 3;
double gd_Min_Acceptable_Distance;
void OnTick() {
.....
gd_Min_Acceptable_Distance = (Ask - Bid)* Multiplicador;
.....
if(Order_Type == ORDER_TYPE_BUY_STOP ) {
Entry_Price = Ask + gd_Min_Acceptable_Distance ;
SL = Entry_Price - Order_1_SL_Points * _Point;
TP = Entry_Price + Order_1_TP_Points * _Point;
}
....
Comment ( ....
"Minima Distancia : "+ DoubleToStr(( gd_Min_Acceptable_Distance ), NDigits)+ "\n"
....
Pues no lo multiplica. Tengo configurado un Comment para ir verificando los cálculos y siempre me aparece el spread, ponga lo que ponga en el Multiplicador
Deberia, según mis cálculos, ponerme la entrada en el nivel 0.96121, pero la pone en 0.96262. Además, la Minima distancia deberia ser 0.00054 si el multiplicador es 3, pero aparece el valor del spread
¿Alguien sabe en qué me estoy equivocando?
Re: ¿Como multiplico?
Publicado: 09 Sep 2022 21:00
por sfriendsm2
Bueno,
no está todo el código, pero estás calculando la variable:
Min_Acceptable_Distance
Y luego muestras
gd_Min_Acceptable_Distance
No son la misma variable.
Re: ¿Como multiplico?
Publicado: 09 Sep 2022 22:02
por carol
Hola sfriendsm2, ha sido una errata al copiar en el foro, ya lo he editado, creo que ya está bien, la variable es con gd.

Re: ¿Como multiplico?
Publicado: 09 Sep 2022 22:14
por sfriendsm2
Hola, a quien hizo la pregunta. No sé por qué la has borrado. Imagino que has encontrado la respuesta. Un feedback hubiese sido más constructivo

Re: ¿Como multiplico?
Publicado: 09 Sep 2022 22:44
por carol
sfriendsm2 escribió: 09 Sep 2022 22:14
Hola, a quien hizo la pregunta. No sé por qué la has borrado. Imagino que has encontrado la respuesta. Un feedback hubiese sido más constructivo
Yo no he borrado nada, es que cuando edito me dice "Este mensaje no es visible para otros usuarios hasta que haya sido aprobado por un Moderador" . Menudo lio.
Re: ¿Como multiplico?
Publicado: 10 Sep 2022 00:30
por X-Trader
Carol no ha borrado nada, lo que sucede es que al ser nueva en el Foro sus mensajes requieren aprobación, y si los modifica, vuelven a necesitar que le dé el ok, así que todo en orden. Podéis seguir con la cuestión
Saludos,
X-Trader
Re: ¿Como multiplico?
Publicado: 11 Sep 2022 11:23
por carol
Gracias x-Trader por la aclaración,

lo tendré en cuenta en los próximos mensajes
Abundando un poco más en mi problema con la multiplicación:
Veo que si en
Código: Seleccionar todo
gd_Min_Acceptable_Distance = (Ask - Bid)* Multiplicador;
sustituyo directamente el Multiplicador por un número y compilo, aparece en el Comment la operación correcta.
Si vuelvo a cambiar el valor de Multiplicador, pero esta vez en el input, el resultado en pantalla no cambia , sigue apareciendo el resultado anterior. Para que cambie tengo que ponerlo en la fórmula directamente
A ver, que para mi prueba no me importaría, puedo ir directamente a la fórmula y hacer las pruebas cambiando el código, pero me toca la moral no saber porqué no consigo modificar el resultado desde el input
Si alguien lo sabe, le agradecería mucho la información
Re: ¿Como multiplico?
Publicado: 13 Sep 2022 18:58
por sfriendsm2
Entendido todo. Me parecía muy raro que se hubiese eliminado la pregunta.
Adjunto un EA que sólo se encarga de refrescar vía comment los datos que necesitas. Como verás, si modificas el valor del input, se modifica lo que se pinta en pantalla (ojo, cada vez que se recibe un nuevo tick).
Lo único que se me ocurre es que no se te actualiza el valor en pantalla porque por la lógica de tu código no pasa el if de la operación abierta que tienes. Vamos, que no es problema de multiplicación sino de la lógica de tu código. Como no tenemos el código completo, es imposible saber.
La cuestion es que no hay problema en multipicar un valor captado vía input, no hay que ponerlo directamente en código.
Espero que ahora si te sirva.
Re: ¿Como multiplico?
Publicado: 13 Sep 2022 19:35
por carol
sfriendsm2 escribió: 13 Sep 2022 18:58
Entendido todo. Me parecía muy raro que se hubiese eliminado la pregunta.
Adjunto un EA que sólo se encarga de refrescar vía comment los datos que necesitas. Como verás, si modificas el valor del input, se modifica lo que se pinta en pantalla (ojo, cada vez que se recibe un nuevo tick).
Lo único que se me ocurre es que no se te actualiza el valor en pantalla porque por la lógica de tu código no pasa el if de la operación abierta que tienes. Vamos, que no es problema de multiplicación sino de la lógica de tu código. Como no tenemos el código completo, es imposible saber.
La cuestion es que no hay problema en multipicar un valor captado vía input, no hay que ponerlo directamente en código.
Espero que ahora si te sirva.

Hemos tenido telepatía. Precisamente ahora venia a poner la solución que he encontrado después de vagar por foros varios y de mql4 , y de hacer mil probaturas durante el finde.
Venia a poner la solución por si alguien, buscando, llega hasta aquí. Es mi pequeñísima contribución a toda la ayuda que he encontrado en internet en este inicio de mi incipiente "carrera exitosa" como programadora
La clave, creo, está en lo que dices "NO HAY QUE PONERLO DIRECTAMENTE EN EL CODIGO"
Parece ser que ni los Alert y los Comment admiten operaciones, por lo tanto, cuando yo ponía en el Comment
Código: Seleccionar todo
+ "Minima Distancia : "+ DoubleToStr(( gd_Min_Acceptable_Distance ), NDigits)+ "\n"
No me lo leía, aunque no me daba error
He creado una nueva variable transitoria (Dist_) a la que le he dado el valor gd_Min_Acceptable_Distance * Multiplicador , la he definido antes del Comment ( Importante, porque los novatos nunca sabemos en que cajón meter las cosas) y la he sustituido en el Comment
Código: Seleccionar todo
double Dist_ = gd_Min_Acceptable_Distance * Multiplicador;
Commente (..... + "\n"
+ "Minima Distancia : "+ DoubleToStr(Dist_, NDigits)+ "\n" ;
y funcionaaaaaaaaaaaaaaaaa :''''''(
Muchísimas gracias sfriendsm2 por tu tiempo y sobre todo, por el calentamiento de cascos que te das para interpretar las dudas de estos novatos.

Re: ¿Como multiplico?
Publicado: 14 Sep 2022 20:09
por sfriendsm2
No entiendo muy bien cómo lo has arreglado, pero no pasa nada, lo importante es que tú si lo entiendas y te funcione
Sl2