Implementação do indicador DPO no FMZ

Autora:WeChat deshunquant, Criado: 2021-09-28 10:49:11, Atualizado: 2021-09-28 11:50:39

A primeira, como usar o indicador DPO?

A primeira coisa que você precisa saber é a fórmula de cálculo do indicador DPO:

1, MA = média móvel simples de N dias;

2, DPO = preço de fechamento - MA ((N/2+1));

3, MADPO = média móvel simples do DPO no dia M;

N = 21, M = 6.

O DPO é usado para:

1, acima do eixo 0, estabeleça um overbought, uma vez que o DPO flutua para o overbought, o que significa que o preço do ação está em altas de curto prazo.

2, abaixo do eixo 0, estabeleça uma linha de supervenda, uma vez que o DPO oscilar para a linha de supervenda, o que significa que o preço do ação está em baixos de curto prazo.

3, se o indicador DPO está acima do eixo 0, o representante está em um mercado multinivel. Se o indicador DPO atravessa o eixo 0 do negativo para cima, este é um sinal de compra.

4, se o indicador DPO está abaixo do eixo 0, o indicador está em um mercado vazio. Se o indicador DPO atravessa o eixo 0 do valor positivo para baixo, é um sinal de venda.


Mais.

Sonhos pequenosNão sei. - Não. Método de cálculo: 1, o preço de fechamento do MA no dia N mais o total/N 2, DPO = preço de fechamento - (n / 2) + MA do dia 1) 3, MADPO = DPO M dias média móvel N é 21, M é 6. */ Algoritmos de indicadores função DPO ((r, n) { var arrDpo = [] para (var i = 0 ; i < r.length ; i++) { Var currRecords = [] para (var j = 0 ; j < i ; j++) { currRecords.push ((r[j]) Não. var ma = TA.MA ((currRecords, (_N ((n / 2, 0) + 1)) Var dpo = NaN If (currRecords.length == 0 ̊!ma ̊.length == 0 ̊!ma ̊.length - 1) { dpo = NaN } else { var close = r[i].Close dpo = close - ma [ma.length - 1] Não. arrDpo.push (dpo) Não. return arrDpo Não. função MADPO ((dpo, m) { return TA.MA ((dpo, m) Não. // Exemplo de uso de indicadores função main (() { Var r = exchange.GetRecords (em inglês) 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]) O que é isso? 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]) Não. Não sei. O que você está fazendo aqui é um erro, não é uma garantia.