如何使用 pandas python 计算 Heiken Chaiken Osc
How to calculate Heiken Chaiken Osc using pandas python
我正在计算股票市场的指标数据,并且由于一个名为 'Accdist' 的变量而难以计算 Heiken Chaiken Osc 根据 google 它是这样计算的。
公式如下:
资金流量乘数 = [(收盘价 - 低价) - (高价 - 收盘价)] /(高价 - 低价)
资金流量 = 资金流量乘数 x 期间交易量
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()
我正在计算股票市场的指标数据,并且由于一个名为 'Accdist' 的变量而难以计算 Heiken Chaiken Osc 根据 google 它是这样计算的。
公式如下:
资金流量乘数 = [(收盘价 - 低价) - (高价 - 收盘价)] /(高价 - 低价)
资金流量 = 资金流量乘数 x 期间交易量
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()