Мультивалютный советник на основе кластерных индикаторов - страница 4

 

Меня вот больше другой вопрос интересует. Вот эта функция в индикаторе.

//+------------------------------------------------------------------+
//|  Subroutine                                                      |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
  {
   double res = 0;
   int k = 1;
   int ma_shift = 0;
   int tf = 0;
   switch(Period())
     {
       case 1:     res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 5;  // k=6;
       case 5:     res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 3;  // k=9;
       case 15:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 2;  // k=11;
       case 30:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 2;  // k=13;
       case 60:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 4;  //k=17;
       case 240:   res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 6;  //k=23;
       case 1440:  res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 4;  //k=27;
       case 10080: res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k += 4;  //k=31;
       case 43200: res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
     }
   return(res);
  }  
//+------------------------------------------------------------------+

Похоже что знак перепутан был. Умножение должно было быть

//+------------------------------------------------------------------+
//|  Subroutine                                                      |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
  {
   double res = 0;
   int k = 1;
   int ma_shift = 0;
   int tf = 0;
   switch(Period())
     {
       case 1:     res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 5;  // k=5;
       case 5:     res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 3;  // k=15;
       case 15:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 2;  // k=30;
       case 30:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 2;  // k=60;
       case 60:    res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 4;  // k=240;
       case 240:   res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 6;  // k=1440;
       case 1440:  res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 4;  // k=5760;
       case 10080: res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
                   k *= 4;  // k=23040
       case 43200: res += iMA(sym, tf, per*k, ma_shift, Mode, Price,i);
     }
   return(res);
  }  
//+------------------------------------------------------------------+

Да и то в последних двух расчетах ошибка сделана.

Почему?

 
Vinin >>:

Меня вот больше другой вопрос интересует. Вот эта функция в индикаторе.

Похоже что знак перепутан был. Умножение должно было быть

Да и то в последних двух расчетах ошибка сделана.

Почему?

Этот вопрос скорей должен быть адресован автору индикаторов - Семен Семенычу. но его уж давно не слышно и не видно. Насколько я понимаю, то индикаторы расчитываются из мысли того, что сумма линий всех валют в момент времени равна 0. Может быть из этих соображений идет сложение, а не умножение.

Хотя визуально разница очевидна


 

Коллеги, прошу прощения, что не совсем по теме обсуждения....


просто уточнить:

есть ли методики тестирования мультивалютных советников?


Спасибо.

 
Morzh09 писал(а) >>

Коллеги, прошу прощения, что не совсем по теме обсуждения....

просто уточнить:

есть ли методики тестирования мультивалютных советников?

Спасибо.

При тестирования в МТ4 существует ряд проблем. Основная - не совсем корректная работа с памятью. В общем не хватает. Самое разумное - импортировать котирвки (синхронизированные) в программу анализа и делать все там уже. Включая и расчет индикаторов.

 
Vinin >>:

При тестирования в МТ4 существует ряд проблем. Основная - не совсем корректная работа с памятью. В общем не хватает. Самое разумное - импортировать котирвки (синхронизированные) в программу анализа и делать все там уже. Включая и расчет индикаторов.

Какие программы анализаторы вы можете посоветовать?

 
evbut писал(а) >>

Какие программы анализаторы вы можете посоветовать?

Обычно каждый использует то, что он лучше знает.

 
Vinin >>:

Меня вот больше другой вопрос интересует. Вот эта функция в индикаторе.

Похоже что знак перепутан был. Умножение должно было быть

Да и то в последних двух расчетах ошибка сделана.

Почему?

А вы могли бы подправить индикатор как писали здесь. т.е. добавить синхронизацию по времени и контроль загрузки истории?

 
evbut писал(а) >>

А вы могли бы подправить индикатор как писали здесь. т.е. добавить синхронизацию по времени и контроль загрузки истории?

Могу конечно, точнее сделать свой аналог. Чужой уж индикатор править не стоит. Надо его оставлять в авторском исполнении.

 
Vinin >>:

Меня вот больше другой вопрос интересует. Вот эта функция в индикаторе.

Похоже что знак перепутан был. Умножение должно было быть

Да и то в последних двух расчетах ошибка сделана.

Почему?

Да, похоже на ошибочку. А дни видимо надо умножить на 5 чтоб получить неделю.

С другой стороны авторский вариант "рисует симпатишнее", зубов меньше. Семеныча бы сюда.


USDJPY


 
BLACK_BOX >>:

Семеныча бы сюда.


да гдеж его найдешь :)


Найдутся желающие за реализацию ТС в коде?

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