Variable double de solo dos decimales

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

cdtrader pregunta ¿lo corriste en el probador de estrategias.... porque es de vez en cuando que te tira más decimales... fijate.
ImagenImagenImagenImagenImagen
Avatar de Usuario
cdtrader
Mensajes: 588
Registrado: 28 Dic 2016 17:04

Re: Variable double de solo dos decimales

Mensaje por cdtrader »

no, no lei que habia un ordersend y lo probe de una en mi cuenta real, me abrio una orden que la deje abierta porque por suerte era en el sentido que estaba operando, por eso saque el ordersend en la version que pase.

esta en cuenta real de darwinex (VFR para ser exactos)
Imagen
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

uuuuuu perdoname!!! me olvide de avisar que lo prueben en el probador de estrategias... espero que termine positiva la orden... perdón.
ImagenImagenImagenImagenImagen
Avatar de Usuario
cdtrader
Mensajes: 588
Registrado: 28 Dic 2016 17:04

Re: Variable double de solo dos decimales

Mensaje por cdtrader »

Si pongo algo que no probé antes en una cuenta real es siempre culpa mía


Enviado desde mi iPhone utilizando Tapatalk
Imagen
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

cdtrader me funciono tu idea!!! aunque a veces se queda con un solo decimal (igual me sirve para mi EA)... hice otras pruebas y me resulto imposible que una variable double de valor 0.00 se comente con (string) igual que el numero puesto en la variable o sea 0.00
Saludos y muchas gracias a todos por responder.
ImagenImagenImagenImagenImagen

Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

Bueno, después de todo, el hilo entero es un error propio al querer comentar con solo (string) en vez de usar StringFormat() y a otra cosa... eso me llevo a querer modificar la variable double y mezclar todas las funciones y enroscarme sin sentido, así que voy a compartir la solución (que por cierto ya la sabia pero me sesgue) para darle un final al hilo. Saludos pa todos mis compas.

Código: Seleccionar todo

#property copyright "Dos decimales por Foréxitos"
#property link "https://www.forexitos.com"
#property version "2.00"
#property strict

datetime DiaActual;
double Variable[];

int start()
   {
   if(DiaActual!=iTime(NULL, PERIOD_D1,0)){int s=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,NULL,0,0,clrNONE);DiaActual=iTime(NULL, PERIOD_D1, 0);}
//:::::::::::::::::::::::::::::::::   TOTAL  :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   ArrayInitialize(Variable,0);ArrayResize(Variable,400);
   for(int i=0;i<OrdersTotal();i++)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)&&OrderSymbol()==Symbol()&&OrderType()==OP_BUY)
         {
         Variable[i]+=OrderProfit()+OrderCommission()+OrderSwap();
         Comment(StringFormat("%.2f",Variable[i]));
         }
      }
   return(0);
  }
PD: Cuidado con probarlo en real.
Adjuntos
Dos_Decimales_v2.00.mq4
(1.63 KiB) Descargado 27 veces
ImagenImagenImagenImagenImagen
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12793
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Variable double de solo dos decimales

Mensaje por X-Trader »

Excelente Foréxitos, me alegro de que hayas dado con la tecla.

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."
Avatar de Usuario
Gibranes
Mensajes: 231
Registrado: 22 Jun 2010 07:57

Re: Variable double de solo dos decimales

Mensaje por Gibranes »

Al final sale la solución.
Avatar de Usuario
cdtrader
Mensajes: 588
Registrado: 28 Dic 2016 17:04

Re: Variable double de solo dos decimales

Mensaje por cdtrader »

cdtrader escribió: 10 May 2023 00:55 Si pongo algo que no probé antes en una cuenta real es siempre culpa mía


Enviado desde mi iPhone utilizando Tapatalk
bueno, y tambien la orden que me abrio el script sigue abierta y en positivo.
Imagen
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

Bueno creo que siempre hay que no solo reconocer el error de uno mismo sino ser puntual a la hora de identificar exactamente donde se produce el error así que pensé en compartir el error y que nadie más lo haga porque es muy peligroso.
el error: comentar y pasar las variables double con el (string) es un error garrafal... con las variables int no he tenido problema pero por las dudas no lo recomiendo, acá va un ejemplo super simple de lo que puede pasar.

Código: Seleccionar todo

#property copyright "Dos decimales por Foréxitos"
#property link "https://www.forexitos.com"
#property version "3.00"
#property strict

datetime DiaActual;
int Variable[];

int start()
   {
   double TOTAL=-7.0/100;
   Comment(" TOTAL "+(string)TOTAL);
   return(0);
  }
el resultado de esto es: -0.07000000000000001
pueden comprovarlo ustedes mismos que no va a poner ninguna operacion en positivo... :-D
Saludos a todos y muchas gracias nuevamente por responder.
ImagenImagenImagenImagenImagen
Avatar de Usuario
Foréxitos
Mensajes: 683
Registrado: 12 Mar 2017 19:13

Re: Variable double de solo dos decimales

Mensaje por Foréxitos »

Comparto un documento que me ayudo a entender todo esto...
https://www.exploringbinary.com/why-0-p ... ing-point/
ImagenImagenImagenImagenImagen
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”