Реализация показателей DPO в FMZ

Автор:Мышление deshunquant, Создано: 2021-09-28 10:49:11, Обновлено: 2021-09-28 11:50:39

Первое: как использовать показатели DPO?

Для начала нужно знать формулу расчета показателя DPO:

1, MA = простой скользящий средний на N дней;

2, DPO = простые скользящие средние по цене закрытия - MA ((N/2+1);

3, MADPO = простое скользящее среднее значения DPO за M дней;

В этом случае N = 21 и M = 6.

Второе, как использовать показатели DPO:

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

2, ниже оси 0, установить линию перепродажи, и как только DPO колеблется к линии перепродажи, это означает, что цена акции находится на краткосрочных низких точках.

3, если индикатор DPO находится выше 0-й оси, то он находится на многоголовом рынке. Если индикатор DPO пересекает 0-ю ось с отрицательным значением вверх, это сигнал покупать.

4, если индикатор DPO находится ниже 0-го оси, то он находится на пустом рынке. Если индикатор DPO пересекает 0-й оси с положительного значения вниз, это сигнал продажи.


Больше

Маленькие мечты`` /* Метод расчета: 1, Н днем закрытия цены MA плюс сумма / N 2, DPO = цена закрытия - (n / 2) + MA на 1 день 3, MADPO = ДПО Дневной средний N = 21, M = 6. */ // Алгоритм показателя function DPO ((r, n) { var arrDpo = [] for (var i = 0 ; i < r.length ; i++) { var currRecords = [] for (var j = 0 ; j < i ; j++) { currRecords.push ((r[j]) {y:bi} var ma = TA.MA ((currRecords, (_N ((n / 2, 0) + 1)) var dpo = NaN if (currRecords.length == 0 て!ma ゙ ma.length == 0 て!ma [ma.length - 1]) { dpo = NaN } else { var close = r[i].Close dpo = close - ma[ma.length - 1] {y:bi} arrDpo.push ((dpo)) {y:bi} return arrDpo {y:bi} function MADPO ((dpo, m) { return TA.MA ((dpo, m) {y:bi} // Пример использования показателя function main (() { var r = exchange.GetRecords ((() var dpo = DPO ((r, 21) Log ((_D(r[r.length - 1].Time), "dpo on last bar:", dpo[dpo.length - 1]) Log ((_D(r[r.length - 2].Time), "dpo on pre bar:", dpo[dpo.length - 2]) Что вы думаете? var madpo = MADPO ((dpo, 6) Log ((_D(r[r.length - 1].Time), "madpo on last bar:", madpo [madpo.length - 1]) Log ((_D(r[r.length - 2].Time), "madpo on pre bar:", madpo[madpo.length - 2]) {y:bi} `` Я не гарантирую, что это так, я не проверяю.