МТ5. Определение угла наклона линии - страница 4

 
maxvoronin74 #:

Мне не известны в языке MQL5 встроенные функции для получения значения WPR в заданное время.

Тут вопрос о функциях доступа к барам или дело в том, что с программированием Вы незнакомы в принципе?

И о задаче я уже писал. Если кому-то интересно расчитывать разницу между WPR соседних баров, то это уже другая задача.

Вот Ваш начальный пост:

Как, используя два последних значения или другим рациональным способом, определить угол наклона линии графика индикатора WPR?
Два последних значения - это и есть соседние бары. Поэтому снова приходим к вопросу: какова задача?
 
Ihor Herasko #:

Тут вопрос о функциях доступа к барам или дело в том, что с программированием Вы незнакомы в принципе?

Вот Ваш начальный пост:

Два последних значения - это и есть соседние бары. Поэтому снова приходим к вопросу: какова задача?
Какая разница? Знаете - поделитесь. Буду благодарен. Я не знаю, как по времени бара или другому времени взять значение WPR. Разве что надо заново самому высчитать значение самописной функцией, где заменить цену закрытия последней известной средней ценой. Задача подробно оговорена в последующих комментариях.
 

maxvoronin74 #:
Какая разница?

Так в том то и дело, что нужно знать, каким способом хотите эту информацию получать (вручную или программно). Это разные подходы. Зачем мне сейчас все подряд описывать?

Задача подробно оговорена в последующих комментариях.

Последующие - это те, что будут (т. е. сейчас их еще нет). Каким же образом она уже подробно оговорена, если эти комментарии в будущем?

 
Ihor Herasko #:

Так в том то и дело, что нужно знать, каким способом хотите эту информацию получать (вручную или программно). Это разные подходы. Зачем мне сейчас все подряд описывать?

Последующие - это те, что будут (т. е. сейчас их еще нет). Каким же образом она уже подробно оговорена, если эти комментарии в будущем?

вообще лучше сразу определятся, что градусы здесь зависят от масштаба, а скорость изменения это ближе к градианам. Чел путает градусы угла со скоростью изменения величины на бар.)))

Жена долго удивлялась, когда занималась со школьниками про единичную окружность, то же самое и здесь, что такое масштаб координатной сетки у учеников даже понятия не было, все рисовали радиус 1 см.))))

И да, как получить значение индикатора на баре по номеру или по времени видимо нет знаний и доки не читал.)))
 
Valeriy Yastremskiy #:

вообще лучше сразу определятся, что градусы здесь зависят от масштаба, а скорость изменения это ближе к градианам. Чел путает градусы угла со скоростью изменения величины на бар.)))

Жена долго удивлялась, когда занималась со школьниками про единичную окружность, то же самое и здесь, что такое масштаб координатной сетки у учеников даже понятия не было, все рисовали радиус 1 см.))))

И да, как получить значение индикатора на баре по номеру или по времени видимо нет знаний и доки не читал.)))

к этому плюс вопрос, что такое касательная в вершине к ломанной линии. WPR - ломанная линия. 

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

"Касательная к индикаторной линии" это вещь в себе и в основном зависит от личных тараканов (частной задачи которая решается). 

 
Maxim Kuznetsov #:

"Касательная к индикаторной линии" 

Новые термины приветствуются. Я пока не смог подобрать ничего получше.

 
Ihor Herasko #:

WPR - обычный индикатор. Его показания основаны на данных, полученных от баров. С чего Вы взяли, что он строится по тикам?

MqlTick ticks[];
int copied=CopyTicksRange(Symbol(),ticks,COPY_TICKS_INFO,t0,t1);
double bid_arr[];
ArrayResize(bid_arr,copied,100000);
double ask_arr[];
ArrayResize(ask_arr,copied,100000);
for(int i = 0; i < copied; i++)
{
   bid_arr[i] = ticks[i].bid;
   ask_arr[i] = ticks[i].ask;
}
int IndMaxBid = ArrayMaximum(bid_arr, 0, copied-1); // Индекс элемента массива bid_arr с максимальной ценой
double highestBid = bid_arr[IndMaxBid]; // Самая высокая цена bid за период
int IndMinBid = ArrayMinimum(bid_arr, 0, copied-1); // Индекс элемента массива bid_arr с минимальной ценой
double lowestBid = bid_arr[IndMinBid]; // Самая низкая цена bid за период
int IndMaxAsk = ArrayMaximum(ask_arr, 0, copied-1); // Индекс элемента массива ask_arr с максимальной ценой
double highestAsk = ask_arr[IndMaxAsk]; // Самая высокая цена ask за период
int IndMinAsk = ArrayMinimum(ask_arr, 0, copied-1); // Индекс элемента массива ask_arr с минимальной ценой
double lowestAsk = ask_arr[IndMinAsk]; // Самая низкая цена ask за период
double highestHigh = (highestBid+highestAsk)/2; // Средняя наибольшего ask и наибольшего bid элемента
double lowestLow = (lowestBid+lowestAsk)/2; // Средняя наименьшего ask и наименьшего bid элемента
double PrevClose = (bid_arr[copied-1]+ask_arr[copied-1])/2; // Средняя ask и bid последнего элемента
double WPR_Past = -100 * (NormalizeDouble((highestHigh - PrevClose) / (highestHigh - lowestLow),_Digits)); // Формула предыдущего WPR
Так мне представляется модернизация WPR под задачу. Текущее значение можно взять штатными средствами. Расчет угла дальше - дело техники.
Причина обращения: