[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 358

 
Chiripaha:

Este parámetro es el responsable del color de la flecha de borrado https://docs.mql4.com/ru/trading/OrderDelete - Puede quitarlo (el parámetro) de ahí del todo, entonces la flecha no aparecerá sin más. Y si realmente necesitas una flecha, será mejor que vuelvas a leer la sección Tipos de variables del libro.

Por cierto, lo mismo no soy particularmente sofisticado en la codificación (algunas personas lo llaman programación, sin distinguir entre estos conceptos - pero es la codificación). Y también se metió en los libros de referencia y buscó lo que son estas cosas. Masticar más a menudo los libros de referencia y los libros de texto. Por lo general, la mayoría de los temas están cubiertos allí. - Todo el mundo lo hace, incluso los más experimentados, ya que no se puede memorizar todo. Todos estos son materiales de referencia.

clDelete - como puede adivinar, cl es color, Delete es borrado. El color del borrado.


Muchas gracias por la respuesta, ya he eliminado la variable clDelete

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
  if (sy=="") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) 
          {
          OrderDelete(OrderTicket());
          }

Pero en este caso el compilador genera otro error.

'DeleteOrders' - la función no devuelve ningún resultado C:\N-Archivos de Programa\N-Alpari NZ MT4\experts/delete.mq4 (68, 5)

Cómo solucionarlo.


 
solnce600:

¡Buenas tardes a todos!

Estoy tratando de utilizar la función para eliminar TODOS los pedidos pendientes en el probador de las funciones de Kim

Cuando intento compilarlo, me sale un error diciendo que la variable 'clDelete ' no está definida.

'clDelete' - variable no definida C:\NArchivos de Programa\NAlpari NZ MT4\\Nexpertos\NPositivos.mq4 (94, 38)

Por favor, dígame: ¿cómo y dónde debe definirse?

Gracias.

Primero, invierte el bucle:

    for (i = k - 1; i <= 0; i--)

y dar a la función OrderDelete( ) lo que quiere.

 
TarasBY:

Enumeración de matrices:

- Si entiendo bien sus "deseos".

Igor, ¡muchas gracias!

Según tengo entendido, no hay ninguna función especial, así que tiene que ser por fuerza bruta.

 
Chiripaha:

Igor, ¡muchas gracias!

Según tengo entendido, no hay ninguna función especial, así que tiene que ser exagerado.

No existe una función estándar.
 
solnce600: 'DeleteOrders' - la función no devuelve ningún resultado C:\N-Archivos de Programa\N-Alpari NZ MT4\N-Experts\N-Orders.mq4 (68, 5)

¡Su función (autoescrita) DeleteOrders() no devuelve NADA! Mira en tu código: cómo lo llamas.
 

Muchas gracias por su pronta respuesta.

El bucle se ha desplegado.

Ahora genera otro error

DeleteOrders' - la función no devuelve ningún resultado

¿Y qué más necesita la función OrderDelete(OrderTicket()) como parámetro pasado excepto OrderTicket() y aparte del color de la flecha (que no necesito)?

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  
  if (sy=="") sy=Symbol();
   for (i = k - 1; i <= 0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) 
          {
          OrderDelete(OrderTicket());
 
TarasBY:
Su función (autoescrita) DeleteOrders() no devuelve NADA. Mira tu código: cómo lo llamas.
Es decir, ¿debería haber líneas TRUE o FALSE al final del código de su función personalizada?
 
TarasBY:
Su función (autoescrita) DeleteOrders() no devuelve NADA. Mira en tu código - cómo lo llamas.

Líneas insertadas al final del código de la función que devuelve true

Se ha modificado la llamada a la función

R = DeleteOrders(true);
if(R ==true )

Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol (), 0,1)-1500*Punto,1,iHigh( Symbol (), 0,1),iHigh( Symbol (), 0,1)-1610*Punto, "jfh",123 );//ENA
//Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol (), 0,1)-1000*Punto,1,iHigh( Symbol (), 0,1)+330*Punto,iHigh( Symbol (), 0,1)-1100*Punto, "jfh",123 );//ENA
if (Ticket>0)
X=iHigh( Symbol (), 0,1);
if (OrderSelect (ot-1,SELECT_BY_POS)
if ( OrderType ()==OP_SELLSTOP)
DT = OrderOpenTime ();

}
}

return(0);

void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;

if (sy=="") sy=Símbolo();
for (i = k - 1; i <= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn)
{
int W = OrderDelete(OrderTicket());
if (W==true)
return(true);

Devuelve el mismo error.

'DeleteOrders' - la función no devuelve ningún resultado

¿Podría decirme cuál es mi error?

Gracias.

 
solnce600:

Líneas insertadas al final del código de la función que devuelve true

Se ha modificado la llamada a la función

R = DeleteOrders(true);
if(R ==true )

Se ha olvidado el tipo de función:

void bool DeleteOrders (string sy="", int op=-1, int mn=-1)
 
TarasBY:

Se olvida el tipo de función:

¡¡Todo bien!! ¡¡Muchas gracias!!
Razón de la queja: