Почему так долго идет оптимизация?

 
Здравствуйте! Сделал эксперта, индикатор по которому он работает не в "теле" эксперта а вызывается функц. iCustom, попробовал оптимизировать по всем тикам старт 1 шаг 1 стоп 24! Эти 24 параметра он мне оптимизирова почти час. Что ему мешат непонимаю. Может из за того что индюк не в "теле"?
 

Правильно приготовленные индикаторы не тормозят тестирования.

 
Integer >>:

Правильно приготовленные индикаторы не тормозят тестирования.

А можно рецепт?

 
//+------------------------------------------------------------------+
//|                                                     ASCtrend.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Magenta

extern int RISK=4;
extern int AllBars=250;
int up=0,dn=0;
double val1buffer[];
double val2buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);

SetIndexBuffer(0, val1buffer);
SetIndexStyle(0,DRAW_ARROW,EMPTY);
SetIndexArrow(0,108);

SetIndexBuffer(1, val2buffer);
SetIndexStyle(1,DRAW_ARROW,EMPTY);
SetIndexArrow(1,108);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{ 
double value2;
double value3;
double value10=10;
double value11;
double x1=70;
double x2=30;
int TrueCount;
int counter;
int MRO1;
int MRO2;
int i1;
double Range;
double AvgRange;
double val1;
double val2;
double Table_value2[500][2];
value10=3+RISK*2;
x1=67+RISK;
x2=33-RISK;
value11=value10;
//---------------------------- 
int i;
int shift = AllBars;
if (shift > Bars) shift = Bars;

for(i=shift; i>0; i--)
   {
   counter=i;
   Range=0;
   AvgRange=0;
   for(counter=i;counter<=i+9;counter++)
      {
      AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
   Range=AvgRange/10;
   counter=i;
   TrueCount=0;
   while(counter<i+9 && TrueCount<1)
      {
      if(MathAbs(Open[counter]-Close[counter+1])>=Range*2.0 ) TrueCount++;
      counter++;
      }
   if(TrueCount>=1) MRO1=counter; 
   else MRO1=-1;
   counter=i;
   TrueCount=0;
   while(counter<i+6 && TrueCount<1)
      {
      if(MathAbs(Close[counter+3]-Close[counter])>=Range*4.6) {TrueCount++;}
      counter++;
      }
   if(TrueCount>=1) MRO2=counter; 
   else MRO2=-1;
   if (MRO1>-1) value11=3; 
   else value11=value10;
   if (MRO2>-1) value11=4; 
   else value11=value10;
   value2=100-MathAbs(iWPR(NULL,0,value11,i));
   Table_value2[i][0]=i;
   Table_value2[i][1]=value2;
   val1=0;
   val2=0;
   value3=0;
//------------------- val1 
   if(value2<x2 ) // x2 = 30
      {
      i1=1;
      while(Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1) {i1++;}
      if (Table_value2[i+i1][1]>x1)
         {
         value3=High[i]+Range*0.5;
         val1=value3;
         }
      }
//------------------- val2 
   if ( value2>x1) // x1 = 70 
      { 
      i1=1;
      while (Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1) {i1++;}
      if (Table_value2[i+i1][1]< x2)
         {
         value3=Low[i]-Range*0.5;
         val2=value3;
         } 
      }
//-------------------
   if (val2!=0 && up==0 )
      { 
      val1buffer[i]= val2-1*Point;
      val2buffer[i]=EMPTY_VALUE;
      up=1;
      dn=0;
      } 
   if (val1 !=0 && dn==0)
      {
      val1buffer[i]=EMPTY_VALUE;
      val2buffer[i]= val1+1*Point;
      dn=1;
      up=0;
      }
   }
  return(0);
}
Буду признателен если прокомментируете правльно он приготовлен или нет :)
 
Сейчас отрихтую
 
Integer, спасибо приятно общаться с людьми которые могут помочь в любой момент
 
Получилось, должен летать.
Файлы:
 
Integer Вы волшебник! СПАСИБО огромное!
 
sol писал(а) >>

А можно рецепт?

Это творчески процесс, все на глазок:)

 
Блин сижу радуюсь как ребенок, которому дали машинку :)
 

Уважаемый Integer! Если не сложно подскажите еше пожалуйста код или библиотеку для закрытия сделок по времени (чтобы все сделки например закрывались в 23:59) гдето видел найти немогу :(

или можно даже интервал времени наприемер работаем с 8:00 по 23:59 в 23:59 закрываем все сделки

Причина обращения: