Página 3 de 3

Re: Variable double de solo dos decimales

Publicado: 09 May 2023 23:09
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.

Re: Variable double de solo dos decimales

Publicado: 09 May 2023 23:12
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)

Re: Variable double de solo dos decimales

Publicado: 09 May 2023 23:17
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.

Re: Variable double de solo dos decimales

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


Enviado desde mi iPhone utilizando Tapatalk

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 01:45
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.

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 03:07
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.

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 08:43
por X-Trader
Excelente Foréxitos, me alegro de que hayas dado con la tecla.

Saludos,
X-Trader

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 09:13
por Gibranes
Al final sale la solución.

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 20:18
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.

Re: Variable double de solo dos decimales

Publicado: 10 May 2023 23:52
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.

Re: Variable double de solo dos decimales

Publicado: 13 May 2023 15:51
por Foréxitos
Comparto un documento que me ayudo a entender todo esto...
https://www.exploringbinary.com/why-0-p ... ing-point/