[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 252

 

drknn, ¿se trata de un límite en el número de pedidos?

int SchBuy(int MAGIC){
  string SMB=Symbol();
  int SchBuy=0;
  int i;
  for ( i=OrdersTotal()-1; i>=0; i--) {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) { WriteError( i);}
    else {
      if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;}
      if(OrderType()==OP_BUY){ 
        SchBuy++;
      }  
    }
  }
  return( SchBuy);
}                  
//==================================================================================================


//=========== SchSell()  ===============================
//  Функция возвращает количество Sell-ордеров
//  SchSell  - счётчик Sell ордеров
//-----------------------------------------------------------
int SchSell(int MAGIC){
  string SMB=Symbol();
  int SchSell=0;
  int i;
  for ( i=OrdersTotal()-1; i>=0; i--){
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) { WriteError( i);}
    else {
      if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;} 
      if(OrderType()==OP_SELL){
        SchSell++;
      }
    }
  }
 return( SchSell);     
}                  
 
IlyaA >> :


Hey hombre puedes hablar así o así :) >> Me estoy rompiendo los ojos. :)

:-)) Sí, me podéis gustar, pero no creo que podamos gustar a todos, que ...... ya dolgen pusat na translute, tak na rabote gde rabotayu vse klavu s Uspanskoj raskladkoj. Uzvunyajte.

 
Ibiss >> :

drknn, ¿se trata de un límite en el número de pedidos?



Pues bien, llega una señal comercial. Digamos que llega una señal para abrir una orden de compra. Antes de abrirla, volvemos a calcular las órdenes de compra en nuestro par. Si no hay ninguno, abrimos una orden. Si hay al menos 1 orden, la segunda orden de compra no se abrirá en la misma señal.

Estas dos subrutinas son sólo contadores de órdenes.

Por cierto, limitar las órdenes en una sola vela utilizando contadores no es la única forma de evitar el amontonamiento de órdenes en una sola vela.

 

Obtengo un error durante la compilación:

'WriteError' - la función no está definida

¿tal vez 'WriteError' debería ser declarado en variables globales? no lo entiendo todavía)

gracias)


 
Ayer leí "Gap 1_500 o cómo volcar un DC" y se me ocurrió un pensamiento similar. En resumen. Qué pasa si abrimos posiciones en instrumentos bien correlacionados (coeficiente => -1 y 1) en ambas direcciones. La pérdida en el primer instrumento se cerrará con el beneficio en el segundo y puede sobrar algo de pan. Pero algo me dice que la idea no es nueva. Tenga la amabilidad de comentarlo.
 

Escribí un indicador, muestra el valor Alto-Bajo como un histograma B si el valor es mayor que el anterior - verde, por debajo - rojo. pero el indicador no se muestra en la térmica, ¿cuál es el error?

El código del indicador:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

int BarsCount = 10000;

//---- buffers
double buf_1[], buf_2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
    SetIndexStyle(0,DRAW_HISTOGRAM);
    SetIndexBuffer(0, buf_1);
    SetIndexStyle(1,DRAW_HISTOGRAM);
    SetIndexBuffer(1, buf_2);
    //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
int i, HL_0, HL_1;
//----
   int limit = BarsCount;
    if ( limit > Bars)
        limit = Bars;
        
   for ( i = limit; 0 <= i; i--) {

        HL_0 = High[ i]-Low[ i];
        HL_1 = High[ i-1]-Low[ i-1];
        
        if( HL_0> HL_1) buf_1[ i] = HL_0;
        if( HL_0< HL_1) buf_2[ i] = HL_0;
        }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Ibiss >> :

Obtengo un error durante la compilación:

'WriteError' - la función no está definida

¿tal vez 'WriteError' debería definirse en variables globales? no lo entiendo todavía)

gracias)



Así es, no tienes la función WriteError(i). Esta es mi función personal de manejo de errores
 
¿Por qué? La función Sleep() no funciona en el probador???
 
AndBar писал(а) >>

:-)) Sí, me podéis gustar, pero no creo que podamos gustar a todos, que ...... ya dolgen pusat na translute, tak na rabote gde rabotayu vse klavu s Uspanskoj raskladkoj. Uzvunyajte.

¿'kogda je budet MQL5?

>> este hilo te ayudará. Todas las variantes están disponibles aquí.

 
RomanS >> :
¿Por qué? La función Sleep() no funciona en el probador???

Si no me equivoco, he leído en algún sitio que no funciona.