tensorflow挖掘资金流向和股票价格的关系

更多精彩内容详见个人量化交易专辑索引

本文通过tensorflow建模挖掘个股资金流向和个股股价之间的关系,个股资金流向使用的是东财的数据,结论是:

主力资金流入比例和巨量资金流入比例与涨跌幅正相关;

小量资金流入比例与涨跌幅负相关;

中量资金流入比例与涨跌幅微量负相关,比小量资金流入比例小一个数量级;

大量资金流入比例与涨跌幅不相关,比中量资金流入比例再小一个数量级;

本文预测的是当天资金流向和股价的关系,不涉及对下个交易日股价的预测。

1. 数据准备(可以直接从资源中下载)

每行数据格式如下:

|涨跌幅|主力资金流入例|小量资金流入比例|中量资金流入比例|大量资金流入比例|巨量资金流入比例|

2. 加载数据

df = pd.read_csv('fflow_data.csv')

3. 训练集和测试集采样

n = len(df)
train_df = df[0:int(n*0.7)]
val_df = df[int(n*0.7):int(n*0.9)]
test_df = df[int(n*0.9):]

x_train = train_df.drop('change_rate', axis=1)
y_train = train_df[['change_rate']]
x_val = val_df.drop('change_rate', axis=1)
y_val = val_df[['change_rate']]
x_test = test_df.drop('change_rate', axis=1)
y_test = test_df[['change_rate']]

4. 定义并训练模型

weight_layer = tf.keras.layers.Dense(1, kernel_regularizer=regularizers.l2(0.1))
model = tf.keras.Sequential([
    weight_layer,
])
model.compile(optimizer=tf.keras.optimizers.Adam(),
                    loss=tf.keras.losses.MeanAbsoluteError(),
                    metrics=[tf.keras.metrics.MeanAbsoluteError()])

early_stopping = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10, mode='min')
history = model.fit(x_train, y_train,
                      validation_data=[x_val, y_val],
                      epochs=2048,
                      batch_size=512,
                      verbose=2,
                      callbacks=[early_stopping])

5. 用测试集评估模型

performance = model.evaluate(x_test, y_test, verbose=2)

6. 打印权重

'''
[[ 0.04289039]
 [-0.03468578]
 [-0.0044735 ]
 [-0.00070245]
 [ 0.04196407]]
[0.33311036]
'''
weight_Dense,bias_Dense = weight_layer.get_weights()
print(weight_Dense)
print(bias_Dense)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我的小白兔奶糖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值