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

Если мы возьмем, к примеру, индикатор Accumulation/Distribution.

Investopedia перечисляет шаги как:

  1. Множитель денежного потока = [(закрытие - низкое) - (высокое - закрытие)] / (высокое - низкое)

  2. Объем денежного потока = Мультипликатор денежного потока x объем за период

  3. Накопление/Распределение = Предыдущее Накопление/Распределение + Денежный поток за текущий период

Третий шаг меня смущает, как я могу рассчитать A/D, если у меня нет предыдущего A/D, для которого требуется предыдущий A/D и так далее...

Существуют и другие аналогичные индикаторы, где индикатор требует расчета самого индикатора. Итак, как это делается?


person olvr    schedule 03.06.2017    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, поскольку он относится к экономике.   -  person Nico Schertler    schedule 04.06.2017
comment
Но я бы установил A/D на 0 для периодов, которые вы не знаете.   -  person Nico Schertler    schedule 04.06.2017


Ответы (1)


Для этого существует общий программный подход:

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

Решение:

найти так называемое «нейтральное» значение, от которого зависит исчисление, и ввести его в «недостающие» временные шаги.

  • для индикатора PriceDOMAIN, такого как скользящая средняя, ​​это может быть Close цена первых доступных баров, которая копируется в "период" раз назад.
  • для мультипликативного и экспоненциального индикатора это может быть 1
  • для аддитивного индикатора это может быть 0

Все игрушки выравниваются по справедливой стоимости в течение следующего «периода» временных шагов, если нейтральные значения были алгебраически правильными, или через немного большее время, когда замененные значения были «просто приближениями». Как в первом, так и во втором случае, как правило, время уходит далеко назад, чтобы исказить будущие значения индикатора и как-то помешать фактическому потоку текущих решений, основанных на недавних выходных данных индикатора.

person user3666197    schedule 05.06.2017
comment
Установка AD на 0 для первого периода сработала. Но я столкнулся с проблемой при расчете мультипликатора денежного потока, когда (высокий - низкий) равен 0, потому что деление на 0 равно бесконечности. Применяются ли в этом случае те же рекомендации? Или AD просто 0 за этот период? - person olvr; 05.06.2017
comment
(a) MFM совсем не запутан, поэтому не нужно вообще беспокоиться, (b) в случае любого (высокий - низкий) == 0, оба элемента в перечислителе также получат нуль, имея нулевую разницу, так что можно было бы установите Денежный поток внутри такого покалеченного бара прямо на ноль. Так что кроме защиты от DIV!0 смысл сохранен. И никакой денежный поток в свече нулевого размера тоже не соответствует такой ситуации на рынке, не так ли? - person user3666197; 05.06.2017
comment
Рад, что тоже помогло. Не стесняйтесь нажимать [+1 UpVote], чтобы показать, что ответ полезен или вдохновляет. Так работает StackOverflow. Наслаждайтесь этим замечательным Сообществом знаний и не стесняйтесь стать нашим следующим активным участником! - person user3666197; 05.06.2017
comment
Чтобы добавить к этому, есть общее значение инициализации для большинства индикаторов, подобных этому. EMA использует SMA, ADX использует среднее значение dx. Вот пример кода для ADX (не то же, что и AD выше). - person Dave Skender; 31.05.2021