如何使用 pandas python 计算 Heiken Chaiken Osc

How to calculate Heiken Chaiken Osc using pandas python

我正在计算股票市场的指标数据,并且由于一个名为 'Accdist' 的变量而难以计算 Heiken Chaiken Osc 根据 google 它是这样计算的。

公式如下:

  1. 资金流量乘数 = [(收盘价 - 低价) - (高价 - 收盘价)] /(高价 - 低价)

  2. 资金流量 = 资金流量乘数 x 期间交易量

  3. ADL = 之前的ADL + 本期资金流量

Python 代码(使用Talib + Numpy + Pandas)

data["cmf"] = (((data["close"] - data["low"]) - (data["high"] - data["close"])) / (data["high"] - data["low"]))

data["cmfv"] = data["cmf"] * data["volume"]

data["accdist"] = data["accdist"].shift(periods=1) + data["cmfv"]

也在 pine 脚本中尝试过,但也没有成功。任何帮助将不胜感激。

Money_multiplier = ((close-low) - (high - close)) / (high - low)
Money_volume = Money_multiplier * volume
ADL = ADL[1] + Money_volume

这是我尝试模拟的 pinescript 代码,因为我有指标工作,但需要转换为 python(问题是 accdist 变量)

osc = ema(accdist, 3) - ema(accdist, 10)

我 运行 遇到了同样的问题,这就是我最终使用 python、numpy 和 pandas.

的结果

我使用了公式: 资金流量乘数=((收盘价-低价)-(高价-收盘价))/(高价-低价)

资金流量 = 资金流量乘数 x 期间的交易量

CMF = 每日资金流量的 21 天平均值 / 交易量的 21 天平均值

这里我们读入了一个基本的外汇或股票数据文件:

import numpy as np
import pandas as pd

names = ['Date','Time','Open','High','Low','Close','Volume']
ask_series = pd.read_csv(ask_file,index_col=False,header=None,names=names))

ask_series["cmfm"] = (((ask_series["close"] - ask_series["low"]) - (ask_series["high"] - ask_series["close"])) / (ask_series["high"] - ask_series["low"]))
ask_series["cmfv"] = ask_series["cmfm"] * ask_series["volume"]
ask_series["cmf"] = ask_series['cmfv'].rolling(window=21).mean() / ask_series['volume'].rolling(window=21).mean() 

ask_series.tail()