发布于2020-02-24 22:24 阅读(1597) 评论(0) 点赞(30) 收藏(0)
CDP指标解释:https://baike.baidu.com/item/CDP指标/12789074?fr=aladdin
get_cdp.py
- # coding: utf-8
- import os, sys
- import numpy as np
- import pandas as pd
- import tushare as ts
- import math
-
- if len(sys.argv) ==2:
- code = sys.argv[1]
- else:
- print('usage: python get_cdp.py stockcode ')
- sys.exit(1)
-
- if len(code) !=6:
- print('stock code length: 6')
- sys.exit(2)
-
- df = ts.get_k_data(code)
- if df.empty ==True:
- print(" df is empty ")
- sys.exit(2)
- df = df[ df['date'] > '2018-01-01']
- if len(df) <15:
- print(" len(df) <15 ")
- sys.exit(2)
-
- # 收盘价
- close = np.array(df['close'])
- C = close[-1]
- # 最高价
- high = np.array(df['high'])
- H = high.max()
- # 最低价
- low = np.array(df['low'])
- L = low.min()
- print("H={0:.2f} , C={1:.2f} , L={2:.2f} , H-L={3:.2f}\n".format(H,C,L,H-L))
- # 计算 CDP
- # 第一种算法: CDP=(H+L+C)/3 早年股民用得比较多,因为用计算器方便计算.
- cdp1 = (H+L+C)/3
- print("cdp1={0:.2f}".format(cdp1))
- #此五个数值的排列顺序为(从最高到最低):AH(高价突破点),NH(卖点),CDP,NL(买点),AL(低价突破点)。
- AH = cdp1+(H-L)
- NH = cdp1*2 -L
- AL = cdp1-(H-L)
- NL = cdp1*2 -H
- print("AH={0:.2f} , NH={1:.2f} , NL={2:.2f} , AL={3:.2f}".format(AH,NH,NL,AL))
- print('----------')
- # 第二种算法: CDP=(H+L+C*2)/4 现在用得比较多,因为有了电脑.
- cdp = (H+L+C*2)/4
- print("cdp ={0:.2f}".format(cdp))
- #此五个数值的排列顺序为(从最高到最低):AH(高价突破点),NH(卖点),CDP,NL(买点),AL(低价突破点)。
- AH = cdp +(H-L)
- NH = cdp*2 -L
- AL = cdp-(H-L)
- NL = cdp*2 -H
- print("AH={0:.2f} , NH={1:.2f} , NL={2:.2f} , AL={3:.2f}".format(AH,NH,NL,AL))
运行 python get_cdp.py 600030
画股价走势图 stock_cdp.py
- # coding: utf-8
- import os, sys
- import numpy as np
- import matplotlib.pyplot as plt
- import pandas as pd
- import tushare as ts
- import math
-
- if len(sys.argv) ==2:
- code = sys.argv[1]
- else:
- print('usage: python stock_cdp.py stockcode ')
- sys.exit(1)
-
- if len(code) !=6:
- print('stock code length: 6')
- sys.exit(2)
-
- df = ts.get_k_data(code)
- if df.empty ==True:
- print(" df is empty ")
- sys.exit(2)
-
- if len(df) <15:
- print(" len(df) <15 ")
- sys.exit(2)
-
- # 收盘价
- close = np.array(df['close'])
- C = close[-1]
- # 最高价
- high = np.array(df['high'])
- H = high.max()
- # 最低价
- low = np.array(df['low'])
- L = low.min()
- print("H={0:.2f} , C={1:.2f} , L={2:.2f} , H-L={3:.2f}\n".format(H,C,L,H-L))
- # 计算 CDP
- # 第一种算法: CDP=(H+L+C)/3 早年股民用得比较多,因为用计算器方便计算.
- df['cdp1'] = df[['close']].apply(lambda x:round((H+L+x)/3,2))
- # 第二种算法: CDP=(H+L+C*2)/4 现在用得比较多,因为有了电脑.
- df['cdp2'] = df[['close']].apply(lambda c:(H+L+c*2)/4)
- print(df[['close','cdp1','cdp2']].tail(10))
- # 计算 当前 CDP
- cdp1 = round((H+L+C)/3, 3)
- cdp2 = (H+L+C*2)/4
- print("C-cdp1= {0:.3f}".format(C-cdp1))
- print("C-cdp2= {0:.3f}".format(C-cdp2))
-
- df = df[ df['date'] > '2018-01-01']
- df.index = pd.to_datetime(df.date)
- # 画股价走势图
- fig,axes = plt.subplots(2,1)
- df[['close','cdp1','cdp2']].plot(ax=axes[0], grid=True, title=code)
- # 画股票成交量图
- df[['volume']].plot(ax=axes[1], grid=True)
- plt.show()
运行 python stock_cdp.py 600030
作者:大魔王
链接:https://www.pythonheidong.com/blog/article/232452/05d3a9cfc554b651e263/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!