[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 477
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
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);
Por favor, dígame qué código debe ser escrito en el EA para hacer el comercio EA sólo una vez por hora
Por ejemplo, el EA se ha disparado, se ha abierto una orden (no me interesa más), me gustaría que la orden no se abriera en la barra actual en un marco temporal de una hora
todo se parece:
int hh;
int Hora actual;
HoraActual=HoraTemporal(HoraActual());
si (¡Hora actual!=hh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=Hora(TimeCurrent());
}
pero tengo innumerables pedidos abiertos
Hola a todos.
Por favor, dígame qué significa esto:
Orden de compra ...... fallida [Tiempo de espera de la operación]
Me interesa específicamente qué tipo de tiempo de espera es.
https://www.mql5.com/ru/forum/112612
Se trata de una respuesta del servidor que ha expirado, tanto si la operación se ha abierto como si no. Y no hay garantía de que el comercio no se haya abierto.
Por lo tanto, tengo que comprobar si la orden se abre en un minuto y luego continuar el comercio.
rlx:
debe establecerse antes de start() e init()
int hh = 0;
int init()
{
return(0);
}
int start()
{
//-------------------------------------------------
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders");
}
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if ((CurrentHour!=h)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
//-------------------------------------------------
return(0);
}
int deinit()
{
return(0);
}
Hice lo que dijiste, sin efecto, añadí el recuento de órdenes abiertas, ahora abre las órdenes justo después del cierre
Lo he solucionado con OrderCloseTime() - parece que ahora funciona
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent());
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
hh=TimeHour(OrderCloseTime());
if ((¡Hora actual!=hh)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
}
https://www.mql5.com/ru/forum/112612
Este es el período de espera para que el servidor responda --- si una operación se ha abierto o no. Y no hay garantía de que el acuerdo no se haya abierto.
Por lo tanto, tal y como recomiendan los desarrolladores, compruebe después de un minuto si se ha abierto una orden y sólo entonces proceda.
Sin embargo, no quiero ser una molestia.
Explíqueme cómo se abrirá una orden si OrderTotal() es cero.
Gracias.
A continuación se muestra la figura con paréntesis que limitan el bloque de código que se ejecuta bajo la condición
Las operaciones de OrderSend() no se ven afectadas por esta condición.
cómo conseguir un número de bar, en el "futuro" :)
iBarShift() funciona bien para obtener el número de barra del historial, pero ¿cómo obtendría el número de barra para este código si mueve la línea hacia la derecha - más allá de la barra cero?
cómo conseguir un número de bar, en el "futuro" :)
iBarShift() funciona bien para obtener el número de barra del historial, pero ¿cómo puedo obtener el número de barra para este código si desplazo la línea hacia la derecha, más allá de la barra cero?
Puede obtener un desplazamiento relativo a la hora[0]
Puede obtener un desplazamiento relativo a la hora[0]
Gracias. Ahora todo está bien.