Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 tushare 结合 AI 降低初学者使用门槛的需求建议 #1762

Open
tsaizehua opened this issue Jan 21, 2025 · 0 comments
Open

关于 tushare 结合 AI 降低初学者使用门槛的需求建议 #1762

tsaizehua opened this issue Jan 21, 2025 · 0 comments

Comments

@tsaizehua
Copy link

tsaizehua commented Jan 21, 2025

最近写代码会借助类似通义灵码等插件,还是挺高效的,但是对于三方的 SDK 会有一定的幻觉。tushare 可以考虑轻量化集成一些代码生成接口或能力,帮助开发者更高效地生成代码(相比 https://tushare.pro/webclient/ 的模板式),不仅能帮助初学者快速上手,减少对文档的依赖,也能吸引一些代码基础比较弱但又想利用好 tushare 丰富数据实现自己想法的人(比如非计算机大学生、金融系大学生)
举例,用户可以用自然语言描述需求(如“获取沪深 300 指数近一年的 PE 数据并绘制趋势图”),AI 自动生成完整代码,遇到错误时,AI 还能根据提示优化代码或提出修复建议,下面是 ChatGPT 对应生成的代码。

用户 ID:276472,推荐注册链接:https://tushare.pro/register?reg=276472 (太想要进Ji步Fen了)

import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime, timedelta

# 设置 Tushare 的 API Token
ts.set_token('你的TushareAPI密钥')
pro = ts.pro_api()

# 获取沪深 300 指数的 PE 数据
def get_hs300_pe():
    # 计算一年前的日期
    end_date = datetime.now()
    start_date = end_date - timedelta(days=365)
    start_date_str = start_date.strftime('%Y%m%d')
    end_date_str = end_date.strftime('%Y%m%d')

    # 调用 Tushare 接口获取沪深300指数估值数据
    index_dailybasic = pro.index_dailybasic(
        ts_code='000300.SH', # 沪深300指数代码
        start_date=start_date_str,
        end_date=end_date_str,
        fields='trade_date,pe'
    )

    # 转换日期格式并排序
    index_dailybasic['trade_date'] = pd.to_datetime(index_dailybasic['trade_date'])
    index_dailybasic.sort_values(by='trade_date', inplace=True)

    return index_dailybasic

# 绘制 PE 数据的趋势图
def plot_pe_trend(data):
    plt.figure(figsize=(10, 6))
    plt.plot(data['trade_date'], data['pe'], label='PE Ratio', color='b')
    plt.title('HS300 PE Ratio Trend (Last 1 Year)', fontsize=14)
    plt.xlabel('Date', fontsize=12)
    plt.ylabel('PE Ratio', fontsize=12)
    plt.grid(True, linestyle='--', alpha=0.7)
    plt.legend(fontsize=10)
    plt.tight_layout()
    plt.show()

if __name__ == '__main__':
    # 获取数据并绘制趋势图
    hs300_pe_data = get_hs300_pe()
    plot_pe_trend(hs300_pe_data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant