[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 419

 
melnikas:

¿Es mi caso tan difícil?

double ExtVolumesBuffer[];

tienes razón en cuanto a la ubicación. Debe especificar el tamaño de la matriz antes de utilizarla. O que sea otro búfer

 
//+------------------------------------------------------------------+
int deinit()
  {    
  return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
  f1(); //Как сделать, что-бы после вызова функции, программа могла остановиться?
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(deinit()); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
¿O, desde una función llamada, no se puede detener el funcionamiento del programa? (Ejemplo de código a utilizar en el indicador)
 
fore-x:
¿O, desde una función llamada, no se puede detener el programa? (Código de ejemplo, a utilizar en el indicador)
return(deinit());

¿Qué quieres decir con parar? ¿Quitar el EA/indicador del gráfico?


sobre deinit():

la llamada de deinit no lleva a la desactivación del indicador/indicador, sino que la desactivación lleva a la llamada de deinit

 
ilunga:

¿Qué quieres decir con parar? ¿Quitar el EA/indicador del gráfico?


sobre deinit():

no es la llamada a deinit la que hace que se desactive el indicador/experto, es la desactivación la que hace que se llame a deinit

Stop significa detener la ejecución de la función de inicio - de la función llamada. Como return(0).

Sobre el deinit, soy consciente de ello, por eso no sé cómo resolver este enigma. Al parecer, no se puede hacer así.

 
fore-x:

Stop significa detener la ejecución de la función de inicio - de la función llamada. Como return(0).

Sobre deinit, lo sé, por eso no sé cómo resolver este puzzle. Al parecer, no se puede hacer así.

Entonces, ¿qué le impide devolver (-1) u otra cosa con esta función y hacer una llamada a esta función en start() con una comprobación? por ejemplo, así:

int start()
  {
  if (f1() == -1) return (0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
if (все плохо) return (-1); else return(0);
    }
 
ilunga:

Entonces, ¿qué le impide devolver (-1) u otra cosa con esta función y hacer una llamada a esta función en start() con una comprobación? por ejemplo así:

//+------------------------------------------------------------------+
int start()
  {
  if(f1() < 0) return(0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(-1); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
Te entiendo, solo quería evitar movimientos innecesarios en el código, aclarado. Gracias por el ejemplo.
 
ilunga:

tienes razón en cuanto a la ubicación. Debe especificar el tamaño de la matriz antes de utilizarla. O que sea otro búfer

¡Muchas gracias!
 


dkfl.zrjdktdbx 09.12.2011 16:56

Buenas noches, me he encontrado con que el robot de trading no cierra las posiciones, aproximadamente una de cada 50, cuando alcanza un beneficio. A continuación, tiene que cerrar todo, órdenes pendientes y todo, y configurar de nuevo. El hecho de no cerrar crea confusión en las órdenes y en las detracciones.


¡¡¡¡¡Así que imagínese, a veces resulta que una orden se cerró a la toma de beneficios, Precio Clowes - precio de cierre de la orden - es igual a cero!!!!!

Vea la quinta línea en la captura de pantalla de abajo, es la quinta línea, la orden se cerró en la toma de beneficios. ¡¡¡¡¡Y en la novena línea desde abajo El precio de cierre de la orden es igual a cero!!!!!

Parece que no hay nada especialmente complicado en el código... Te lo mostraré ahora mismo.

Cuando hago un pedido, guardo el tiempo en la ventana de wremjapomnim. Tan pronto como cualquier orden se cierra en currentprofit, borro todas las órdenes y de nuevo recordar el tiempo en el wremjapomnim pyrimen y establecerlos.

for ( i=OrdersHistoryTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY  );
Alert( "wremjapomnim " ,wremjapomnim, "  OrderCloseTime(        )   ",  OrderCloseTime( ),  " ",i , " OrderTakeProfit( ) " ,OrderTakeProfit( ),
  " OrderClosePrice(    )  ",OrderClosePrice(   ) );
if ( OrderTakeProfit( )==OrderClosePrice(       )&&wremjapomnim<OrderCloseTime( )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<2*Point)
   &&wremjapomnim<OrderCloseTime(       )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)>-2*Point)&&wremjapomnim<OrderCloseTime(       )){C=0;A=1 ;  Alert("C",C,"A",A);
   for ( int ii=OrdersTotal();ii>0;ii--){ OrderSelect(ii-1,SELECT_BY_POS );
   if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()){ 
  OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse",  GetLastError( ) ); stsBUY=0;stsSELL=0;
   OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);Alert ("OrderClose-vse",  GetLastError( ) ); C=0; }     }              }
   
                                                      } 
 
La alerta está en la segunda y tercera línea del código y escribe todo en el registro, incluyendo el hecho de queOrderClosePrice( ) de la orden 49 es igual a cero.
 

Dime cómo seguir la formación de un fractal en el EA. Necesito abrir una orden después de la formación de un nuevo fractal. No sé cómo funciona este indicador; tiene una especie de línea superior y otra inferior.

Si, por ejemplo, se forma un fractal y el precio rompe ese mínimo, ¿se volverá a dibujar el fractal o simplemente se añadirá otro?

 
Hola, podrías decirme por favor cómo encontrar el mínimo y el máximo de la última vela por ejemplo
Razón de la queja: