量化交易学习日记10-准备张江高科的训练数据集

说明

前面我写好了一些因子,比如真实换手率,区间净额,
我准备把他们作为特征变量,特征变量还有基础的日线数据和周线数据。
总共40个训练特征量,1个目标特征量
目标特征量是未来五天的情况,如果最高价超过当日收盘价的百分之五,标签为1
如果最低价低于当日收盘价的百分之五,标签为-1,其他为0,另外如果既有上涨百分之五和下跌百分之五,打1.

时间有点晚了,直接贴代码把。

def get_modoel_data_zjgk(start_date,end_date):
    #先获取日线数据
    df = pro.query('daily',ts_code='600895.SH',start_date=start_date,end_date=end_date)
    df=label_daily_data(df,0.05,5)  
    df1=df[['ts_code','trade_date','open','high','low','close','pre_close','change','pct_chg','vol','amount','label']]
    df1.head()
    # 使用 apply 方法并合并返回的数据
    new_data1 = df1.apply(add_week_data, axis=1)
    new_data2=df1.apply(add_turnover_rate, axis=1)
    new_data3=df1.apply(add_unusual_capital_flow, axis=1)
    # 将新数据合并到原 DataFrame
    df2 = pd.concat([df1, new_data1], axis=1)
    df3=pd.concat([df2, new_data2], axis=1)
    df4=pd.concat([df3, new_data3], axis=1)
    df4.fillna(0, inplace=True)
    # 删除 ts_code 和 trade_date 列
    df4.drop(columns=['ts_code', 'trade_date'], inplace=True)

    return df4
# 定义函数来提取数据并扩展到DataFrame中
def add_week_data(row):
    data = get_previous_trading_days_summary(row['ts_code'], row['trade_date'])
    return pd.Series(data)
def add_turnover_rate(row):
    data=get_real_turnover_ratio(row['ts_code'], row['trade_date'])
    return pd.Series(data)
def add_unusual_capital_flow(row):
    data=return_zjgk_unusual_price(row['trade_date'],row['trade_date'],row['ts_code'])
    return pd.Series(data)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值