Построение коэффициентов - страница 2

 

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

Е‌ще хорошо бы не 50 возводить в степень, а значения в каждой ячейке поделить на максимально возможное значение этой ячейки (что бы оно менялось от 0 до 1) и использовать степень двойки.‌

 
Dmitry Fedoseev:

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

Е‌ще хорошо бы не 50 возводить в степень, а значения в каждой ячейке поделить на максимально возможное значение этой ячейки (что бы оно менялось от 0 до 1) и использовать степень двойки.‌

Спасибо, что поделились мыслями!

Я решил, что мне надо предметней решать задачу, а это дало ряд ограничений, которые позволяют решать задачу:

1. В столбце А всегда максимальное число по отношению к каждому соседнему ряду (ячейке)‌

2. Известно максимальное число столбцов - если их больше, то коэффициент будет просто переваливать за единицу

Собственно, задача в том, что б получить оценочную величину успешности входов в рынок для усредняющихся стратегий против тренда. Таким образом начальный лот задает ограничение для чисел в столбцах, а максимально допустимый - придел для числа столбцов, при этом максимальное число в столбце рассчитывается, а количество строк определяется самостоятельно - исходя из принимаемых рисков. Таким образом, должно получиться, что чем чаще мы достигаем придела по числу лотов на позицию (в виде колен), тем рискованней ТС, так как больше риск, что мы превысим максимально допустимое число кален (совокупный объем позиции).

У меня получилось такое решение

№ П.П.Вес %12345СтолбецИтого:Вес в К:ДельтаИзменение в %
133%11111F53,050,000
241%11111E52,440,61-0,2
351%11111D51,950,49-0,2
464%11111C51,560,39-0,2
580%11111B51,250,31-0,2
6100%11111A51,000,25-0,2
X       K - оценочный1,00  

В таблице "Вес %" сделал фиксированный 1/5 по предыдущем, что б показать возможность плавного изменения.

В экселе приложил таблицу. Теперь надо это как-то закодировать в MQL для проверки идеи... может кто поможет с функцией?

С интересом обсужу и другие решения предметной задачи!

Файлы:
K.zip  7 kb
 

А так коэффициент измениться при снижении числа позиций, достигших максимального числа ордеров (колен и лотов соответственно) - в данном примере максимум - это 6.

№ П.П.Вес %12345СтолбецИтого:Вес в К:ДельтаИзменение в %
133%11   F21,220,000,00
241%11   E20,980,24-0,20
351%111  D31,17-0,200,20
464%11111C51,56-0,390,33
580%11111B51,250,31-0,20
6100%11111A51,000,25-0,20
X       K - оценочный0,64  

 

Результат этой формулы:

k=1/(1+S);

П‌ри условии, что S>=0, не может быть больше 1.

 
Dmitry Fedoseev:

Результат этой формулы:

k=1/(1+S);

П‌ри условии, что S>=0, не может быть больше 1.

 

Согласен, не может. Но не понимаю, к чему это... прошу более развернуто сообщить Вашу мысль!
 

Сделал скрипт - он делает расчет - теоретическая часть для апробации есть.

Мнения по идеи и её реализации приветствуются!

Файлы:
 

В общем - ерунда вышла - ищу опять решение...

 

Уже всю голову сломал - не получается выразить мысль в формуле

Ниже на картинке видна структура коэффициента - мы её задаем и при ней коэффициент равен 1, все изменения приводят к искажению в зависимости от области, в которой произошло отклонение - к примеру в красной области увеличение на единицу приведет к увеличению коэффициента на 0,4.

 

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

 

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

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

Графически это выглядит так



Как это дело оформить в код, а для начала выразить в функции?

 

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

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

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

Более того - если точки предела и изгибы кривой расположены симметрично - можно использовать параболу третьей степени - и обойтись одной функцией. Центр будет точкой перегиба параболы. В этом случае нужно на одном из двух отрезков разместить две точки.
Причина обращения: