Задача по преобразованию двух взаимосвязанных показателей в один - страница 2

 

Искомый показатель обозначим Z. Должен быть непрерывной функцией R и P, поскольку его скачок не поддается объяснению в рамках приведенных сведений. Ужесточим это требование до дифференцируемости.

Два требования линейности, по R и по P, означают, что всюду частные производные dZ/dP = kP = const и dZ/dR = kR = const (d здесь закругленная). Общий интеграл Z = Z0 + kP*P + kR*P, где Z0 - значение при R = 0, P = 0. При возрастании каждого из R, P значения Z должны расти ("лучшее по возрастанию показателя"), значит, kP > 0 и kR > 0 (*). Предпочтения, кто лучше, расставлены так, что важнее показатель R, который идет по оси y (1 и 2 место - квадраты вверху). Значит, kR > kP, при этом 4 квадрат будет хуже 3-го, как и требуется. Если сравнивать квадраты по их центрам.

Z0, похоже, можно положить нулевым, так как диапазон Z не задан. А пару коэффициентов kP и kR заменить, одним k = kR / kP (делить можно по (*)), ограниченным снизу единицей, k > 1. Дальше - свобода, в выражении

Z = P + k*R при любых k > 1 выполняются все перечисленные требования. Подбор k, вероятно, следует делать по получающимся значениям Z в центрах квадратов 1-4. Могут быть и другие соображения, известные автору вопроса.

 
Dmitry Fedoseev:
Угол через арктангенс посчитать.

Хорошо, допустим мы можем найти угол, но он будет только вектором, на котором может поместиться множество значений, что дальше предлагается делать? Как его преобразовать в показатель?

 
Aleksey Nikolayev:

У вас функция получается разрывной в центре - предел при стремлении к центру по первому квадрату будет не меньше 75, а по четвёртому - не более 25.

Уверен, что Вы пытаетесь сообщить мне что-то важное, но я лишь могу предположить, что Вы утверждаете, что линейной функцией это дело не описать, или о чём речь? Кратенько бы с интересом ознакомился, как вы определили такие приделы.

 
Aleksey Vyazmikin:

Хорошо, допустим мы можем найти угол, но он будет только вектором, на котором может поместиться множество значений, что дальше предлагается делать? Как его преобразовать в показатель?

Если диапазон его изменения от 0 до 360 не подходит, то поделить или умножить.

 
Vladimir:

Искомый показатель обозначим Z. Должен быть непрерывной функцией R и P, поскольку его скачок не поддается объяснению в рамках приведенных сведений. Ужесточим это требование до дифференцируемости.

Два требования линейности, по R и по P, означают, что всюду частные производные dZ/dP = kP = const и dZ/dR = kR = const (d здесь закругленная). Общий интеграл Z = Z0 + kP*P + kR*P, где Z0 - значение при R = 0, P = 0. При возрастании каждого из R, P значения Z должны расти ("лучшее по возрастанию показателя"), значит, kP > 0 и kR > 0 (*). Предпочтения, кто лучше, расставлены так, что важнее показатель R, который идет по оси y (1 и 2 место - квадраты вверху). Значит, kR > kP, при этом 4 квадрат будет хуже 3-го, как и требуется. Если сравнивать квадраты по их центрам.

Z0, похоже, можно положить нулевым, так как диапазон Z не задан. А пару коэффициентов kP и kR заменить, одним k = kR / kP (делить можно по (*)), ограниченным снизу единицей, k > 1. Дальше - свобода, в выражении

Z = P + k*R при любых k > 1 выполняются все перечисленные требования. Подбор k, вероятно, следует делать по получающимся значениям Z в центрах квадратов 1-4. Могут быть и другие соображения, известные автору вопроса.

1 и 2 место - квадраты не сверху, а с права.

По поводу значимости коэффициентов, если  правильно понял, то

1 место kR == kP

2 место kR<kP

3 место kR>kP

4 место kR==kP

 

Здесь статья есть по нечеткой логике, посмотрите: https://www.mql5.com/ru/articles/2032

Ничего страшного в ней нет. Пишешь одну функцию для одной переменой, вторую для другой, потом складываешь их. Меняем форму функций для отдельных переменных получаем разный результат. Примерно как на этой картинке (только кривые разной формы могут быть):


А какой результат вам нужен, только вы знаете. Вариантом немерено.

Применение нечеткой логики в трейдинге средствами MQL4
Применение нечеткой логики в трейдинге средствами MQL4
  • www.mql5.com
В современном трейдинге все чаще используются системы автоматической торговли — торговые эксперты или роботы. Суть их работы в том, что они имеют четкую, жестко заданную систему, а именно — торговую стратегию и систему управления финансами (мани-менеджмент). Преимущества таких систем в том, что они исключают человеческий фактор, строго...
 
Dmitry Fedoseev:

Если диапазон его изменения от 0 до 360 не подходит, то поделить или умножить.

Если не очень трудно, то изложите мысль поподробней.

Углом мы легко определим к какому классу относится координата из P и R - это хорошо, но надо тогда как то длину отрезка найти, но будет ли сопоставимо с другими вероятными значениями умножение длины отрезка на вектор? Или предлагаете что-то иное?

 
Aleksey Vyazmikin:

Если не очень трудно, то изложите мысль поподробней.

Углом мы легко определим к какому классу относится координата из P и R - это хорошо, но надо тогда как то длину отрезка найти, но будет ли сопоставимо с другими вероятными значениями умножение длины отрезка на вектор? Или предлагаете что-то иное?

Мне неизвестны все условия задачи.

 
Dmitry Fedoseev:

Здесь статья есть по нечеткой логике, посмотрите: https://www.mql5.com/ru/articles/2032

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


А какой результат вам нужен, только вы знаете. Вариантом немерено.

Спасибо, прочту. Но выглядит пугающе...

 
Dmitry Fedoseev:

Мне неизвестны все условия задачи.

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

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