识别 P&F 图表中最后一列包含三个或更多 "X" 个图的股票
Identifying stocks where the last column in a P&F chart contains three or more "X" plots
首先:mplfinance 是一个非常棒的程序,可以帮助我进行股票交易:谢谢。
每周一次,我下载并使用 mplfinance 绘制标准普尔 500 指数股票的图表。我想使用 P&F 图表方法扫描股票,并确定最后一列包含三个或更多“X”的股票" 无需亲自查看每个图表即可绘制图表。如果有任何想法,我将不胜感激。
谢谢,
曼尼
调用 mpf.plot()
时使用 kwarg return_calculated_values
。你将这个 kwarg 设置为空字典,mplfinance 将用各种计算值填充它,包括砖块值 if type=pnf
:
cv = {}
mpf.plot(df,type=pnf,return_calculated_values=cv)
再看cv['pnf_bricks']
和cv['pnf_dates']
然后扫描砖值列表以找到您想要的应该相对容易。您甚至可以用它创建一个系列以使其更易于操作:
pnf_series = pd.Series(cv['pnf_bricks'],index=pd.DatetimeIndex(cv['pnf_dates']))
pnf_series.head()
2011-07-11 00:00:00+00:00 122.117136
2011-08-08 00:00:00+00:00 114.248562
2011-08-17 00:00:00+00:00 115.232133
2011-08-22 00:00:00+00:00 116.215705
2011-09-01 00:00:00+00:00 117.199277
dtype: float64
pnf_series.tail()
2011-11-29 00:00:00+00:00 120.149992
2011-12-07 00:00:00+00:00 122.117136
2011-12-20 00:00:00+00:00 129.985711
2012-04-04 00:00:00+00:00 133.919998
2012-06-05 00:00:00+00:00 130.969283
嗯。现在我正在看我上面打印出来的例子,也许有一个错误,它似乎只打印出 last X
或 O
每个日期(不是完整列表)。
mplfinance 的新版本 (0.12.7a12
) 现已发布:
pip install --upgrade mplfinance
在此版本中,如果您执行以下操作:
cv = {}
mpf.plot(df,type=pnf,return_calculated_values=cv)
然后“计算值”字典 cv
将填充以下项目:
dict_keys(['pnf_dates', 'pnf_counts', 'pnf_values', 'pnf_avgvals',
'pnf_size', 'pnf_volumes', 'minx', 'maxx', 'miny', 'maxy'])
cv['pnf_counts']
将包含 cv['pnf_dates']
中每个日期的框数。向上框X为正值,向下框O为负值。
cv['pnf_values']
将是列表的列表。外层表对应每个pnf日期,内层表在每个日期对应每个框在该日期的beginning值:“beginning”表示是向上的下界框,或向下框的上界。对于向上的框,X从这个值跨越到(value+pnf_size),对于向下的框,O从这个值跨越到(value-pnf_size)
cv['pnf_avgvals']
是给定日期所有 pnf_values 的平均值,与以前版本的 mplfinance 返回的 pnf_bricks
相同。
希望这对您有所帮助。祝一切顺利。
首先:mplfinance 是一个非常棒的程序,可以帮助我进行股票交易:谢谢。
每周一次,我下载并使用 mplfinance 绘制标准普尔 500 指数股票的图表。我想使用 P&F 图表方法扫描股票,并确定最后一列包含三个或更多“X”的股票" 无需亲自查看每个图表即可绘制图表。如果有任何想法,我将不胜感激。
谢谢,
曼尼
调用 mpf.plot()
时使用 kwarg return_calculated_values
。你将这个 kwarg 设置为空字典,mplfinance 将用各种计算值填充它,包括砖块值 if type=pnf
:
cv = {}
mpf.plot(df,type=pnf,return_calculated_values=cv)
再看cv['pnf_bricks']
和cv['pnf_dates']
然后扫描砖值列表以找到您想要的应该相对容易。您甚至可以用它创建一个系列以使其更易于操作:
pnf_series = pd.Series(cv['pnf_bricks'],index=pd.DatetimeIndex(cv['pnf_dates']))
pnf_series.head()
2011-07-11 00:00:00+00:00 122.117136
2011-08-08 00:00:00+00:00 114.248562
2011-08-17 00:00:00+00:00 115.232133
2011-08-22 00:00:00+00:00 116.215705
2011-09-01 00:00:00+00:00 117.199277
dtype: float64
pnf_series.tail()
2011-11-29 00:00:00+00:00 120.149992
2011-12-07 00:00:00+00:00 122.117136
2011-12-20 00:00:00+00:00 129.985711
2012-04-04 00:00:00+00:00 133.919998
2012-06-05 00:00:00+00:00 130.969283
嗯。现在我正在看我上面打印出来的例子,也许有一个错误,它似乎只打印出 last X
或 O
每个日期(不是完整列表)。
mplfinance 的新版本 (0.12.7a12
) 现已发布:
pip install --upgrade mplfinance
在此版本中,如果您执行以下操作:
cv = {}
mpf.plot(df,type=pnf,return_calculated_values=cv)
然后“计算值”字典 cv
将填充以下项目:
dict_keys(['pnf_dates', 'pnf_counts', 'pnf_values', 'pnf_avgvals',
'pnf_size', 'pnf_volumes', 'minx', 'maxx', 'miny', 'maxy'])
cv['pnf_counts']
将包含cv['pnf_dates']
中每个日期的框数。向上框X为正值,向下框O为负值。cv['pnf_values']
将是列表的列表。外层表对应每个pnf日期,内层表在每个日期对应每个框在该日期的beginning值:“beginning”表示是向上的下界框,或向下框的上界。对于向上的框,X从这个值跨越到(value+pnf_size),对于向下的框,O从这个值跨越到(value-pnf_size)cv['pnf_avgvals']
是给定日期所有 pnf_values 的平均值,与以前版本的 mplfinance 返回的pnf_bricks
相同。
希望这对您有所帮助。祝一切顺利。