Скачать MetaTrader 5

Ускорение тестирования на МТ4 - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrey Egorov
4057
Andrey Egorov  

 да, а у Вас есть пример кода вставки индикатора в советник ? (что-б он считался внутри советника)

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

Victor Nikolaev
Модератор
15096
Victor Nikolaev  
Вам нужно оптимизировать индикаторы. Перенос расчетов в советник не ускорит работу
Andrey Egorov
4057
Andrey Egorov  

возможно нет, я сейчас уже поменял индикаторы и время теста сократилось с 1,5 часов до нескольких минут), спасибо за помощь

у меня теперь задача включить текст индикатора в советник, и его использовать без внешних обращений

Andrey Egorov
4057
Andrey Egorov  
может лучше новую тему создать на форуме, по тому что к теме ускорения тестирования это уже не имеет отношение
Victor Nikolaev
Модератор
15096
Victor Nikolaev  
Mr_Goods:
может лучше новую тему создать на форуме, по тому что к теме ускорения тестирования это уже не имеет отношение
Пока имеет полное отношение. Как влияет алгоритм индикатора на скорость оптимизации советника. Что-то примерно так
Andrey Egorov
4057
Andrey Egorov  

пока такое решение вставки кода индикатора в советник


double BB[300];
double MA_bb[300], Ma_bb_plus[300];

int init(){  

ArraySetAsSeries( BB, true);
ArraySetAsSeries( MA_bb, true);
ArraySetAsSeries( Ma_bb_plus, true);

}

void start()
{
    calc_ind(60);
    if (BB[1] != 0)
       Print("Заработало");
    else
       Print("Что-то опять не так"); 
}

void calc_ind(int TF)
{

 int    BandsPeriod=24;
 double BandsDeviations=2.0;
 int ma_per = 10;
 int ma_per2 = 5;
 int Bands_ma_mode=MODE_EMA;
 int bars  = 300;
 int to_calc = 0;

   int limit;
   int i;
//----

      if (BB[1] != 0 ) to_calc = 2; else to_calc = bars; 

      for(i= to_calc; i >= 0; i--) // for(i=limit - 1; i>=0; i --) 
     {
         double bb_top = iCustom(NULL,TF,"Bands",BandsPeriod,0, BandsDeviations, Bands_ma_mode, 1, i); 
         double bb_low = iCustom(NULL,TF,"Bands",BandsPeriod,0, BandsDeviations, Bands_ma_mode, 2, i); 
         if (bb_top != 0)
         BB[i] = -(bb_low/bb_top - 1); 
         
          
         
         MA_bb[i] =iMAOnArray(BB,0,ma_per,0,MODE_EMA,i); 
         Ma_bb_plus[i] =iMAOnArray(BB,0,ma_per2,0,MODE_EMA,i); 
        
     }       

  }
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий