bp2000: No se puede cambiar el color en OrderSend()
Color de la flecha de apertura en el gráfico. Si falta el parámetro o tiene el valor CLR_NONE, la flecha de apertura no se dibuja en el gráfico.
Si no me equivoco, en MT5 las operaciones de trading no están ligadas a colores de ninguna manera. No sé cómo históricamente los desarrolladores decidieron añadir color a MT4-OrderSend. Después de todo, no tiene nada que ver con el trading.
Pregunta, como obtener el ticket de una orden pendiente despues de su creacion sin buscar en la enumeracion de ordenes por magik, es posible. Y cómo (es posible con una petición) seguir la ejecución de una orden en una posición y obtener un ticket de la posición para su modificación. En 4ka OrderSend devolvía el ticket, en 5ka el hecho de la ejecución. Y para seleccionar - cargar datos de orden/posición en la estructura de datos correspondiente, se necesita un ticket.
bool Res=OrderSend(Symbs, OP_SELLSTOP,Lots,Prices,slippage,SLs,TPs,"QstrSellStop",Magic,Close_Time,Blue);//Abrir SellStopif(Res==false) //No funcionó :)Alert( "Fun_Error = ",GetLastError());
...
Tickets5= //.... Cómo conseguir una entrada Alert(Symbol()," TF ",Period(),"Orden de venta abierta al precio de ",Bid,"Tickets5 = ",Tickets5);
Tales trucos de MT5 no sólo son fáciles de reproducir, sino también de trabajar con ellos en una cuenta real - los Asesores Expertos de MT5 no se verán obstaculizados por las caídas de MT5.
Es difícil decir cómo las soluciones alternativas reaccionarán en tal situación.
MT4Orders es MT4-style en MT5. Por lo tanto, el comportamiento de OrderSend es el mismo que su homólogo MT4.
Si, esta parte funciona y el ticket de la orden pendiente pasa al ticket de la posición y todo se modifica, pero no funciona todo el tiempo. Al cerrar una posición aparece un trato en las órdenes SL o TP y no funciona el check en el ticket para el momento de cerrar una orden de mercado.
Me rompe la cabeza. Cierre por SL. En el tester, si el ticket de la orden es 3, coincide con el ticket de la operación y el último selector es normal. Si es 2, el error de selección es 4754. En real/demo siempre no coincide.
Лог
2020.10.2216:46:14.665 Trades '25610628': accepted modify #745859775 sell 1 EURUSD sl: 1.18258, tp: 1.18197 -> sl: 1.18254, tp: 1.181942020.10.2216:46:14.672 Trades '25610628': modify #745859775 sell 1 EURUSD -> sl: 1.18254, tp: 1.18194 done in129.694 ms
2020.10.2216:48:06.783 Trades '25610628': deal #725926213 buy 1 EURUSD at 1.18254 done (based on order #745887632)
// comprobar el cierre de la posiciónif(OrderSelect(Tickets, SELECT_BY_TICKET)==true) // Al cerrar por SL y devuelve error 4754.
{
if(OrderCloseTime()==0) //Quéreemplazar, cómo saber que la posición no está en la historia
{
ModifyTral();
return;
}
if(OrderCloseTime()!=0) // Y luego sustituirlo para darse cuenta de que la posición ha pasado a la historia
{
End=true;
Alert("Nuestra orden de mercado se ha cerrado. El trabajo del Consejero ha terminado".,
"Intercambio = ", OrderSwap(), "Comisión = ", OrderCommission()); // эта часть работает в тестере)))
return;
}
}
Тикет ордера позиции не 3
LO 019:16:54.104 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:10:17Alert: Проверяем закрытие Позиции и Модифицируем если нужно Tickets 2 Or 0
ON 019:16:54.104 Trade 2018.07.0200:10:19 stop loss triggered #2 buy 1 EURUSD 1.16771 sl: 1.16719 tp: 1.17241 [#4 sell 1 EURUSD at 1.16719]
LQ 019:16:54.104 Trades 2018.07.0200:10:19 deal #3 sell 1 EURUSD at 1.16719 done (based on order #4)
HN 019:16:54.104 Trade 2018.07.0200:10:19 deal performed [#3 sell 1 EURUSD at 1.16719]
RI 019:16:54.104 Trade 2018.07.0200:10:19 order performed sell 1 at 1.16719 [#4 sell 1 EURUSD at 1.16719]
FJ 019:16:54.104 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:10:19Alert: Проверяем закрытие Позиции и Модифицируем если нужно Tickets 2 Or 0
FI 019:16:54.104 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:10:19Alert: OrderSelect() нашего рыночного ордера вернул ошибку - 4754
IQ 019:16:54.104 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:10:19Alert: Или Наш рыночный ордер закрылся. время закрытия 1970.01.0100:00:00 Tickets 2 Своп = 0.0 Комиссия = 0.0
KN 019:16:54.104 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:10:21Alert: Работа эксперта завершена. Прибыль/убыток = 0.0
Тикет ордера-позиции 3
PF 019:21:30.198 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:44:36Alert: Проверяем закрытие Позиции и Модифицируем если нужно Tickets 3 Or 1
KH 019:21:30.198 Trade 2018.07.0200:44:37 stop loss triggered #3 sell 1 EURUSD 1.16740 sl: 1.16800 tp: 1.16277 [#4 buy 1 EURUSD at 1.16800]
DN 019:21:30.198 Trades 2018.07.0200:44:37 deal #3 buy 1 EURUSD at 1.16802 done (based on order #4)
LJ 019:21:30.198 Trade 2018.07.0200:44:37 deal performed [#3 buy 1 EURUSD at 1.16802]
EF 019:21:30.198 Trade 2018.07.0200:44:37 order performed buy 1 at 1.16802 [#4 buy 1 EURUSD at 1.16800]
CL 019:21:30.198 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:44:37Alert: Проверяем закрытие Позиции и Модифицируем если нужно Tickets 3 Or 1
QJ 019:21:30.198 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:44:37Alert: Наш рыночный ордер закрылся. время закрытия 2018.07.0200:44:37 Tickets 3 Своп = 0.0 Комиссия = 0.0
NE 019:21:30.198 Time_Open_Trail_2_21 (EURUSD,M5) 2018.07.0200:44:37Alert: Работа эксперта завершена. Прибыль/убыток = -62.0//Solución estúpida, por supuesto.if(OrderSelect(Tickets, SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) // Si nuestra orden de mercado no está cerrada
{
ModifyTral();
return;
}
if(OrderCloseTime()!=0) // Si nuestra orden de mercado se ha cerrado
{
End=true;
Alert("Nuestra orden de mercado se ha cerrado. Hora de cierre".,OrderCloseTime(),"Tickets ",Tickets,
"Intercambio = ", OrderSwap(), "Comisión = ", OrderCommission());
return;
}
}
else
{
Alert("OrderSelect() de nuestra orden de mercado devolvió un error - ",GetLastError());
End=true;
Alert("O Nuestra orden de mercado se ha cerrado. hora de cierre".,OrderCloseTime(),"Tickets ",Tickets,
"Intercambio = ", OrderSwap(), "Comisión = ", OrderCommission());
return;
}
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
No se puede cambiar el color en OrderSend()
Si no me equivoco, en MT5 las operaciones de trading no están ligadas a colores de ninguna manera. No sé cómo históricamente los desarrolladores decidieron añadir color a MT4-OrderSend. Después de todo, no tiene nada que ver con el trading.
No quiero que dibuje "flecha de apertura" en el gráfico.
Puede desactivar el dibujo en el gráfico y la configuración de Terminal.
¿Es posible hacerlo funcionar?
Pregunta, como obtener el ticket de una orden pendiente despues de su creacion sin buscar en la enumeracion de ordenes por magik, es posible. Y cómo (es posible con una petición) seguir la ejecución de una orden en una posición y obtener un ticket de la posición para su modificación. En 4ka OrderSend devolvía el ticket, en 5ka el hecho de la ejecución. Y para seleccionar - cargar datos de orden/posición en la estructura de datos correspondiente, se necesita un ticket.
En 4ka OrderSend devolvía el ticket, en 5ka el hecho de la ejecución.
MT4Orders es MT4-style en MT5. Por lo tanto el comportamiento de OrderSend es el mismo que el homólogo de MT4.
Tales trucos de MT5 no sólo son fáciles de reproducir, sino también de trabajar con ellos en una cuenta real - los Asesores Expertos de MT5 no se verán obstaculizados por las caídas de MT5.
Es difícil decir cómo las soluciones alternativas reaccionarán en tal situación.
MT4Orders es MT4-style en MT5. Por lo tanto, el comportamiento de OrderSend es el mismo que su homólogo MT4.
Si, esta parte funciona y el ticket de la orden pendiente pasa al ticket de la posición y todo se modifica, pero no funciona todo el tiempo. Al cerrar una posición aparece un trato en las órdenes SL o TP y no funciona el check en el ticket para el momento de cerrar una orden de mercado.
Me rompe la cabeza. Cierre por SL. En el tester, si el ticket de la orden es 3, coincide con el ticket de la operación y el último selector es normal. Si es 2, el error de selección es 4754. En real/demo siempre no coincide.