python获取股市资金流向

import pandas as pd
import requests


def gen_secid(stock_code: str) -> str:
    '''
    生成东方财富专用的secid

    Parameters
    ----------
    stock_code: 6 位股票代码

    Return
    ------
    str : 东方财富给股票设定的一些东西
    '''
    # 沪市指数
    if stock_code[:3] == '000':
        return f'1.{stock_code}'
    # 深证指数
    if stock_code[:3] == '399':
        return f'0.{stock_code}'
    # 沪市股票
    if stock_code[0] != '6':
        return f'0.{stock_code}'
    # 深市股票
    return f'1.{stock_code}'


def get_history_bill(stock_code: str) -> pd.DataFrame:
    '''
    获取多日单子数据
    -
    Parameters
    ----------
    stock_code: 6 位股票代码

    Return
    ------
    DataFrame : 包含指定股票的历史交易日单子数据(大单、超大单等)

    '''
    EastmoneyHeaders = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko',
        '
### 使用Python实现个股资金流向分析 #### 方法概述 个股资金流向分析可以帮助投资者了解市场情绪和主力资金的动向,从而辅助决策。通过Python编程语言,可以方便地获取并处理这些数据。常用的数据源包括AkShare库和其他网络API接口。 #### 实现步骤 ##### 数据获取 使用`akshare`库可以直接从A股市获取个股的资金流信息。该库提供了简洁易用的接口来访问多种类型的金融数据[^5]。 ```python import akshare as ak # 获取指定股票资金流向数据 (以600094为例) df = ak.stock_individual_fund_flow(stock="600094", market="sh") # 将结果保存到CSV文件中以便后续查看或进一步分析 df.to_csv('individual_stock_fund_flow_data.csv', header=True, index=False) ``` 这段代码会下载上海交易所上市编号为600094这只股票最近一段时间内的每日资金流入流出情况,并将其存入名为`individual_stock_fund_flow_data.csv` 的CSV 文件里。 ##### 数据预览与初步清洗 读取刚刚保存下来的CSV文件并对其中的数据做一些简单的清理工作: ```python import pandas as pd # 加载之前保存的数据集 fund_flow_df = pd.read_csv('individual_stock_fund_flow_data.csv') # 查看前几条记录确认加载成功 print(fund_flow_df.head()) # 对日期列进行转换使其更易于理解和操作 fund_flow_df['date'] = pd.to_datetime(fund_flow_df['date']) # 删除重复项(如果有) fund_flow_df.drop_duplicates(inplace=True) # 排序使得最新的一天排在最前面 fund_flow_df.sort_values(by='date', ascending=False, inplace=True) ``` 上述脚本首先打印了几行原始数据供快速浏览,接着进行了必要的类型转换以及去除可能存在的冗余记录等基本维护任务。 ##### 可视化展示 为了更好地理解所收集的信息,可以通过图表的形式直观呈现出来。这里采用Matplotlib绘制柱状图表示不同时间段内净买入金额的变化趋势: ```python import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) plt.bar(x=fund_flow_df.index, height=fund_flow_df['net_amount_main'], color=['green' if x > 0 else 'red' for x in fund_flow_df['net_amount_main']]) plt.title('Net Main Force Buying Amount Over Time') plt.xlabel('Date Index') plt.ylabel('Amount (RMB)') plt.show() ``` 此部分创建了一个图形窗口,在里面画出了每一天主要力量净购额随时间变化的情况——正值显示绿色代表净买入,负值则用红色标记意味着净卖出。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_38111284

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值