统计一段时期内股票的涨幅情况
Posted 佩雷尔曼的信徒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计一段时期内股票的涨幅情况相关的知识,希望对你有一定的参考价值。
# -*- coding: utf-8 -*- \'\'\'加载模块\'\'\' import sqlalchemy import pandas \'\'\'连接数据库\'\'\' engine = sqlalchemy.create_engine(\'mssql+pyodbc://sa:123456@XiTongDSN\') connection = engine.connect() \'\'\'股票代码列表\'\'\' codelist = pandas.read_sql(\'codelist\', engine) \'\'\'给每个股票算涨幅\'\'\' rise = [] for i in range(0, len(codelist) - 1): data = pandas.read_sql(codelist[\'code\'][i], engine) \'\'\'这个 a b 的 0 赋值不能省,由于有些股票会停牌,期间无数据会调用上个股票的 a 值,报错\'\'\' a = 0 b = 0 for j in range(0, len(data) - 1): \'\'\'由于数据库内的数据日期是由大到小排的,懒的调了,就这样也行\'\'\' if data[\'date\'][j] == \'2016-03-31\': a = data[\'close\'][j] if data[\'date\'][j] == \'2016-03-01\': b = data[\'close\'][j] if not (a == 0 or b == 0): c = (a - b) / b break else: c = 0 break rise.append((codelist[\'code\'][i], c, \'2016-03-31\', \'2016-03-01\')) \'\'\' list 转 dataframe \'\'\' rise = pandas.DataFrame(rise) \'\'\'修改列名\'\'\' rise.columns = [\'code\', \'rise\', \'date_to\', \'date_from\'] \'\'\'按涨幅排序\'\'\' rise = rise.sort_values(by = \'rise\', ascending = False) \'\'\'写库\'\'\' rise.to_sql(\'rise\', engine, if_exists = \'replace\', index = False) print(\'ok\')
跟通达信股软的涨跌幅排名(相同条件,如不复权,日期一致等)比较了一下,有些出入,我换了普通计算器手工算了一下,还是跟通达信的有出入,真是不知道通达信的公式是什么
以上是关于统计一段时期内股票的涨幅情况的主要内容,如果未能解决你的问题,请参考以下文章