[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 64

 

Hacer de Raz una constante

#define Raz 5

 
¡¡¡Gracias!!!
 

Si se requiere un tamaño de matriz variable, es algo así:

// Поиск фракталов
void fFractals(bool     РегулярностьЛевогоКрыла,
               bool     РегулярностьПравогоКрыла,
               int      ДлинаЛевогоКрыла,
               int      ДлинаПравогоКрыла,
               int      LostBars,
               int&     LFractals,int& HFractals,
               double&  LowF[],double& HighF[]) {
   double R, C[];
   int dim, i, j, Error;
   dim=ArrayResize(C, ДлинаЛевогоКрыла+1+ДлинаПравогоКрыла);
   if( LostBars<Bars-1 ) {
      i=ДлинаПравогоКрыла+БарОкончания+LostBars;
   }
   else {
      i=FirstBar-ДлинаЛевогоКрыла;
   }
   while( i>=ДлинаПравогоКрыла+БарОкончания ) {
      j=0;
      R=0;
      while ( j<dim ) { C[j]=High[j+i-ДлинаПравогоКрыла]; j++; }
      if( ( ( C[ДлинаПравогоКрыла]-C[ДлинаПравогоКрыла+1]> Zero &&  РегулярностьЛевогоКрыла )
         || ( C[ДлинаПравогоКрыла]-C[ДлинаПравогоКрыла+1]>-Zero && !РегулярностьЛевогоКрыла ) )
       && ( ( C[ДлинаПравогоКрыла]-C[ДлинаПравогоКрыла-1]> Zero &&  РегулярностьПравогоКрыла )
         || ( C[ДлинаПравогоКрыла]-C[ДлинаПравогоКрыла-1]>-Zero && !РегулярностьПравогоКрыла ) ) ) {
         R=C[ДлинаПравогоКрыла];       // Локальный максимум
         j=1;
         while ( j < dim ) {
            if( ( j< ДлинаПравогоКрыла && C[j-1]-C[j]>-Zero &&  РегулярностьПравогоКрыла )
             || ( j> ДлинаПравогоКрыла && C[j]-C[j-1]>-Zero &&  РегулярностьЛевогоКрыла  )
             || ( j< ДлинаПравогоКрыла && C[j-1]-R   > Zero && !РегулярностьПравогоКрыла )
             || ( j> ДлинаПравогоКрыла && C[j]-R     > Zero && !РегулярностьЛевогоКрыла  ) ) {
               R=0;                    // Нет фрактала
               break;
            }
            j++;
      }  }
      if( R > Zero && HighF[i]<Zero ) {
         HFractals++;
         HighF[i]=R;
      }
      j=0;
      R=0;
      while ( j < dim ) { C[j]=Low[j+i-ДлинаПравогоКрыла]; j++; }
      if( ( ( C[ДлинаПравогоКрыла+1]-C[ДлинаПравогоКрыла]> Zero &&  РегулярностьПравогоКрыла )
         || ( C[ДлинаПравогоКрыла+1]-C[ДлинаПравогоКрыла]>-Zero && !РегулярностьПравогоКрыла ) )
       && ( ( C[ДлинаПравогоКрыла-1]-C[ДлинаПравогоКрыла]> Zero &&  РегулярностьПравогоКрыла )
         || ( C[ДлинаПравогоКрыла-1]-C[ДлинаПравогоКрыла]>-Zero && !РегулярностьПравогоКрыла ) ) ) {
         R=C[ДлинаПравогоКрыла];       // Локальный минимум
         j=1;
         while ( j < dim ) {
            if( ( j< ДлинаПравогоКрыла && C[j]-C[j-1]>-Zero &&  РегулярностьПравогоКрыла )
             || ( j> ДлинаПравогоКрыла && C[j-1]-C[j]>-Zero &&  РегулярностьЛевогоКрыла  )
             || ( j< ДлинаПравогоКрыла && R-C[j-1]   > Zero && !РегулярностьПравогоКрыла )
             || ( j> ДлинаПравогоКрыла && R-C[j]     > Zero && !РегулярностьЛевогоКрыла  ) ) {
               R=0;                    // Нет фрактала
               break;
            }
            j++;
      }  }
      if( R > Zero && LowF[i]<Zero ) {
         LFractals++;
         LowF[i]=R;
      }
      i--;
   }
   return(0);
}
 

No entiendo de qué va esto....

si () {comprar}

else while (a<0)

{imprime ...}

si (...) ...

EL CONTADOR NO SALE cuando "a" es mayor que cero y no pasa al siguiente si

¿cómo puede ser esto? todo se imprime e imprime.... me tomó 10 minutos para imprimir casi 6 gigabytes de registros. ¿es esto normal? no recuerdo esto antes... no es la primera vez que imprimo los parámetros de....

 
¡Impresionante! ¡¡¡¡¡¡Gracias!!!!!!
 
lottamer:

No entiendo de qué va esto....

si () {comprar}

else while (a<0)

{imprime ...}

si (...) ...

COUNTER NO SALE del bucle cuando "a" es mayor que cero y no pasa al siguiente if

¿cómo puede ser esto? todo se imprime e imprime.... me tomó 10 minutos para imprimir casi 6 gigabytes de registros. ¿es esto normal? no recuerdo que haya sucedido antes... no es la primera vez que imprimo los parámetros....


Prueba a añadir paréntesis:

si () {comprar}

else{ while (a<0)

{impresión ...}}

si (...) ...

 
tara:

Prueba a añadir paréntesis:

si () {comprar}

else{ while (a<0)

{impresión ...}}

si (...) ...


no funcionó.
 
¿qué hace 2013.01.09 19:37:44 Robot_zero EURUSD,M1: apagado por tiempo de espera?

 
lottamer:
¿qué hace 2013.01.09 19:37:44 Robot_zero EURUSD,M1: apagado por tiempo de espera?


apagado por tiempo de espera
 


ESTO ES PARTE DEL EXPERTO

//+------------------------------------------------------------------+

//| Abrir una posición|
//+------------------------------------------------------------------+
void OpenPositions() {
bool lbBuy=False, lbSell=False;
double ldStop=0, ldTake=0;

if ((Ask>gdPrevAsk && Ask>=gdUpPrice && ebBuyFromUp)
¡|| (Ask<gdPrevAsk && Ask<=gdDnPrice && ebBuyFromDn)) lbBuy=True;
if ((Bid>gdPrevBid && Bid>=gdUpPrice && !ebBuyFromUp)
|| (Bid<gdPrevBid && Bid<=gdDnPrice && !ebBuyFromDn)) lbSell=True;

if (lbBuy) {
if (ExistPositionByOP(OP_SELL)) CloseAllPositions();
if (!ExistPositionByOP(OP_BUY)) {
if (StopLoss!=0) ldStop=Ask-StopLoss*Point;
if (TakeProfit!=0) ldTake=Ask+TakeProfit*Point;
OpenPosition(OP_BUY, ldStop, ldTake);
}
}
if (lbSell) {
if (ExistPositionByOP(OP_BUY) CloseAllPositions();
if (!ExistPositionByOP(OP_SELL)) {
if (StopLoss!=0) ldStop=Bid+StopLoss*Point;
if (TakeProfit!=0) ldTake=Bid-TakeProfit*Point;
OpenPosition(OP_SELL, ldStop, ldTake);
}
}
}
Razón de la queja: