Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 20

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Una vez más. OrderSelect debe ser lo primero cuando se trabaja con un pedido. Luego todo lo demás.
Gracias por la respuesta... ¿Está diciendo que la línea if(OrderSelect(i=0;i<accTotal;i++)==true) no está escrita correctamente, o en el lugar equivocado del código? ...
Renat Akhtyamov:
по ссылке пройдите, она у Вас в посте выделена.
Ya lo he mirado. No tiene la información necesaria. Valor de 10 dígitos en el buffer vacío y valor del precio cuando hay una señal... ¿Cómo denota el código mql4 la ausencia o presencia de un valor en el buffer? (Lo he usado más de una vez, pero lo he olvidado...)
if( iCustom(NULL,t, "T...c",1,b) != .......).....
atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...)
if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....Lo que necesitamos... Gracias por el recordatorio.
Ayuda a la comprensión. ¿Es posible ejecutar órdenes de forma secuencial si dos órdenes de diferente dirección
las operaciones abiertas activan primero el TP de cualquiera de las operaciones, y luego sólo el SL, aunque en el proceso de negociación el nivel de SL
¿alguno de los oficios fue aprobado primero?
Ayuda a la comprensión. ¿Es posible ejecutar órdenes de forma secuencial si dos órdenes de diferente dirección
las operaciones abiertas activan primero el TP de cualquiera de las operaciones, y luego sólo el SL, aunque en el proceso de negociación el nivel de SL
¿alguno de los oficios fue aprobado primero?
Una vez más. OrderSelect debe ser lo primero cuando se trabaja con un pedido. Y luego todo lo demás.
Si estamos trabajando en un bucle de evaluación de orden, entonces el orden de las acciones es
1. Comprobación if(OrderSelect())
2. Para comprobar si es la orden correcta, normalmente se comprueba el símbolo y el número mágico, y luego se comprueba el tipo if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - en este caso sólo se procesan las órdenes de mercado colocadas para el símbolo actual y con el número mágico especificado
Procesamiento de otros datos como OrderComment(), OrderProfit(), etc.
Sería algo así:
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет
{
if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории)
{
if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом
Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс
Print("Order #",OrderTicket()," loss: ", OrderTakeProfit());
}
}
}
Gracias por su respuesta... Así, para buscar órdenes en el historial de operaciones, utilizamos la funciónOrdersHistoryTotal que, tras descartar todo lo que no necesitamos, tiene el siguiente aspecto
for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - aquí está la pregunta, ¿qué significa "accTotal"en la plantilla de la función, que hemos descartado? y ¿por qué ha tomado "i--" y no "i++" como en la plantilla?
- La segunda funciónOrderComment devuelve el comentario de la orden seleccionada, si es seleccionada por la función anteriorOrdersHistoryTotal, tiene la forma
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- donde "i", esto es "i>=0" de la función anterior, y "SELECT_BY_TICKET" fue reemplazado por "SELECT_BY_POS" y "MODE_HISTORY"fue añadido- ¿por qué?
- La tercera línea es la definición, en realidad no necesitamos comprobar la orden necesaria ya que sólo tenemos órdenes de mercado cerradas por TP y SL en este historial (podríamos tener una orden pendiente cerrada, pero será raro), todos los demás parámetros de la orden no son importantes para nosotros. Lo único importante es que la cantidad de pedidos cerrados en el historial aumentará constantemente, ¿es posible hacer que nuestro recálculo tome cierta cantidad de los últimos pedidos, por ejemplo, 5-10, y no todos?
- Las últimas cuatro líneas son bastante claras, la única pregunta es sobre la función PlaySound, cuyo código debe ser insertado después de cada línea"Print(". .." de lasiguiente forma:
bool PlaySound(
cadena // nombre del archivo
);
... ¿O también se convierte de alguna manera?
Lee sobre los bucles, cómo están limitados y cómo funcionan, y en general, sería bueno leer un libro de texto sobre C++ para principiantes, C++ es muy similar a MQL, la única diferencia está en las funciones de comercio.
Y también deberías leer el tutorial de MQL y la ayuda en el compilador. Los artículos del foro están en el borde superior de la ventana con fondo azul. No se puede volver a contar y explicar todo el curso en el foro.
Lee sobre los bucles, cómo están limitados y cómo funcionan, y en general, sería bueno leer un libro de texto sobre C++ para principiantes, C++ es muy similar a MQL, la única diferencia está en las funciones de comercio.
Y también deberías leer el tutorial de MQL y la ayuda en el compilador. Los artículos del foro están en el borde superior de la ventana con fondo azul. No se puede volver a contar y explicar todo el curso en el foro.