Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Скачай MetaTrader 5 и начни торговать уже сегодня!
Andrey Egorov
3690
Andrey Egorov 2015.12.13 12:03  

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

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

Victor Nikolaev
Модератор
14205
Victor Nikolaev 2015.12.13 12:19  
Вам нужно оптимизировать индикаторы. Перенос расчетов в советник не ускорит работу
Andrey Egorov
3690
Andrey Egorov 2015.12.13 12:26  

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

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

Andrey Egorov
3690
Andrey Egorov 2015.12.13 12:59  
может лучше новую тему создать на форуме, по тому что к теме ускорения тестирования это уже не имеет отношение
Victor Nikolaev
Модератор
14205
Victor Nikolaev 2015.12.13 13:04  
Mr_Goods:
может лучше новую тему создать на форуме, по тому что к теме ускорения тестирования это уже не имеет отношение
Пока имеет полное отношение. Как влияет алгоритм индикатора на скорость оптимизации советника. Что-то примерно так
Andrey Egorov
3690
Andrey Egorov 2015.12.15 13:25  

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


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
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий