Как получить значение MA в подокне CCI - страница 2

 
Arkadii Zagorulko #:

Отображаются цены обычной МА. Не та, что в подокне. 

Мне когда-то нужно было поймать момент схождения разных по значению осциляторов в углу в подокне. Я просто сделал копии индикаторов, добавив дополнительный буфер, в который перекинул отрисовку из оригинального буфера в новый буфер с учетом коэффициента. И привел все индикаторы к диапазону от 1 до 100. Повтыкал в копии индикаторов такую функцию (это еще на 4ке было):

void visibleLine(){
 // --- текущее значение индикатора присвоим maxValue и minValue
  double maxValue = buf_Orig[0]; double minValue = buf_Orig[0];

 // --- Узнаем максимальное и минимальное значение индикатора в видимом окне 
 // --- setBarDisp - входной параметр равный кол-ву баров видимых в окне      
   for(int i=setBarDisp-1; i>=0; i--){                       
     if(buf_Orig[i] > maxValue) maxValue = buf_Orig[i];
     if(buf_Orig[i] < minValue) minValue = buf_Orig[i];
   }

   double kMain = 100/(maxValue-minValue);      // вычислим коэф. приведения к 100
   double shiftMin = 0;
   if(minValue<0) shiftMin = minValue*kMain;
 // --- заполняем видимый буфер значениями с учетом kMain от 0 до 100 
   for(int i=setBarDisp-1; i>=0; i--){
     buf_k[i] = buf_Orig[i]*kMain;
     if(shiftMin<0) buf_k[i] = buf_k[i]-shiftMin;     // если ряд имеет отрицательные значения, корректируем
   }
}

Этот прием работал только в моменте и мне он подходил для моей задачи, так как нужны были по сути пару баров с правого края. Но если на истории, нужны точки пересечения, такой способ не подойдет. Но может клиент согласится на компромисс, и ему подойдет работа только с видимой частью. Попробовать объяснить трудности, наверное, можно.

 
Vasiliy Pushkaryov #:

Мне когда-то нужно было поймать момент схождения разных по значению осциляторов в углу в подокне. Я просто сделал копии индикаторов, добавив дополнительный буфер, в который перекинул отрисовку из оригинального буфера в новый буфер с учетом коэффициента. И привел все индикаторы к диапазону от 1 до 100. Повтыкал в копии индикаторов такую функцию (это еще на 4ке было):

Этот прием работал только в моменте и мне он подходил для моей задачи, так как нужны были по сути пару баров с правого края. Но если на истории, нужны точки пересечения, такой способ не подойдет. Но может клиент согласится на компромисс, и ему подойдет работа только с видимой частью. Попробовать объяснить трудности, наверное, можно.

Спасибо, ну это не то. В моем случае нет четкого диапазона :(

 
А я делаю так в мобильном приложении, cci+ma
 
Sergey Zhilinskiy #:

Плюсую. Если у моих заказчиков возникают такие пожелания, то обрубаю на корню с объяснениями что так нельзя.

Так а кто говорил, что я сознательно взялся выполнять эту задачу?

Пропустил по невнимательности в ТЗ условие в котором учитывается этот зум, так как заказчик неверно применяет эти два индикатора. 

 
TheXpert #:
а в чем проблема в подокне учитывать не только габариты машки но и хай-лоу?

Я тоже сначала подумал, что шкала преобразуется по high/low

А в эту зону уже помещается  МА.

Но нет. 



тогда бы в точке B, high был бы +/- 99.99 но не 91,31.

 
А в чем суть задания?
 
Vasiliy Pushkaryov #:
А в чем суть задания?

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

И хочет это автоматизировать. 

Пока все, что технически возможно средствами МКЛ у меня получалось. 

По этой причине я не досмотрел и взялся за это.

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

 
Arkadii Zagorulko #:

Спасибо, прекрасно знаю. Суть в другом, что сделать так можно, а получить значения нельзя. 

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

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

 
Arkadii Zagorulko #:

Там нет никаких точек привязок. 

Есть. Хай и лоу цены на чарте. Единственное, что нужно определить — процент отступа от краев (не помню его, нужно поэкспериментировать).

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

Задача решается, нужно просто немного постараться.

 
Arkadii Zagorulko #:

Я тоже сначала подумал, что шкала преобразуется по high/low

А в эту зону уже помещается  МА.

Но нет. 

тогда бы в точке B, high был бы +/- 99.99 но не 91,31.

Наложите такую же МА на основной чарт.

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