Индикаторы: CCFp

 

CCFp:

Модернизированный индикатор Семен Семеныча

Author: Victor Nikolaev

 

А почему всё наоборот (вверх ногами)? На графике валюта падает на индикаторе растёт.

 

я бы назвал его по другому, индикатор - "Аццкие Нити"

 
Serj_Che:

А почему всё наоборот (вверх ногами)? На графике валюта падает на индикаторе растёт.



Надо параметры Fast и Slow соответствующие сделать

 
excelf:

я бы назвал его по другому, индикатор - "Аццкие Нити"


Идя не моя, название уже было. Могу только выожить очередную версию. С фильтром по текущему инструменту. Но это если необходимо будет

 

Пардон, но не вижу как раз синхнронизации, т.е. чтобы время нулевого бара у всех инструментов совпадало. Я для своей модификации (не совсем CCFp уже) делал.


Выглядит примерно так:



bool Sync = true;
int start()
{
   // synchronization
   string StrUnsync;
   int u;
   int n = ArraySize(Symbols);
   for(int j = 0; j < n; j++)
   {
     if(iTime(Symbols[j], 0, 0) != Time[0])
     {
       StrUnsync = StrUnsync + Symbols[j] + " ";
       u++;
     }
   }
   if(u > 0)
   {
     Comment("Some symbols are unsynchonized:", StrUnsync);
     Sync = false;
     return(-1);
   }
   else
   {
     if(!Sync) Comment("");
     Sync = true;
   }
...
}

Исходный подход СёмСёмыча с проходом от нуля влево и обрывом расчета, когда по какой-либо паре заканчиваются данные, мне показался более гибким. Я там для себя Print поставил, но можно и Alert.


Наличие истории на заданную глубину требуется не только в CCFp, поэтому имеет смысл её проверять (и закачивать) отдельным скриптом, ИМХО. ;-)

 
marketeer:

Пардон, но не вижу как раз синхнронизации, т.е. чтобы время нулевого бара у всех инструментов совпадало. Я для своей модификации (не совсем CCFp уже) делал.


Выглядит примерно так:



 

Исходный подход СёмСёмыча с проходом от нуля влево и обрывом расчета, когда по какой-либо паре заканчиваются данные, мне показался более гибким. Я там для себя Print поставил, но можно и Alert.


Наличие истории на заданную глубину требуется не только в CCFp, поэтому имеет смысл её проверять (и закачивать) отдельным скриптом, ИМХО. ;-)




Что такое синхронизация. Для меня это поиск ближайшего бара, равного по времени заданному времени


В моем варианте не хватает контроля. Раньше немного по другому делал


double ma(string sym, int per, int Mode, int Price, int i)
  {
   double res = 0;
   int tf = 0;
   int pos=iBarShift(NULL,0,Time[i]);  // Поиск бара 
   //  .......................
   return(res);
  }   

Не хватает контроля найденного бара. Его время должно быть равно или меньше времени бара текущего инструмента

 
Vinin:
 

  

   Eще в теме мультивалютного советника вроде, вы высказали идею как исправить данный индикатор. Внес изменения-не понравилось.
  Сейчас скачал данный вариант, опять та же проблема. на ТФ Н4 и ниже линии валют идут параллельно друг другу очень долго.
  Не показывая реальной динамики. Наверное вы сделали индикатор правильно, но тот, неправильный, написанный ранее, более 
  информативен.
 
Давно уже заприметил этот индикатор... долго изучал его. Заметил у него очень интересные свойства, которые он дает по приоритету позиции по определенным парам. Но общая картина дает не более информации чем отдельный индикатор на каждом графике, поэтому попрощался с ним и вернулся к более простым инструментам.

 

Просто просматривал, не запускал, заметил нечто - решил спросить.
Вы точно не пропустили здесь break ?

Так для  Period() == 1 будут выполняться все case  подряд, насколько понимаю.
Спасибо.
 

 

//+------------------------------------------------------------------+
//|  Subroutines                                                     |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
  {
   double res = 0;
   int k = 1;
   int tf = 0;
   int pos=iBarShift(NULL,0,Time[i]);
   switch(Period())
     {
       case     1: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 5; // break;
       case     5: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 3// break;
       case    15: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2// break;
       case    30: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2// break;
       case    60: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case   240: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 6// break;
       case  1440: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case 10080: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case 43200: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); // break;
     } 
   return(res);
  }   

 
Sergey Dzyublik:

Просто просматривал, не запускал, заметил нечто - решил спросить.
Вы точно не пропустили здесь break ?

Так для  Period() == 1 будут выполняться все case  подряд, насколько понимаю.
Спасибо.
 

 

//+------------------------------------------------------------------+
//|  Subroutines                                                     |
//+------------------------------------------------------------------+
double ma(string sym, int per, int Mode, int Price, int i)
  {
   double res = 0;
   int k = 1;
   int tf = 0;
   int pos=iBarShift(NULL,0,Time[i]);
   switch(Period())
     {
       case     1: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 5; // break;
       case     5: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 3// break;
       case    15: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2// break;
       case    30: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 2// break;
       case    60: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case   240: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 6// break;
       case  1440: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case 10080: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); k += 4// break;
       case 43200: res += iMA(sym, tf, per*k, 0, Mode, Price, pos); // break;
     } 
   return(res);
  }   

Как ни странно - ничего не пропустил
Причина обращения: