[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 64

 

Raz сделайте константой

#define Raz 5

 
Спасибо!!! 
 

Если нужен переменный размер массива, то как-то так:

// Поиск фракталов
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);
}
 

что-то я не пойму в чем дело....

if ()  {buy}

else while (a<0)

{print ...}

if (...) ... 

 СОВЕТНИК НЕ ВЫХОДИТ ИЗ ЦИКЛА  когда "a" становится БОЛЬШЕ ноля  и на следующее  if не идет

как такое может быть? все печатает и печатает....причем за 10 минут почти 6 гигабайт логов напечатал. это нормально? что-то я не помню чтоб раньше такое было...не первый раз принтую параметры....

 
Круто! Спасибо!!!!!!
 
lottamer:

что-то я не пойму в чем дело....

if ()  {buy}

else while (a<0)

{print ...}

if (...) ... 

 СОВЕТНИК НЕ ВЫХОДИТ ИЗ ЦИКЛА  когда "a" становится БОЛЬШЕ ноля  и на следующее  if не идет

как такое может быть? все печатает и печатает....причем за 10 минут почти 6 гигабайт логов напечатал. это нормально? что-то я не помню чтоб раньше такое было...не первый раз принтую параметры....


Попробуйте добавить скобки:

if ()  {buy}

else{ while (a<0)

{print ...}}

if (...) ... 

 
tara:

Попробуйте добавить скобки:

if ()  {buy}

else{ while (a<0)

{print ...}}

if (...) ... 


не сработало. 
 
а что означает 2013.01.09 19:37:44 Robot_zero EURUSD,M1: shutdown by timeout    ?

 
lottamer:
а что означает 2013.01.09 19:37:44 Robot_zero EURUSD,M1: shutdown by timeout    ?


отключения по тайм-ауту
 

Всем привет ! Помогите если это возможно переделать? хочется чтоб  позиции открывались по закрытии свечи ниже или выше линии .Может какой отдельно скрипт добавить ?

ЭТО ЧАСТЬ ЭКСПЕРТА

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

//| Открытие позиции                                                 |
//+------------------------------------------------------------------+
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);
    }
  }
}