Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1365

 

В общем сделал так, спасибо за подсказки , низкий поклон вам, жители Горы))

//+------------------------------------------------------------------+
//| Получим Lowest для заданного промежутка                          |
//+------------------------------------------------------------------+
double CNewBar::iLowMin(int ot,int bands)
  {
   double result=EMPTY_VALUE;
    for(int i=ot; i<ot+bands; i++)
      if(m_ExtLowerBuffer[i]!=NULL)
         if(m_ExtLowerBuffer[i]<result)
            result=m_ExtLowerBuffer[i];
   return(result);
  }
//+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax(int ot,int bands)
  {
   double result=NULL;
   for(int i=ot; i<ot+bands; i++)
      if(m_ExtUpperBuffer[i]!=NULL)
         if(m_ExtUpperBuffer[i]>result)
            result=m_ExtUpperBuffer[i];
   return(result);
  }

Если есть более простой вариант, очень интересно какой для системы

 

Хелп, кто-нибудь может помочь!

Как перебрать массив чтобы перебор был

1) по диагонали

2) в диапазоне значения (0) 


Кручу мучу эти алгоритмы, ни как не попаду 

void OnStart()
{
   for( int k = 0; k < ARRAY_SIZE_X; k++ ){
      for( int x = k, y = 0; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print( "y = ", y, ", x = ", x );
         if( array[y][x] > 0 )
         {
         }
      }
   }
   for( int k = 1; k < ARRAY_SIZE_Y; k++ ){
      for( int x = ARRAY_SIZE_X-1, y = k; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print( "y = ", y, ", x = ", x );
         if( array[y][x] > 0 )
         {
         }
      }
   }
}
 
Mikhail Toptunov #:

Хелп, кто-нибудь может помочь!

Как перебрать массив чтобы перебор был

1) по диагонали

2) в диапазоне значения (0) 


Кручу мучу эти алгоритмы, ни как не попаду 

Если по диагонали, то достаточно одного цикла. Или я не правильно понял вопрос.

Возможно это вам надо

/********************Script program start function*******************/
void OnStart()
 {
  int array[5][3];
  for(int k = 0; k < ArrayRange(array, 0); k++)
   {
    for(int x = 0; x < ArrayRange(array, 1); x++)
     {
      if(k+x >= ArrayRange(array, 0))
        break;
      Print("array[", k+x, "][", x, "]", array[k+x][x]);
     }
   }
 }/******************************************************************/
/*****************************End program****************************/
но это черновой вариант…
 
Alexey Viktorov #:

Если по диагонали, то достаточно одного цикла. Или я не правильно понял вопрос.

Возможно это вам надо

но это черновой вариант…

хм прикольное решение. получилось вот это , надо отобразить иначе. пока думаю как


 

Блинннн, вообще не могу сообразить как пройтись в диагонали , по нулям.

 

Предложили покрутить такой вариант ну не получается вообще!

void OnStart()
 {
  int array[5][3];
  for(int k = 0; k < ArrayRange(array, 0); k++)
   {
    for(int x = 0; x < ArrayRange(array, 1); x++)
     {
      if(k+x >= ArrayRange(array, 0))
        break;
      Print("array[", k+x, "][", x, "]", array[k+x][x]);
     }
   }
 }/******************************************************************/
 
Mikhail Toptunov #:

Блинннн, вообще не могу сообразить как пройтись в диагонали , по нулям.

 

Предложили покрутить такой вариант ну не получается вообще!

Вот такая штука получилась


   for(int pu=1; pu< nb.m_pmax; pu++)
      for(int p = pu, b = nb.m_rt-1; p >= pu-p-1 && b >= 0; p--, b--)
         Svjazka0_2(p,b,pu,tf);
   for(int pu=nb.m_rt-2; pu >0; pu--)
      for(int p = nb.m_pmax-1, b =pu; p >= p && b >= pu-b; p--, b--)
         Svjazka0_2(p,b,pu,tf);
 
Mikhail Toptunov #:

Блинннн, вообще не могу сообразить как пройтись в диагонали , по нулям.

 

Предложили покрутить такой вариант ну не получается вообще!

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2021.11.02 07:45

Если по диагонали, то достаточно одного цикла. Или я не правильно понял вопрос.

Возможно это вам надо

/********************Script program start function*******************/
void OnStart()
 {
  int array[5][3];
  for(int k = 0; k < ArrayRange(array, 0); k++)
   {
    for(int x = 0; x < ArrayRange(array, 1); x++)
     {
      if(k+x >= ArrayRange(array, 0))
        break;
      Print("array[", k+x, "][", x, "]", array[k+x][x]);
     }
   }
 }/******************************************************************/
/*****************************End program****************************/
но это черновой вариант…

Ну покрутил… И чего добился? Чего хотел получить?

Предложенный код проходит массив по диагонали, проверено. Что ещё надо? Типа «угадай с трёх раз»?

 

Я только, только установил МТ5 и подключил демо счет. Очень прошу, помогите мне, пожалуйста, через teamviewer разобраться как пользоваться программой без роботов и советников. Мне нужно понимать, как делать вручную простейшие операции.

Скажите, пожалуйста, это вообще возможно? Мне желательно разобраться в короткий срок. Буду очень признателен и благодарен тому человеку. Разумеется это всё не коммерческой основе.

 
Kremlin2000 #:

Я только, только установил МТ5 и подключил демо счет. Очень прошу, помогите мне, пожалуйста, через teamviewer разобраться как пользоваться программой без роботов и советников. Мне нужно понимать, как делать вручную простейшие операции.

Скажите, пожалуйста, это вообще возможно? Мне желательно разобраться в короткий срок. Буду очень признателен и благодарен тому человеку. Разумеется это всё не коммерческой основе.

не терпится слить реальные деньги?

сами пробуйте, счет ведь демо, нажимайте любые кнопки. на не коммерческой основе, кому это интересно, потом еще вопросами засыпете.

 
Kremlin2000 #:

Я только, только установил МТ5 и подключил демо счет. Очень прошу, помогите мне, пожалуйста, через teamviewer разобраться как пользоваться программой без роботов и советников. Мне нужно понимать, как делать вручную простейшие операции.

Скажите, пожалуйста, это вообще возможно? Мне желательно разобраться в короткий срок. Буду очень признателен и благодарен тому человеку. Разумеется это всё не коммерческой основе.

Нажмите волшебный клавиш F1 и читайте…