METATRADER
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
Hay cosas que dependen de cada broker de metatrader. El whc es un caso especial y parece que no deja poner los stoploss y takeprofit en la misma orden a mercado,pero deja modificar la orden para incluirlos despues.
Puedes probar a quitar los stops, y si quieres que los tenga pues que los ponga una linea despues con OrderModify( ).
La confirmacion manual se quita en 'herramientas' y en la pantalla de iniciacion.
Lo de 'uninit reason 6' significa que el sistema se ha reinicializado o parado (depende de la opcion que tengas en herramientas) al cambiar de cuenta.
Puedes probar a quitar los stops, y si quieres que los tenga pues que los ponga una linea despues con OrderModify( ).
La confirmacion manual se quita en 'herramientas' y en la pantalla de iniciacion.
Lo de 'uninit reason 6' significa que el sistema se ha reinicializado o parado (depende de la opcion que tengas en herramientas) al cambiar de cuenta.
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
Por ejemplo algo así:
int tk;
....
tk=OrderSend( .... ...);
OrderModify( tk, ... .... );
....
Probablemente en el codigo que tengas ya estará recogido con alguna variable, puedes ponerle la misma.
Lo de la confirmacion manual mira tambien en la pantalla que sale al iniciar el sistema, en 'comun'.
int tk;
....
tk=OrderSend( .... ...);
OrderModify( tk, ... .... );
....
Probablemente en el codigo que tengas ya estará recogido con alguna variable, puedes ponerle la misma.
Lo de la confirmacion manual mira tambien en la pantalla que sale al iniciar el sistema, en 'comun'.
Última edición por Fer137 el 11 Mar 2008 18:22, editado 1 vez en total.
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
consigo pasar la modificación (gracias a ti,
) pero lo que no consigo que pase bien es el valor del SL y TP, mira, te resumo el codigo:
SL = 0.0010;
TP = 0.0010;
StopLoss = Ask-SL;
TakeProfit = Ask+TP;
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Green);
OrderModify(res,OrderOpenPrice(),StopLoss,TakeProfit,0,Blue);

SL = 0.0010;
TP = 0.0010;
StopLoss = Ask-SL;
TakeProfit = Ask+TP;
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Green);
OrderModify(res,OrderOpenPrice(),StopLoss,TakeProfit,0,Blue);
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
Puede ser cualquier cosa. Los precios en ordersend y ordermodify deben estar con los decimales correctos, ponle NormalizeDouble(stoploss,Digits), lo mismo para el takeprofit. Amplía los stops unos pipos (algunos brokers no dejan menos de 10 de distancia).
Lo de los emails tienes que configurarlo en herramientas, no lo he llegado a usar.
Lo de los emails tienes que configurarlo en herramientas, no lo he llegado a usar.
-
- Mensajes: 95
- Registrado: 25 Feb 2008 11:39
El NormalizeDouble es una funcion, no la puedes poner suelta. (Seguramente ni te lo compilaba). Y asegurate de que todas las variables estén definidas con su tipo. El Print imprime en el log 'expert'.
int res,MAGICMA;
double SL=0.0010,TP=0.0010,StopLoss,TakeProfit,Lots=0.1;
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Green);
OrderSelect(res,SELECT_BY_TICKET);
OrderModify(res,OrderOpenPrice(),NormalizeDouble(StopLoss,Digits),NormalizeDouble(TakeProfit,Digits),0,Blue);
int res,MAGICMA;
double SL=0.0010,TP=0.0010,StopLoss,TakeProfit,Lots=0.1;
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Green);
OrderSelect(res,SELECT_BY_TICKET);
OrderModify(res,OrderOpenPrice(),NormalizeDouble(StopLoss,Digits),NormalizeDouble(TakeProfit,Digits),0,Blue);
Si te ha gustado este hilo del Foro, ¡compártelo en redes!