revenger
25-12-2023 01:41,
Respondo yo mismo con las pruebas que hice:
En el código que coloqué el (If) tiene la "I" en mayúscula pero en el EA está bien.
Hoy testeé hacerlo de otra manera, y me funcionó, aunque no se por qué pues me parece lo mismo. También vi algo extraño.
Lo que hice fue declarar los valores de la entrada, en SL y el TP. Es decir, en vez de:
if(OrdersTotal()==0)
{
int ticket= OrderSend(NULL, OP_BUYSTOP, 0.1, Ask+0.0050, 10, Ask+0.0020, Ask+0.00100, NULL, 0, 0, clrNONE);
Alert(GetLastError());
}
Lo coloqué así (y si funcionó, pero me parece lo mismo):
double Entry, SL, TP;
Entry=Ask+0.0050;
SL=Entry-0.0030;
TP=Entry+0.0050;
//---
if(OrdersTotal()==0)
{
int ticket1= OrderSend(NULL, OP_BUYSTOP, 0.1, Entry, 10, SL, TP, NULL, 0, 0, clrNONE);
Alert(GetLastError());
}
Notar que antes no enviaba mensaje de error. Hoy me salía error 130 con el primer código. :?
Aunque decía error 130, como no veía ningún problema con el tamaño del SL, probé declarando el precio entrada, SL y TP (como el segundo código), solo por probar algo diferente, y entonces comenzó a funcionar y dejó de decir error 130; pero no cambié ninguno de los valores de estos (ni de la entrada ni del SL ni del TP). :?
Estoy haciendo estas pruebas en una cuenta demo. Solo se me ocurre que sea debido a ello.
¿Alguien agregaría algo diferente?
El valor de tu takeprofit es menor que el precio de apertura y también es menor que el stoploss en una operación a la compra. Supuestamente si quieres ganar algo en una compra, el valor de tu takeprofit debería ser mayor a tu precio de apertura.
En el código que coloqué el (If) tiene la "I" en mayúscula pero en el EA está bien.
Hoy testeé hacerlo de otra manera, y me funcionó, aunque no se por qué pues me parece lo mismo. También vi algo extraño.
Lo que hice fue declarar los valores de la entrada, en SL y el TP. Es decir, en vez de:
if(OrdersTotal()==0)
{
int ticket= OrderSend(NULL, OP_BUYSTOP, 0.1, Ask+0.0050, 10, Ask+0.0020, Ask+0.00100, NULL, 0, 0, clrNONE);
Alert(GetLastError());
}
Lo coloqué así (y si funcionó, pero me parece lo mismo):
double Entry, SL, TP;
Entry=Ask+0.0050;
SL=Entry-0.0030;
TP=Entry+0.0050;
//---
if(OrdersTotal()==0)
{
int ticket1= OrderSend(NULL, OP_BUYSTOP, 0.1, Entry, 10, SL, TP, NULL, 0, 0, clrNONE);
Alert(GetLastError());
}
Notar que antes no enviaba mensaje de error. Hoy me salía error 130 con el primer código. :?
Aunque decía error 130, como no veía ningún problema con el tamaño del SL, probé declarando el precio entrada, SL y TP (como el segundo código), solo por probar algo diferente, y entonces comenzó a funcionar y dejó de decir error 130; pero no cambié ninguno de los valores de estos (ni de la entrada ni del SL ni del TP). :?
Estoy haciendo estas pruebas en una cuenta demo. Solo se me ocurre que sea debido a ello.
¿Alguien agregaría algo diferente?
El valor de tu takeprofit es menor que el precio de apertura y también es menor que el stoploss en una operación a la compra. Supuestamente si quieres ganar algo en una compra, el valor de tu takeprofit debería ser mayor a tu precio de apertura.