Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 74

 
ilnur17021992:

hay una variable

int Nivel = 0;

Mientras el programa está en marcha, cambia constantemente. Ayúdeme a escribir una condición: si el Nivel NO ha cambiado, entonces no haga nada. Si el Nivel ha cambiado (no importa si ha cambiado hacia arriba o hacia abajo), entonces haga alguna acción { operador }

introducir otra variable

int Nivel1 = 0;

int Nivel = 0;

si (Nivel !=Nivel1)

{};

y luego Nivel1 =Nivel

pero realmente no entiendo por qué tenemos que sacar un array en cada tick si podemos hacerlo después de cualquier operación

 
trader781:

introducir otra variable

int Nivel1 = 0;

int Nivel = 0;

si (Nivel !=Nivel1)

{};

y luego Nivel1 =Nivel

No entiendo muy bien por qué tengo que sacar un array en cada tick, si puedo hacerlo después de cualquier operación

      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Además, necesito que ocurra cuando SELL_Lvl aumenta:

         ObjectDelete( "Sell no loss level");

Pero, como la condiciónSELL_Lvl>0 se cumple, la línea se vuelve a trazar, pero por un nuevo valor deSELL_NoLossLevel. ¿Existe una forma más fácil y obvia de redibujar la línea, en función deSELL_Lvl?

 
ilnur17021992:
      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Entonces necesito hacer que la línea se redibuje cuando SELL_Lvl aumente:

         ObjectDelete( "Sell no loss level");

Pero como la condiciónSELL_L_Lvl>0 se cumple, la línea debe volver a dibujarse, pero con un nuevo valor deSELL_NoLossLevel. ¿Existe una forma más fácil y obvia de redibujar la línea, en función del valor deSELL_Lvl?

Transfiere el objeto al nuevo valor sin borrarlo ni recrearlo:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);
 
Vitaly Muzichenko:

Transfiere el objeto al nuevo valor sin borrarlo ni recrearlo:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);

Esto es ciertamente una opción, pero me gustaría que la línea se redibujara por el valor deSELL_NoLossLevel dependiendo de siSELL_Lvlha cambiado

así if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

La línea se redibuja en cada tick mientras que necesito que se redibuje sólo siSELL_Lvl cambia

 
ilnur17021992:

Por supuesto es una variante, pero me gustaría que la línea se redibujara porSELL_NoLossLevel dependiendo de siSELL_Lvl ha cambiado

así if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

La línea se redibuja en cada tick, mientras que yo necesito que se redibuje sólo siSELL_Lvl cambia

Explicar claramente la condición de redistribución de líneas, con valores de precios reales.

Para la línea resaltada: ¿cuánto ha cambiado? ¿Qué indica que SELL_Lvl ha cambiado?

 
chicos aconsejan la función para cerrar órdenes pendientes en mcl5 hay cinco órdenes de compra limitadas para cerrar la más baja
 
TYRBO:
quiero saber que función usar para cerrar una orden pendiente en mcl5.

Es mejor hacer un bucle, determinar el correcto y por documentación

Borrar orden pendiente

Orden comercial para eliminar una orden pendiente. Requiere que se especifiquen 2 campos:

  • acción
  • pedir
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Mejor pasar por el ciclo, identificar el correcto y seguir la documentación

Necesito un ticket de pedido inferior para cerrarlo, sé cómo encontrar el precio de pedido inferior, agradecería que me dijeran cómo encontrar un ticket de pedido inferior
 
Alexey Viktorov:

Escriba claramente la condición para el rediseño de la línea, con valores de precios reales, y entonces entenderá lo que tiene que hacer.

En los destacados: ¿en cuánto ha cambiado? ¿Qué indica que SELL_Lvl ha cambiado?

SELL_Lvl es el número de rodillas (órdenes) de la parrilla de venta.SELL_NoLossLevel es el nivel total (precio) de la orden de compra. Bien, la idea es la siguiente: necesitamos una línea dibujada a nivel de una Línea de Compra y redibujada respectivamente cuando se abren nuevas Líneas. No sé cómo hacerlo.
 
TYRBO:
Les agradecería que me dijeran cómo encontrar el precio de un pedido mínimo.

Hay un ejemplo en la documentación.

Probablemente sería mejor recorrer las órdenes en el bucle y, siempre que la siguiente orden sea inferior a la anterior, seleccionarla para seguir trabajando con ella. Así, cuando salgamos del bucle, se seleccionará la orden a eliminar.

O puede guardar primero su posición en la lista de pedidos en el bucle y después de la salida del bucle seleccionarlo por el índice guardado.

Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Razón de la queja: