if (Sob_01_0_1==1 && OrderSelect(ticket3_buy, SELECT_BY_TICKET)==true)
{
Alert("Sob_01_0_1=",Sob_01_0_1);
Alert("здесь код перестает работать?");
if (OrderTakeProfit()>0 && OrderCloseTime()>0)
{
Alert("третий ордер на покупку закрыт, событие 011");
bool close6=OrderClose(ticket3_sell, lot3, Ask, 20, clrRed);
if (close6==true)
Alert("третий ордер на продажу закрыт");
elseAlert("ошибка закрытия третьего ордера на продажу", GetLastError());
bool close7=OrderClose(ticket2_sell, lot2, Ask, 20, clrRed);
if (close7==true)
Alert("закрыт второй модифицированный ордер на продажу");
elseAlert("ошибка закрытия второго модифицированного ордера на продажу ticket2_sell ", GetLastError());
Sob_01_0_1++;
Sob011++;
}
}
Buenas noches, me pueden decir cuál es el error. El código deja de funcionar después deAlert("¿aquí el código deja de funcionar?");. Es decir, cuandoticket3_buy cierraen beneficio, entonces la sentencia if no se ejecuta.
Buenas noches a todos. Pregunta de un tonto sobre las funciones iLowest y iHighest. Al principio, quería utilizar estas funciones para encontrar la ruptura de alta/baja en mi EA y colocar una orden pendiente. Todo funciona con iLowest pero iHighest no establece órdenes. Sin embargo, esto es una palabra, puesto que ya he resuelto este problema de otra manera. Ahora tengo que borrar una orden pendiente si fue cancelada para abrirla a un nuevo precio. He intentado utilizar de nuevo las funciones anteriores. No hay ningún problema con iLowest y la eliminación de una orden de compra pendiente; tengo problemas con iHighest la eliminación de una orden de venta - la orden se elimina cuando una condición no se ha cumplido (el precio está por debajo del máximo), una nueva orden se coloca, se elimina de nuevo y así sucesivamente. Si el precio ha superado el máximo, se borra y no se ejecuta uno nuevo, pero en cuanto el precio actual se ha movido por debajo del máximo anterior, la "lucha" comienza de nuevo.
Las condiciones se escriben de la siguiente manera
Disculpen las molestias, todo está resuelto. Escribí la condición de borrado en el EA de forma ligeramente diferente a lo que escribí en el foro - no había ningún desplazamiento en relación con la barra actual.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¿Cuál es la forma correcta de tratar el error : array out of range in '... en esta situación cuando se cambia a #property strict ?
Hazlo así
En lugar del 1, puedes poner cualquier número excepto el 0. Cuanto más alto sea el número, menos barras se contarán cuando se inicie el indicador.
Y eliminar
es absolutamente inútil.
Hazlo así
En lugar de 1, puedes poner cualquier número excepto 0. Cuanto más alto sea el número, menos barras se contarán cuando se inicie el indicador.
Y eliminar
es absolutamente inútil.
datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
kocunyc89 : hay un comando t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");¿cómo pongo no hoy 10:00 sino mañana 10:00? datetime dt=TimeLocal();
datetime t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;
Alert("Ahora = ",dt, " Mañana a las 10:00 = ",t1);
Buenas noches a todos. Pregunta de un tonto sobre las funciones iLowest y iHighest. Al principio, quería utilizar estas funciones para encontrar la ruptura de alta/baja en mi EA y colocar una orden pendiente. Todo funciona con iLowest pero iHighest no establece órdenes. Sin embargo, esto es una palabra, puesto que ya he resuelto este problema de otra manera. Ahora tengo que borrar una orden pendiente si fue cancelada para abrirla a un nuevo precio. He intentado utilizar de nuevo las funciones anteriores. No hay ningún problema con iLowest y la eliminación de una orden de compra pendiente; tengo problemas con iHighest la eliminación de una orden de venta - la orden se elimina cuando una condición no se ha cumplido (el precio está por debajo del máximo), una nueva orden se coloca, se elimina de nuevo y así sucesivamente. Si el precio ha superado el máximo, se borra y no se ejecuta uno nuevo, pero en cuanto el precio actual se ha movido por debajo del máximo anterior, la "lucha" comienza de nuevo.
Las condiciones se escriben de la siguiente manera
if(iHighest(NULL, 0, MODE_HIGH, 70, 2) < iHigh(NULL, 0, 1)
{
DeleteOrders(OP_SELLSTOP, Magic);
}
if(iLowhest(NULL, 0, MODE_HIGH, 70, 2) > iLow(NULL, 0, 1)
{
DeleteOrders(OP_BUYSTOP, Magic);
}
(La función de borrado se escribe por separado). ¿Qué estoy haciendo mal, cuál es el error?