[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 214
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
Buenas tardes. He escrito una función que debe devolver el número de barras cuando se abrió una orden:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Sin embargo, siempre devuelve -1. ¿En qué me he equivocado? Gracias de antemano.
Buenas tardes. He escrito una función que debe devolver el número de barras cuando se abrió una orden:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Sin embargo, siempre devuelve -1. ¿En qué me he equivocado? Gracias de antemano.
Tal vez sea así:
return(iBarShift(Symbol(),Period(),t)); es decir, sin true.
Buenas tardes. He escrito una función que debe devolver el número de barras cuando se abrió una orden:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
Sin embargo, siempre devuelve -1. ¿En qué me he equivocado? Gracias de antemano.
A la variable t se le asigna el precio de apertura, aunque se declara como un entero
A la variable t se le asigna el precio de apertura, aunque se declara como un entero
¿Cómo se describe esta situación?
Por favor, avisa.
Si un extremo (por ejemplo, el máximo) de la primera barra de 5 minutos del día actual coincide con un extremo del día actual (en el diario), entonces hacemos algo. ¿Cómo lo describiría?
¡¡¡ayuda a la gente buena!!!
¡Hola, queridos usuarios del recurso!
Por favor, ayuda a quien se enfrenta a la lectura/escritura de un número real en un archivo.
La tarea consiste en leer de un archivo el saldo, si el saldo actual es más - sobrescribir el archivo.
El problema es que siempre da como resultado 0 (cero).
Con la escritura/lectura de números enteros no encontré tales problemas.
Aquí está el código:
doble balance;
int manija_archivo_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//copia de la posición, en caso de archivo vacío - posición = 0
si (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
Alert(balance); ------------------------------------- aquí es donde se debe escribir el cero aunque se debe escribir el balance previamente guardado
FileClose(file_handle_bala);
if (AccountBalance()>balance) ------------------------------------ y esta regla no funciona porque la alerta de abajo no muestra nada
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
balance=Saldo de la cuenta();
Alerta (saldo);
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
}
else // si el archivo está vacío
{
FileClose(file_handle_bala); // primero, cerrar el archivo abierto
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //abrir para escribir
balance=Saldo de la cuenta();
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
¡¡¡Muchas gracias antes!!!
Observe esta línea
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1. Deberías ser más respetuoso y amigable para publicar tu código.
2. Estás intentando escribir un entero de 8 bytes. MQL4 no tiene este tipo de datos.
\¿Qué hice mal? ¿Por qué tantos errores? (Necesito saber el máximo(Necesito saber el valor máximo del indicador en las últimas 10 barras). gracias de antemano.
¡Buenos días a todos!
Estoy escribiendo mi primer bot, y al mismo tiempo me estoy familiarizando con MQL. Tengo el siguiente problema durante las pruebas:
La orden OP_BUYSTOP se ejecuta justo después de la colocación de la orden, aunque a juzgar por el gráfico, el precio no alcanza el valor objetivo (véase más abajo)
USDJPY,M5 (visual)
Fecha 2011.09.19
Hora 02:15
Abierto 76.903
Alta 76.909
Bajo 76.890
Cerrar 76.890
Volumen 66
Estoy probando todas las garrapatas.
¿Quizás no entiendo bien la orden OP_BUYSTOP? Para comprar si el precio supera un determinado valor, ¿no?
Aquí hay un poco de código fuente que hace un pedido
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\¿Qué hice mal? ¿Por qué tantos errores? (Necesito saber el valor máximo del indicador para las últimas 10 barras). gracias de antemano.
Estás declarando la función Hi:
dentro de la función start()