Variable double de solo dos decimales
Re: Variable double de solo dos decimales
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
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)
esta en cuenta real de darwinex (VFR para ser exactos)
Re: Variable double de solo dos decimales
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
Si pongo algo que no probé antes en una cuenta real es siempre culpa mía
Enviado desde mi iPhone utilizando Tapatalk
Enviado desde mi iPhone utilizando Tapatalk
Re: Variable double de solo dos decimales
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.
Saludos y muchas gracias a todos por responder.
Re: Variable double de solo dos decimales
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.
PD: Cuidado con probarlo en real.
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);
}
- Adjuntos
-
- Dos_Decimales_v2.00.mq4
- (1.63 KiB) Descargado 101 veces
Re: Variable double de solo dos decimales
Excelente Foréxitos, me alegro de que hayas dado con la tecla.
Saludos,
X-Trader
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."
Re: Variable double de solo dos decimales
Al final sale la solución.
Re: Variable double de solo dos decimales
bueno, y tambien la orden que me abrio el script sigue abierta y en positivo.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
Re: Variable double de solo dos decimales
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.
el resultado de esto es: -0.07000000000000001
pueden comprovarlo ustedes mismos que no va a poner ninguna operacion en positivo...
Saludos a todos y muchas gracias nuevamente por responder.
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);
}
pueden comprovarlo ustedes mismos que no va a poner ninguna operacion en positivo...

Saludos a todos y muchas gracias nuevamente por responder.
Re: Variable double de solo dos decimales
Comparto un documento que me ayudo a entender todo esto...
https://www.exploringbinary.com/why-0-p ... ing-point/
https://www.exploringbinary.com/why-0-p ... ing-point/
Si te ha gustado este hilo del Foro, ¡compártelo en redes!