统计一段时期内股票的涨幅情况

# -*- 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')

360截图20160527205806932

跟通达信股软的涨跌幅排名(相同条件,如不复权,日期一致等)比较了一下,有些出入,我换了普通计算器手工算了一下,还是跟通达信的有出入,真是不知道通达信的公式是什么

转载于:https://www.cnblogs.com/blog-3123958139/p/5533268.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值