加载中 ...
首页 > 财经 > 焦点新闻 > 正文

模型预测炒股(建立生产镍的上市公司自己的炒股模型)

2023-10-28 11:03:46 来源:倾延资

关于出资最大的误解之一可能是,只需老到的人才干成功地选择股票。
但是,原始智力能够说是猜测出资成功最不牢靠的要素之一。
巴菲特曾说:“你不需求成为一名火箭科学家。出资不是智商160的人打败智商130的人的游戏。“
跟随巴菲特的出资哲学并不需求天才,但任何人要想一直跑赢商场并回避行为失误,都是适当困难的。
相同重要的是,出资者有必要意识到,底子不存在一套奇特的规矩、一个公式或一个“简单的按钮”能够发生跑赢商场的成果。它不存在,也永久不会存在。
“出资者应该对依据前史的模型持怀疑态度。这些模型由听起来怪怪的人构建,往往看起来令人形象深入。但是,出资者往往忘掉查看模型背面的假定。”
马克·吐温有一句名言:“捉弄他人比让他们信任自己被捉弄了要简单得多。”
坚持一套全体的出资原则是好的,但出资仍然是一门困难的艺术,需求考虑,不应该感到轻松。
所以查理芒格才说:“这并不简单。任何觉得简单的人都是愚笨的。”学了差不多10多天的入门机器学习,忽然发现学好数学是多么的重要,曾经上学时还觉得数学只需学会加减乘除就能够了,什么导数,回归方程都没什么用,这段时刻真懊悔死,看了很多模型原理推导,有很多的数学符号都不认识了,悉数还给了教师,改天还得回家找下曾经初中高中的数学书看看才行。感觉我一文科生学这些东西真的十分费劲,说不定哪天我秃头了就真的变强了,哈哈哈!n年后秃头的自己看到今日写的这篇文章会是什么样的心境,不由得幻想了下。每次都言之无谓,放出代码如下:

import numpy as np

import pandas as pd

import tushare as ts

import matplotlib.pyplot as plt

from pylab import mpl

from datetime import datetime

import talib

from sklearn.ensemble import RandomForestClassifier #分类决策树模型

from sklearn.metrics import accuracy_score #猜测准确度评分函数

import warnings

warnings.filterwarnings("ignore")

#pd.set_option()便是pycharm输出操控显现的设置

pd.set_option('expand_frame_repr', False)#True便是能够换行显现。设置成False的时分不允许换行

pd.set_option('display.max_columns', None)# 显现一切列

#pd.set_option('display.max_rows', None)# 显现一切行

pd.set_option('colheader_justify', 'centre')# 显现居中

pro = ts.pro_api('要到tushare官网注册个账户然后将token复制到这儿')

mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默许字体

mpl.rcParams['axes.unicode_minus'] = False # 处理保存图像是负号'-'显现为方块的问题

#1.数据预备

df = pro.daily(ts_code='002505.SZ', start_date='20200101', end_date='20200818')

df.set_index('trade_date', inplace=True) #设置date列为索引,掩盖本来索引,这个时分索引仍是 object 类型,便是字符串类型。

df.index = pd.DatetimeIndex(df.index) #将object类型转化成 DateIndex 类型,pd.DatetimeIndex 是把某一列进行转化,一起把该列的数据设置为索引 index。

df = df.sort_index(ascending=True) #将时刻次序升序,契合时刻序列

print(df)

df['close-open'] = (df['close']-df['open'])/df['open']

df['high-low'] = (df['high']-df['low'])/df['low']

df['pre_close'] = df['close'].shift(1) #昨日收盘价

df['price_change'] = df['close']-df['pre_close']

df['p_change'] = (df['close']-df['pre_close'])/df['pre_close']*100

df['MA5'] = df['close'].rolling(5).mean()

df['MA10'] = df['close'].rolling(10).mean()

df.dropna(inplace=True)

df['RSI'] = talib.RSI(df['close'], timeperiod=12)

df['MOM'] = talib.MOM(df['close'], timeperiod=5)

df['EMA12'] = talib.EMA(df['close'], timeperiod=12)

df['EMA26'] = talib.EMA(df['close'], timeperiod=26)

df['MACD'], df['MACDsignal'], df['MACDhist'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)

df.dropna(inplace=True)

#2.提取特征变量和方针变量,用当天收盘后获取完好的数据为特征变量,下一天的涨跌状况为方针变量这样来练习分类决策树模型

X = df[['close', 'vol', 'close-open', 'MA5', 'MA10', 'high-low', 'RSI', 'MOM', 'EMA12', 'EMA26', 'MACD', 'MACDsignal', 'MACDhist']]

y = np.where(df['price_change'].shift(-1)>0, 1, -1) #下一天股价涨,赋值1,跌落或平,赋值-1

#3设置练习集跟测验集

X_length = X.shape[0] #获取X的行数和列数,shape[0]为行数

split = int(X_length * 0.8)

X_train, X_test = X[:split], X[split:]

y_train, y_test = y[:split], y[split:]

#4设置模型

model = RandomForestClassifier(max_depth=4, n_estimators=10, min_samples_leaf=5, random_state=1)

model.fit(X_train, y_train)

#5猜测股价涨跌,依据X_test给出的'close', 'vol', 'close-open', 'MA5'等数据进行猜测第二天股价的涨跌状况

y_pred = model.predict(X_test)

#print(y_pred)

a = pd.DataFrame()

a['猜测值'] = list(y_pred)

a['实践值'] = list(y_test)

print(a)

#6猜测归于各个分类的概率

y_pred_proba = model.predict_proba(X_test)

b = pd.DataFrame(y_pred_proba, columns=['分类为-1的概率', '分类为1的概率'])

print(b)

#7全体模型的猜测准确度

from sklearn.metrics import accuracy_score

score = accuracy_score(y_pred, y_test)

print('准确率: ' + str(round(score*100, 2)) + '%')

#8剖析特征变量的特征重要性

features = X.columns

importances = model.feature_importances_

b = pd.DataFrame()

b['特征'] = features

b['特征重要性'] = importances

b = b.sort_values('特征重要性', ascending=False)

print(b)

#参数调优

from sklearn.model_selection import GridSearchCV

parameters = {'n_estimators':[5, 10, 20], 'max_depth':[2, 3, 4, 5], 'min_samples_leaf':[5, 10, 20, 30]}

new_model = RandomForestClassifier(random_state=1)

grid_search = GridSearchCV(new_model, parameters, cv=6, scoring='accuracy')

grid_search.fit(X_train, y_train)

grid_search.best_params_

print('最优模型参数: ' + str(grid_search.best_params_))结语:成果看看就好,别较真。

猜你喜欢的标签:国拍 三花股份股票

“倾延资_创业企业信赖的财经新闻门户”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服邮箱,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。

  • 声音提醒
  • 60秒后自动更新
  • 中国8月CPI年率2.3%,预期2.1%,前值2.1%。中国8月PPI年率4.1%,预期4.0%,前值4.6%。

    08:00
  • 【统计局解读8月CPI:主要受食品价格上涨较多影响】从环比看,CPI上涨0.7%,涨幅比上月扩大0.4个百分点,主要受食品价格上涨较多影响。食品价格上涨2.4%,涨幅比上月扩大2.3个百分点,影响CPI上涨约0.46个百分点。从同比看,CPI上涨2.3%,涨幅比上月扩大0.2个百分点。1-8月平均,CPI上涨2.0%,与1-7月平均涨幅相同,表现出稳定态势。

    08:00
  • 【 统计局:从调查的40个行业大类看,8月价格上涨的有30个 】统计局:从环比看,PPI上涨0.4%,涨幅比上月扩大0.3个百分点。生产资料价格上涨0.5%,涨幅比上月扩大0.4个百分点;生活资料价格上涨0.3%,扩大0.1个百分点。从调查的40个行业大类看,价格上涨的有30个,持平的有4个,下降的有6个。 在主要行业中,涨幅扩大的有黑色金属冶炼和压延加工业,上涨2.1%,比上月扩大1.6个百分点;石油、煤炭及其他燃料加工业,上涨1.7%,扩大0.8个百分点。化学原料和化学制品制造业价格由降转升,上涨0.6%。

    08:00
  • 【日本经济已重回增长轨道】日本政府公布的数据显示,第二季度经济扩张速度明显快于最初估值,因企业在劳动力严重短缺的情况下支出超预期。第二季度日本经济折合成年率增长3.0%,高于1.9%的初步估计。经济数据证实,该全球第三大经济体已重回增长轨道。(华尔街日报)

    08:00
  • 工信部:1-7月我国规模以上互联网和相关服务企业完成业务收入4965亿元,同比增长25.9%。

    08:00
  • 【华泰宏观:通胀短期快速上行风险因素主要在猪价】华泰宏观李超团队点评8月通胀数据称,今年二、三季度全国部分地区的异常天气(霜冻、降雨等)因素触发了粮食、鲜菜和鲜果价格的波动预期,但这些因素对整体通胀影响有限,未来重点关注的通胀风险因素仍然是猪价和油价,短期尤其需要关注生猪疫情的传播情况。中性预测下半年通胀高点可能在+2.5%附近,年底前有望从高点小幅回落。

    08:00
  • 【中国信通院:8月国内市场手机出货量同比环比均下降】中国信通院公布数据显示:2018年8月,国内手机市场出货量3259.5万部,同比下降20.9%,环比下降11.8%,其中智能手机出货量为3044.8万部,同比下降 17.4%; 2018年1-8月,国内手机市场出货量2.66亿部,同比下降17.7%。

    08:00
  • 土耳其第二季度经济同比增长5.2%。

    08:00
  • 乘联会:中国8月份广义乘用车零售销量176万辆,同比减少7.4%。

    08:00
  • 央行连续第十四个交易日不开展逆回购操作,今日无逆回购到期。

    08:00
  • 【黑田东彦:日本央行需要维持宽松政策一段时间】日本央行已经做出调整,以灵活地解决副作用和长期收益率的变化。央行在7月政策会议的决定中明确承诺将利率在更长时间内维持在低水平。(日本静冈新闻)

    08:00
  • 澳洲联储助理主席Bullock:广泛的家庭财务压力并非迫在眉睫,只有少数借贷者发现难以偿还本金和利息贷款。大部分家庭能够偿还债务。

    08:00
  • 【 美联储罗森格伦:9月很可能加息 】美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。

    08:00
  • 美联储罗森格伦:经济表现强劲,未来或需采取“温和紧缩”的政策。美联储若调高对中性利率的预估,从而调升对利率路径的预估,并不会感到意外。

    08:00
  • 美联储罗森格伦:鉴于经济表现强劲,未来或需采取“温和紧缩的”政策。

    08:00