首页 > 编程语言 >Python量化交易系统实战--获取股票数据

Python量化交易系统实战--获取股票数据

时间:2024-04-12 22:00:46浏览次数:22  
标签:实战 code return Python param -- date freq data

 

我们首先需要获取股票数据。

代码IDE选择:PyCharm

计算机环境:MacOS  

一、获取股票数据的三种方式

 

二、获取股票数据

这里选定的是使用JoinQuant平台提供的免费接口(有时间范围限制),简单整理如下。

使用前需要先申请权限并初始化授权:

from jqdatasdk import *
auth('', '')  # 账号是申请时所填写的手机号

 

获取所有A股股票列表

def get_stock_list():
    """
    获取所有A股股票列表
    上海证券交易所.XSHG
    深圳证券交易所.XSHE
    :return: stock_list
    """
    stock_list = list(get_all_securities(['stock']).index)
    return stock_list

获取单个股票行情数据

def get_single_price(code, time_freq, start_date=None, end_date=None):
    """
    获取单个股票行情数据
    :param code: 
    :param time_freq: 
    :param start_date: 
    :param end_date: 
    :return: 
    """
    # 如果start_date=None,默认为从上市日期开始
    if start_date is None:
        start_date = get_security_info(code).start_date
    if end_date is None:
        end_date = datetime.datetime.today()
    # 获取行情数据
    data = get_price(code, start_date=start_date, end_date=end_date,
                     frequency=time_freq, panel=False)
    return data

将数据转换为指定周期:通过resample函数

def transfer_price_freq(data, time_freq):
    """
    将数据转换为指定周期:开盘价(周期第1天)、收盘价(周期最后1天)、最高价(周期内)、最低价(周期内)
    :param data:
    :param time_freq:
    :return:
    """
    df_trans = pd.DataFrame()
    df_trans['open'] = data['open'].resample(time_freq).first()
    df_trans['close'] = data['close'].resample(time_freq).last()
    df_trans['high'] = data['high'].resample(time_freq).max()
    df_trans['low'] = data['low'].resample(time_freq).min()

    return df_trans

获取单个股票财务指标

def get_single_finance(code, date, statDate):
    """
    获取单个股票财务指标
    :param code:
    :param date:
    :param statDate:
    :return:
    """
    data = get_fundamentals(query(indicator).filter(indicator.code == code), date=date, statDate=statDate)  # 获取财务指标数据
    return data

获取单个股票估值指标

def get_single_valuation(code, date, statDate):
    """
    获取单个股票估值指标
    :param code:
    :param date:
    :param statDate:
    :return:
    """
    data = get_fundamentals(query(valuation).filter(valuation.code == code), date=date, statDate=statDate)  # 获取财务指标数据
    return data

 

标签:实战,code,return,Python,param,--,date,freq,data
From: https://www.cnblogs.com/mazhiyong/p/18118814

相关文章

  • Oracle 分页的SQL语句优化
    ORACLE的分页SQL,基本上在绝大部分的业务系统上都有这种SQL。处理这种SQL,基本上要用到两点:(1).利用rownum的COUNTSTOPKEY特性.(2).利用索引的排序特性,消除sortorderby. 今天,同事发给我两个SQL。执行计划大概如下:  第1个SQL的执行计划,没有出现COUNTSTOPKEY,结合......
  • 周杰伦第一张专辑《JAY》十首歌附吉他谱分享
    周杰伦第一张专辑《JAY》,整张专辑的曲风以R&B及NewHip-Hop为主,古典巴洛克式弦乐伴奏及Band的加入,形成了一种英国式的复古风格,更特别的是,西班牙式风格的弦乐演奏在专辑歌曲中表现出的意境极度逼近电影配乐。专辑《JAY》封面  1.《可爱女人》:随着一声wu~,这首歌打开了......
  • 52 Things: Number 38: What is the difference between a covert channel and a side
    52Things:Number38:Whatisthedifferencebetweenacovertchannelandaside-channel?52件事:第38件:隐蔽通道和侧通道之间的区别是什么? Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCrypt......
  • 52 Things: Number 39: What is the difference between a side-channel attack and a
    52Things:Number39:Whatisthedifferencebetweenaside-channelattackandafaultattack?52件事:第39件:侧通道攻击和故障攻击之间的区别是什么? Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStudentShouldKnowT......
  • 2-73. NPC 的 Schedule 数据制作和路径生成
    修改NPCMovement修改Settings修改NPCMovement创建文件夹在NPC目录下创建Data和Logic两个文件夹,然后将NPCManager和NPCMovement挪动到Logic文件夹中然后在Data目录下创建ScheduleDetails创建ScheduleDataList_SO创建Schedule修改NPCMove......
  • 云场景下的代理重加密 Proxy Re-Encryption
    目录主页引言代理重加密代理重加密关键流程实践&应用总结参考资料主页个人微信公众号:密码应用技术实战个人博客园首页:https://www.cnblogs.com/informatics/引言2022年12月,人工智能迎来了一件大事,OpenAI的ChatGPT横空诞生,成为了现象级产品。如果说算力是人工智能的发动机,那......
  • 筛法学习笔记
    埃氏筛枚举质数\(p_i\),每次去除所有是\(p_i\)倍数的数,总效率大概是\(O(n\log\logn)\)。int_prm=0,prm[M];boolisprm[M];voidGet_phi(intn){ for(inti=2;i<=n;i++){ if(isprm[i])continue; prm[++_prm]=i; for(intj=i*i;j<=n;j+=i)isprm[j]=1; }}值......
  • 2024.4.12
    2024.4.12【“相遇总是猝不及防、爱意总是野蛮生长”】Sunday三月初四<theme=oi-"search">P1092NOIP2004提高组虫食算//2024.4.12//bywhite_ice#include<bits/stdc++.h>usingnamespacestd;#defineitnintconstintoo=30;chars1[oo],s2[oo],s3[oo];i......
  • 52 Things: Number 30: Roughly outline the BR security definition for key agreeme
    52Things:Number30:RoughlyoutlinetheBRsecuritydefinitionforkeyagreement52件事:第30件:大致概述密钥协议的BR安全定义 Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCryptography':a......
  • 52 Things: Number 31: Game Hopping Proof
    52Things:Number31:GameHoppingProof52件事:数字31:游戏跳跃证明 Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCryptography':asetofquestionscompiledtogivePhDcandidatesase......