欢迎访问369期货网 369会员登录 注册

当前位置: 主页 > 期货量化

量化交易实战05 - 机器学习在交易中的基本应用(三)基于机器学习的简单的交易策略(创造交易条件)

时间:2025-10-15 16:16|来源:369期货网|作者:369期货网|点击:
、创造交易条件


接下来我们做一点简单的特征工程,以便进行后面的工作。

这里用每日开盘价减去收盘价,并保存为一个新的特征:用最高价减去最低价,保存成另外一个特征。同时,如果股票次日收盘价高于当日收盘价,则标记为1,代表次日股票价格上涨;反之,如果次日收盘价低于当日收盘价,则标记为-1,代表股票次日价格下跌或者不变。这个过程可以称为创建股票的交易条件(tradingcondition)。

输入代码如下:

    #下面我们来定义一个用于分类的函数,给数据表增加三个字段#首先是开盘价减收盘价,命名为0pen-Close#其次是最高价减最低价,命名为High-Lowdef classification_tc(df):    df['0pen-Close'] = df['0pen'] -df['Close']    df['High-Low'] = df['High'] - df['Low']    #添加一个target字段,如果次日收盘价高于当日收盘价,则标记为1,反之为-1    df['target']= np.where(df['close'].shift(-1)>df['close'],1,-1)    #去掉有空值的行    df = df.dropna()    #将open-Close和High-Low作为数据集的特征    X=df[['Open-Close','High-Low']]    #将target赋值给y    y = df['target']    #将x与y进行返回    return(X,y)

    运行代码,就完成了这个的数的定义。由于我们通过股票价格变化的情况对数据进行了分类,即1代表价格上涨,-1代表价格下跌或不变,这个交易条件可以用来训练分类模型。让模型预测某只股票在下一个交易日价格上涨与否。

    如果要创建用于回归模型的交易条件,则可以对代码稍做调整,将次日收盘价减去当日收盘价的差作为预测的目标。这样就可以训练回归模型,使其预测次日股价上涨(或下跌)的幅度。输入代码如下:

      #下面定义一个用于回归的函数#特征的添加与分类函数类似#只不过target字段改为次日收盘价减去当日收盘价def regression_tc(df):    df['Open-Close'] = df['Open']- df['Close']    df['High-Low'] = df['High']- df['Low']    df['target'] = df['Close'].shift(-l)- df['Close']    df = df.dropna()    X = df[['Open-Close','High-Low']]    y= df['target']    #将x和y进行返回    return(X,y)

      运行代码即可完成回归交易条件函数的定义。与分类交易条件一样,我们同样是把股票当日的开盘价和收盘价的差,与最高价和最低价的差作为样本的特征。不同的是,预测目标变成了次日收盘价与当日收盘价的差。



      图片

      只是定义,没有任何结果。

      我们在做任何的交易之前,一定要写好自己的逻辑,其逻辑可能本身没有什么直观的效果,但是确实最重要的一环。

      像我这里,就需要输出的结果其实是预测了次日收盘价与当日收盘价的差值,简单来说,只要次日收盘价大于当日收盘价,即记为1,反之记为-1,通过将数据集分为训练集和验证集,用训练集训练模型,然后用验证集去验证模型的对错的概率。



      编辑推荐

      Copyright © 2024-2025 成都宁时科技有限公司 版权所有

      蜀ICP备2022023994号