Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1166
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
¿Pueden decirme cómo establecer la selección de órdenes por símbolo para OrdersTotal()?
Ahora mismo, si hay una orden abierta en un par, no se abre en otros.
¿Pueden decirme cómo establecer la selección de órdenes por símbolo para OrdersTotal()?
Ahora, si hay una orden abierta en un par, no se abre en otros.
Mira en kodobase, hay un ejemplo en cada EA
Mira en kodobase, hay un ejemplo en cada asesor
No soy programador(
Es un poco complicado para mí.
No soy programador(
Es un poco complicado para mí.
no es complicado.
para escribir un EA básico, aquí está toda la funcionalidadhttps://www.mql5.com/ru/forum/131859
Para sus propósitos OrdersTotal() es el número total de órdenes abiertas (numeradas desde 0) en la terminal, entonces necesita seleccionarlas una por una (ir a través del bucle) usando OrderSelect() y manipular las órdenes necesarias
¿Pueden decirme cómo establecer la selección de órdenes por símbolo para OrdersTotal()?
Ahora mismo, si hay una orden abierta en un par, no se abre en otros.
Tengo que comprobar periódicamente (contarme a mí mismo) mis pedidos según sea necesario.
Tengo en cada EA un bucle (un método enorme) que se llama antes de las acciones importantes:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
comprobar si hay una orden en el símbolo se resalta
periódicamente, según sea necesario, para comprobar (autocomprobar) sus pedidos.
Tengo un bucle (un método enorme) en cada EA, que se llama antes de las acciones importantes:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
compruebe el orden por el símbolo está resaltado
Por otro lado, entiendo que los tickers de las órdenes históricas pueden perderse. La pregunta es si los tickers de las órdenes(SELECT_BY_TICKET) en MT4 y los tickers de las operaciones y posiciones en MT5 pueden cambiar.
Y también, se puede cambiar el orden después del OrderSelect en el ticket. Por ejemplo, al día siguiente. El EA no está desactivado.
Si la orden pendiente se ha convertido en una orden de mercado, puede verla por su tipo. Si la orden de mercado se ha cerrado, entonces miramos la hora de cierre de la orden, no igual a cero OrderCloseTime()!=0
Si la orden pendiente se ha cerrado por su tiempo de vida, entonces cómo la seguimos por el ticket de la orden.
Y una pregunta, el tiempo de vida es también en órdenes de mercado(MT4), ¿funciona?
¿Pueden decirme cómo establecer la selección de órdenes por símbolo para OrdersTotal()?
Ahora, si hay una orden abierta en un par, no se abre en otros.
La cuestión ya está resuelta. Gracias a todos.
¡Hola Estimados Señores! No entiendo lo que está mal, ¿por qué escribe Alert: time3-time1 = wrong datetime?
porque el número es negativo :-)
por esta lógica el tiempo1 es __siempre __más que el tiempo3
porque el número es negativo :-)
por la lógica dada el tiempo1 es __siempre __más que el tiempo3
¡Gracias! A veces el cerebro se desconecta.