¿Como multiplico?

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
carol
Mensajes: 24
Registrado: 25 Abr 2017 16:53

¿Como multiplico?

Mensaje por carol »

Hola, otra vez por aquí con una duda de "programadora Experta" :oops:

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?
Adjuntos
multiplicador1.jpg
Última edición por carol el 09 Sep 2022 22:00, editado 2 veces en total.
sfriendsm2
Mensajes: 20
Registrado: 24 Jun 2020 17:20

Re: ¿Como multiplico?

Mensaje 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.
carol
Mensajes: 24
Registrado: 25 Abr 2017 16:53

Re: ¿Como multiplico?

Mensaje 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. :)
sfriendsm2
Mensajes: 20
Registrado: 24 Jun 2020 17:20

Re: ¿Como multiplico?

Mensaje 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 :)
carol
Mensajes: 24
Registrado: 25 Abr 2017 16:53

Re: ¿Como multiplico?

Mensaje 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. :(


preguntaFantasma.jpg
Última edición por carol el 09 Sep 2022 22:53, editado 2 veces en total.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12217
Registrado: 06 Sep 2004 10:18
Contactar:

Re: ¿Como multiplico?

Mensaje 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
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
carol
Mensajes: 24
Registrado: 25 Abr 2017 16:53

Re: ¿Como multiplico?

Mensaje por carol »

Gracias x-Trader por la aclaración, :D 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
sfriendsm2
Mensajes: 20
Registrado: 24 Jun 2020 17:20

Re: ¿Como multiplico?

Mensaje 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.
Adjuntos
multiplica.mq4
(1.63 KiB) Descargado 3 veces
carol
Mensajes: 24
Registrado: 25 Abr 2017 16:53

Re: ¿Como multiplico?

Mensaje 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.
:lol: :lol: 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. :D
sfriendsm2
Mensajes: 20
Registrado: 24 Jun 2020 17:20

Re: ¿Como multiplico?

Mensaje 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
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”