前复权后复权不复权选哪个更准确(炒股一般用前复权还是后复权)

"""Python获取股票(未复权、前复权、后复权)行情数据上市公司除权除息后,股价通常会发生变化,在价格走势图上出现了一个缺口。但实际价值并没有变化。复权就是对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价成交量走势图,并把成交量调整为相同的价值口径。复权能消除因除权除息造成的价格、成交量指标的走势不正常

"""
Python 获取股票(未复权、前复权、后复权)行情数据

上市公司除权除息后,股价通常会发生变化,在价格走势图上出现了一个缺口。
但实际价值并没有变化。复权就是对股价和成交量进行权息修复,按照股票的
 实际涨跌绘制股价成交量走势图,并把成交量调整为相同的价值口径。复权能
 消除因除权除息造成的价格、成交量指标的走势不正常变动。
前复权是以除权后的价格为基准来测算除权前股票的市场成本价。
复权后价格=(复权前价格-现金红利)÷(1+流通股份变动比例)
后复权是以除权前的价格为基准来测算除权后股票的市场成本价。
复权后价格=复权前价格×(1+流通股份变动比例)+现金红利股票除权
为利于分析一般使用前复权(不构成推荐)。
"""
import time
import datetime
import tushare as ts
ts.set_token('your token')                    #自行注册获取
pro = ts.pro_api()


def get_data_bar(ts_code='', adj='', start_date='', end_date='', retry_count=3, pause=2):
    #复权日线行情 adj ='qfq','hfq'代表前复权,后复权
    for g in range(retry_count):
        try:
            df = ts.pro_bar(ts_code=ts_code, adj=adj, start_date=start_date, end_date=end_date)
        except:
            time.sleep(pause)
        else:
            return df

def get_data_stock_daily(ts_code='', start_date='', end_date='', retry_count=3, pause=2):
    #不复权日线行情
    for g in range(retry_count):
        try:
            df = pro.daily(ts_code=ts_code, start_date=start_date, end_date=end_date,
                           fields='ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount')
        except Exception as err:
            print(err)
            time.sleep(pause)
        else:
            return df

def end_dt(days=0):
    try:
        time_temp = datetime.datetime.now() - datetime.timedelta(days=days)
        dt = time_temp.strftime('%Y%m%d')
        return dt
    except Exception as err:
        print('end_dt is err', err)

if __name__ == '__main__':

    start_dt = end_dt(days=365)               #行情开始日期
    end_dt = end_dt(days=0)                    #行情终止日期
    print(start_dt, end_dt)
    last_trade_dt = '20221031'                  #指定行情日期
    code_wm = '000028.SZ'                      #指定股票代码 以比亚迪为例

     #获取000028.SZ股票期间不复权行情
    df_wm = get_data_stock_daily(ts_code=code_wm, start_date=start_dt, end_date=end_dt, retry_count=3, pause=2)
    print(df_wm.head(8))

    #获取000028.SZ股票期间前复权行情
    df_qfq = get_data_bar(ts_code=code_wm, adj='qfq', start_date=start_dt, end_date=end_dt, retry_count=3, pause=2)
    print(df_qfq.head(8))

    # 获取000028.SZ股票期间前后权行情
    df_hfq = get_data_bar(ts_code=code_wm, adj='hfq', start_date=start_dt, end_date=end_dt, retry_count=3, pause=2)
    print(df_hfq.head(8))

    """运行结果
    20211115 20221115
         ts_code trade_date   open   high  ...  change  pct_chg       vol      amount
    0  000028.SZ   20221115  33.85  35.63  ...    1.15   3.3744  84531.78  293308.434
    1  000028.SZ   20221114  31.66  34.39  ...    2.04   6.3670  88615.43  298084.693
    2  000028.SZ   20221111  32.95  33.66  ...   -0.35  -1.0806  59711.46  196521.266
    3  000028.SZ   20221110  31.67  32.78  ...    0.63   1.9836  37789.35  122420.441
    4  000028.SZ   20221109  31.70  32.15  ...    0.13   0.4110  18036.32   57442.850
    5  000028.SZ   20221108  31.61  31.80  ...   -0.23  -0.7219  28254.67   88723.821
    6  000028.SZ   20221107  31.56  32.34  ...    0.01   0.0314  23762.12   75506.015
    7  000028.SZ   20221104  31.70  31.99  ...    0.31   0.9829  19295.00   61308.707
    
    [8 rows x 11 columns]
         ts_code trade_date   open   high  ...  change  pct_chg       vol      amount
    0  000028.SZ   20221115  33.85  35.63  ...    1.15   3.3744  84531.78  293308.434
    1  000028.SZ   20221114  31.66  34.39  ...    2.04   6.3670  88615.43  298084.693
    2  000028.SZ   20221111  32.95  33.66  ...   -0.35  -1.0806  59711.46  196521.266
    3  000028.SZ   20221110  31.67  32.78  ...    0.63   1.9836  37789.35  122420.441
    4  000028.SZ   20221109  31.70  32.15  ...    0.13   0.4110  18036.32   57442.850
    5  000028.SZ   20221108  31.61  31.80  ...   -0.23  -0.7219  28254.67   88723.821
    6  000028.SZ   20221107  31.56  32.34  ...    0.01   0.0314  23762.12   75506.015
    7  000028.SZ   20221104  31.70  31.99  ...    0.31   0.9829  19295.00   61308.707
    
    [8 rows x 11 columns]
         ts_code trade_date      open  ...  pct_chg       vol      amount
    0  000028.SZ   20221115  140.8871  ...   3.3744  84531.78  293308.434
    1  000028.SZ   20221114  131.7721  ...   6.3671  88615.43  298084.693
    2  000028.SZ   20221111  137.1412  ...  -1.0806  59711.46  196521.266
    3  000028.SZ   20221110  131.8137  ...   1.9836  37789.35  122420.441
    4  000028.SZ   20221109  131.9386  ...   0.4110  18036.32   57442.850
    5  000028.SZ   20221108  131.5640  ...  -0.7219  28254.67   88723.821
    6  000028.SZ   20221107  131.3559  ...   0.0314  23762.12   75506.015
    7  000028.SZ   20221104  131.9386  ...   0.9829  19295.00   61308.707
    
    [8 rows x 11 columns]
    
    Process finished with exit code 0
    """

    """
    Pgabc 2022000032
    author : Pgabc
    www.wmdbsoft.com
    更多函数,安装工具包
    pip install pgabc
    pgabc@sohu.com
    """
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1553299181@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.jqfhc99.com/5351.html