Скачать MetaTrader 5

уровни CCI на графике

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подними скорость в сети MQL5 Cloud Network. Установи Strategy Tester Agent!
Dmitiry Ananiev
6590
Dmitiry Ananiev 2013.11.14 19:44 
Есть индикатор CCI. У индикатора есть линии 100 и -100. Как узнать цену при которой CCI будет показывать 100 или -100?
artikul
8107
artikul 2013.11.15 06:34  
Спросить об этом у самого CCI )))
Artyom Trishkin
Модератор
75890
Artyom Trishkin 2013.11.15 06:51  
dimeon:
Есть индикатор CCI. У индикатора есть линии 100 и -100. Как узнать цену при которой CCI будет показывать 100 или -100?

Можно узнать только цену, которая была при пересечении уровней. Причём две цены: первая до пересечения, вторая - после пересечения.

Если вам нужна будущая цена, то ошиблись форумом. Тут не предсказатели.

Юрий
46
Юрий 2013.11.15 07:45  
dimeon:
Есть индикатор CCI. У индикатора есть линии 100 и -100. Как узнать цену при которой CCI будет показывать 100 или -100?

это было бы возможно если бы индикатор зависел только от ОДНОЙ последней цены. но т.к. это не так, то обратный расчет невозможен.
Dmitiry Ananiev
6590
Dmitiry Ananiev 2013.11.15 09:45  
Хорошо, Как узнать цену на нулевом баре, т.е. на текущем при котором CCI будет равен 100 или -100 ?
Vitalie Postolache
12142
Vitalie Postolache 2013.11.15 09:53  
dimeon:
Хорошо, Как узнать цену на нулевом баре, т.е. на текущем при котором CCI будет равен 100 или -100 ?

Ну не предсказывает СС! будущего, когда будет 100 или -100, тогда и на цену смотреть, раньше - никак...


Да и в случае нулевого бара тоже цену можно только сравнительно смотреть: вот предыдущий тик СС! был ниже 100, а с приходом нового тика он уже выше 100, гарантии равенства не будет практически никогда.

Dmitry Fedoseev
42923
Dmitry Fedoseev 2013.11.15 12:27  
dimeon:
Хорошо, Как узнать цену на нулевом баре, т.е. на текущем при котором CCI будет равен 100 или -100 ?


Наверно подбором. Подставляем разную цену и смотрим как изменяется ССI.

Если решать обратную задачу возникает несколько проблем.

1. CCI использует в расчете несколько цен одного бара. Это ладно, можно упросить задачу и выполнять расчет CCI только по цене закрытия.

2. Если упрощать код, чтобы получить общую формулу, а потом вывести обратную формулу, получаем такое дело:

   int i,limit=Bars-IndicatorCounted()-1;
   double mul = 0.015 / CCIPeriod;
   
   for(i = limit; i >=0; i--){

       double sma0=0;
         for(int j=i+1;j<i+CCIPeriod;j++){
            sma0+=Close[j];
         }
         
      double sum0 = 0.0;
         for(j=i+1;j<i+CCIPeriod;j++){
            sum0 += MathAbs(Close[j] - sma0/CCIPeriod - Close[i]/CCIPeriod);
         }
         
      double d=sum0*mul + MathAbs(Close[i] - sma0/CCIPeriod - Close[i]/CCIPeriod)*mul;
       if(d==0.0){ 
           CCIBuffer[i] = 0.0;
       }           
       else{
           CCIBuffer[i] = (Close[i] -(sma0+Close[i])/CCIPeriod)/d;
       }

Жирным выделен Close[i], если бы его как-то вытащить из под цикла...

Alexey Subbotin
4998
Alexey Subbotin 2013.11.15 13:51  

Не получится даже подбором.

Если бы в расчете использовались только цены Close, то можно было бы, т.к. Тогда в общем уравнении была бы только 1 неизвестная - Close[0]. Но дело в том, что CCI считается по типичным ценам (HIGH + LOW + CLOSE)/3, т.е. Не зная Low и High нулевого бара (которые можно определить только после его формирования), мы не сможем вычислить и его Close.

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

Dmitry Fedoseev
42923
Dmitry Fedoseev 2013.11.15 14:06  
alsu:

Не получится даже подбором.

Если бы в расчете использовались только цены Close, то можно было бы, т.к. Тогда в общем уравнении была бы только 1 неизвестная - Close[0]. Но дело в том, что CCI считается по типичным ценам (HIGH + LOW + CLOSE)/3, т.е. Не зная Low и High нулевого бара (которые можно определить только после его формирования), мы не сможем вычислить и его Close.

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


Подбором - меняем Close и по мере необходимости подправляем High или Low.

Насчет вывода формулы, думаете возможно?

fozi
2926
fozi 2013.11.15 17:00  

Я когда то давно такую тему поднимал.

Помню кто то сделал и сказал. Ух ты как зашибись.

Ну я на правах интелектуальной собственности вежливо по просил того человека дать мне код, на что получил ответ типа "х@й" тебе, только в более завуалированной форме.

На том все закончилось.

Алексей Тарабанов
7216
Алексей Тарабанов 2013.11.15 18:42  

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

Гипотеза 1: Алгоритм предполагается использовать для определения уровня Take Proffit.

Гипотеза 1.1: Профит берется по цене открытия бара.

Допущение: Наилучшей оценкой значения цены открытия нового бара является значение цены закрытия предыдущего бара.

Вариант решения задачи:

1. Обратным преобразованием определяем типичную цену текущего бара, при которой CCI=100%.

2. Непрерывно(на каждом тике) определяем текущее значение оценки искомой цены по формуле:

ЗначениеОценки=3*ТипичнаяЦена-High[0]-Low[0];

3. Тралим Take Proffit, если его предыдущее значение значительно отличается от текущего значения оценки.

Все это не просто, конечно..., а очень просто.:)

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