[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 227
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
Hola, el problema es el siguiente: el EA establece órdenes limitadas pendientes, luego el precio se mueve y las órdenes se convierten en órdenes de mercado. Todo funciona, pero en algunas órdenes hay un fallo absolutamente poco claro, ya que todas las órdenes se establecen a través de una determinada constante fija "K", la distancia entre ellas debería ser siempre una constante (Rn+1 = Rn + "K"). Sin embargo, no tenemos suerte; la orden está abierta, el precio está indicado y todo está comprobado pero la distancia de la orden anterior a la siguiente no es igual a "K". Si comprobamos los resultados de las operaciones aritméticas con los precios, es decir, si simplemente restamos y comprobamos el resultado, es igual a "K"; sin embargo la comparación lógica == sigue mostrando falso y esto lleva al EA a abrir constantemente órdenes a ese precio y así "pensar" que no hay ninguna orden allí. Perdona si es muy largo, pero quería explicarlo con más detalle. Sinceramente, no entiendo qué hacer :(
¡Muchas gracias! Pero hay este 2011.09.30 21:26:49 TestGenerator: error de datos no coincidentes (límite de volumen 13634 en 2011.07.19 20:00 superado)
Por lo que he entendido, este mensaje no afecta al Asesor Experto, pero aun así me gustaría saber cómo entenderlo...
Ayudar a arreglar la función
Estoy tratando de escribir una función que determine el precio de cierre de la última orden (por la hora más cercana a la hora actual)
Lo escribo así:
Pero
hacer
uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int ticketDateTime=0;
int pedidoTicket=-1;
double closePrice = 0;
int ordTotal = OrdersTotal();
if (smb == "0") smb = Symbol();
for (int i = 0; i < ordTotal; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == smb || smb == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (cmd < OP_BUY || OrderType() == cmd) {
if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) {
if (ticketDateTime < OrderCloseTime()) {
ticketDateTime = OrderCloseTime();
orderTicket = OrderTicket();
closePrice = OrderClosePrice();
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );
return(closePrice);
}
Pero por alguna razón, la función devuelve los datos del primer pedido que se abrió en el probador.
En realidad, este es mi objetivo intermedio. Quería escribir una función que diera el último precio de cierre de una orden parcial (no para todo el volumen del lote). Pero no sé cómo molestar...
En cambio...
... Siguiente ...
Aquí veo que tus conocimientos no son muy buenos. Cuando se selecciona una orden por ticket, el parámetro de pool se ignora. Es decir, es inútil escribir MODE_HISTORY - este parámetro sólo se refiere a la selección por índice.
Si una orden ha sido seleccionada por ticket, debe comprobar la hora de cierre para asegurarse de que ha sido seleccionada de la lista de órdenes cerradas. Debe ser mayor que cero - sólo las posiciones cerradas tienen este parámetro >0.
En el marco temporal de 5 minutos en el terminal de operaciones MT4, el historial no se muestra. ¿Puede solucionarse?
Pido disculpas por la pregunta tan directa. Me refería a que el historial anterior a noviembre de 2010 no aparece :)
Así que no está ahí. También puede aclarar. Intenta hacer más barras en el gráfico en la configuración de MT4.
Se soluciona descargando o comprando un historial más largo.
Entonces no existe. También puede aclarar. Intenta hacer más barras en el gráfico en la configuración de MT4.
Esto se puede solucionar descargando o comprando un historial más largo.
¿Cuál es el número máximo de barras en la historia? Tal vez la historia ya esté recortada.