股票学习网

股票入门基础知识,股票基本知识 - - 767股票学习网!

手机炒股软件画图与手机炒股软件app排名

2024-03-20 18:38分类:帐户交易 阅读:

准备工作

安装python环境(这个不必多说,能看到这篇文章的基本大家都有安装)

安装相应第三方依赖库

数据准备

  1. matplotlib python重要的绘图库。

    numpy 支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    Talib 称“Technical Analysis Library”, 即技术分析库,是Python金融量化的高级库,涵盖了150多种股票、期货交易软件中常用的技术分析指标,如MACD、RSI、KDJ、动量指标、布林带等等。

    pandas 基于numpy的一种工具,是为了解决数据分析任务而创建的,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

    mpl_finance python中可以用来画出蜡烛图、线图的分析工具,目前已经从matplotlib中独立出来,非常适合用来画K线

    psycopg2(选用) python中用以和postgres数据库交互的第三方库,作者个人的数据都存储在postgres数据库中,因此使用这个模块。

数据来源于Tushare,一个免费好用的财经数据包,自己每日更新处理并加载到阿里云的服务器上(这里会为大家准备好数据进行使用)

import talib import numpy as np import psycopg2 as pg import pandas as pd import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec#分割子图 import mpl_finance as mpf np.seterr(divide='ignore',invalid='ignore') # 忽略warning plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 fig = plt.figure(figsize=(20,12), dpi=100,facecolor="white") #创建fig对象

以上导入相关依赖包,并设置了一些参数变量

加载数据(文末提供数据)

# 加载数据 def query(sql): conn = pg.connect(dbname="stocks", user="postgres", password="******", host="******", port="5432") data = pd.read_sql(sql,conn) conn.close() return data ts_code = '000001.SZ' #股票代码 name = '平安银行' df_stockload = query("select trade_date,open,high,low,close,vol from pro_bar where ts_code = '{}' and trade_date>='20190801'".format(ts_code)) df_stockload['trade_date'] = pd.to_datetime(df_stockload['trade_date']) df_stockload=df_stockload.set_index('trade_date')

以上代码定义了一个query函数,使用pandas的readsql来加载数据库中数据,并将tarde_date设置为datetime格式,并设置为索引。

具体字段有

trade_date:交易日期

open:开盘价格

high:当日最高价

low:当日最低价

close:当日收盘价

vol:成交量

数据的结构形式

绘图

设置四个绘图区域 包括 K线(均线),成交量,MACD,KDJ

gs = gridspec.GridSpec(4, 1, left=0.08, bottom=0.15, right=0.99, top=0.96, wspace=None, hspace=0, height_ratios=[3.5,1,1,1]) graph_KAV = fig.add_subplot(gs[0,:]) graph_VOL = fig.add_subplot(gs[1,:]) graph_MACD = fig.add_subplot(gs[2,:]) graph_KDJ = fig.add_subplot(gs[3,:])

绘制K线图(以及均线)

#绘制K线图 mpf.candlestick2_ochl(graph_KAV, df_stockload.open, df_stockload.close, df_stockload.high, df_stockload.low, width=0.5, colorup='r', colordown='g') # 绘制K线走势 #绘制移动平均线图 df_stockload['Ma5'] = df_stockload.close.rolling(window=5).mean()#pd.rolling_mean(df_stockload.close,window=20) df_stockload['Ma10'] = df_stockload.close.rolling(window=10).mean()#pd.rolling_mean(df_stockload.close,window=30) df_stockload['Ma20'] = df_stockload.close.rolling(window=20).mean()#pd.rolling_mean(df_stockload.close,window=60) df_stockload['Ma30'] = df_stockload.close.rolling(window=30).mean()#pd.rolling_mean(df_stockload.close,window=60) df_stockload['Ma60'] = df_stockload.close.rolling(window=60).mean()#pd.rolling_mean(df_stockload.close,window=60) graph_KAV.plot(np.arange(0, len(df_stockload.index)), df_stockload['Ma5'],'black', label='M5',lw=1.0) graph_KAV.plot(np.arange(0, len(df_stockload.index)), df_stockload['Ma10'],'green',label='M10', lw=1.0) graph_KAV.plot(np.arange(0, len(df_stockload.index)), df_stockload['Ma20'],'blue',label='M20', lw=1.0) graph_KAV.plot(np.arange(0, len(df_stockload.index)), df_stockload['Ma30'],'pink', label='M30',lw=1.0) graph_KAV.plot(np.arange(0, len(df_stockload.index)), df_stockload['Ma60'],'yellow',label='M60', lw=1.0) # 添加网格 graph_KAV.grid() graph_KAV.legend(loc='best') graph_KAV.set_title(ts_code + ' ' + name) graph_KAV.set_ylabel(u"价格") graph_KAV.set_xlim(0, len(df_stockload.index)) # 设置一下x轴的范围

绘制成交量图

#绘制成交量图 graph_VOL.bar(np.arange(0, len(df_stockload.index)), df_stockload.vol,color=['g' if df_stockload.open[x] > df_stockload.close[x] else 'r' for x in range(0,len(df_stockload.index))]) graph_VOL.set_ylabel(u"成交量") graph_VOL.set_xlim(0,len(df_stockload.index)) #设置一下x轴的范围 graph_VOL.set_xticks(range(0,len(df_stockload.index),15))#X轴刻度设定 每15天标一个日期

绘制MACD

#绘制MACD macd_dif, macd_dea, macd_bar = talib.MACD(df_stockload['close'].values, fastperiod=12, slowperiod=26, signalperiod=9) graph_MACD.plot(np.arange(0, len(df_stockload.index)), macd_dif, 'red', label='macd dif') # dif graph_MACD.plot(np.arange(0, len(df_stockload.index)), macd_dea, 'blue', label='macd dea') # dea bar_red = np.where(macd_bar > 0, 2 * macd_bar, 0)# 绘制BAR>0 柱状图 bar_green = np.where(macd_bar < 0, 2 * macd_bar, 0)# 绘制BAR<0 柱状图 graph_MACD.bar(np.arange(0, len(df_stockload.index)), bar_red, facecolor='red') graph_MACD.bar(np.arange(0, len(df_stockload.index)), bar_green, facecolor='green') graph_MACD.legend(loc='best',shadow=True, fontsize ='10') graph_MACD.set_ylabel(u"MACD") graph_MACD.set_xlim(0,len(df_stockload.index)) #设置一下x轴的范围 graph_MACD.set_xticks(range(0,len(df_stockload.index),15))#X轴刻度设定 每15天标一个日期

这里要注意 talib中计算得到的macd并没有×2,需要在计算后的macd×2

绘制KDJ

#绘制KDJ df_stockload['K'], df_stockload['D'] = talib.STOCH(df_stockload.high.values, df_stockload.low.values, df_stockload.close.values,\ fastk_period=9, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) df_stockload['J'] = 3 * df_stockload['K'] - 2 * df_stockload['D'] graph_KDJ.plot(np.arange(0, len(df_stockload.index)), df_stockload['K'], 'blue', label='K') # K graph_KDJ.plot(np.arange(0, len(df_stockload.index)), df_stockload['D'], 'g--', label='D') # D graph_KDJ.plot(np.arange(0, len(df_stockload.index)), df_stockload['J'], 'r-', label='J') # J graph_KDJ.legend(loc='best', shadow=True, fontsize='10') graph_KDJ.set_ylabel(u"KDJ") graph_KDJ.set_xlabel("日期") graph_KDJ.set_xlim(0, len(df_stockload.index)) # 设置一下x轴的范围 graph_KDJ.set_xticks(range(0, len(df_stockload.index), 15)) # X轴刻度设定 每15天标一个日期 graph_KDJ.set_xticklabels( [df_stockload.index.strftime('%Y-%m-%d')[index] for index in graph_KDJ.get_xticks()]) # 标签设置为日期

修饰图片

# X-轴每个ticker标签都向右倾斜45度 for label in graph_KAV.xaxis.get_ticklabels(): label.set_visible(False) for label in graph_VOL.xaxis.get_ticklabels(): label.set_visible(False) for label in graph_MACD.xaxis.get_ticklabels(): label.set_visible(False) for label in graph_KDJ.xaxis.get_ticklabels(): label.set_rotation(45) label.set_fontsize(10) # 设置标签字体

保存图片

plt.savefig('Kline.jpg')

最终的成果图

 

2014年12月5日,沪深两市单日成交额合计首次突破1万亿,创下了世界纪录。2015年5月25日,沪深两市成交金额突破2万亿。中国股市单日交易额达到第一个1万亿用了14年,第二个只用了不到半年!

尽管波动很大,但股市重获全民关注是不争的事实。羽翼丰满的互联网公司已付诸行动。

移动炒股应用为什么受重视

沉寂多年的股市再度火爆,吸引了大批80后、90后新股民入市。一些地区的抽样调查显示,新股民占比达到40%。对新一代股民来讲,手机就是身上的器官,炒股自然首选移动应用。

同花顺、大智慧、益盟不会放弃PC机时代的辉煌,纷纷上线移动端炒股应用。腾讯、百度两大互联网巨头,陆续推出并完善移动炒股产品。众多创业公司也各显其能加入战团,如虎嗅创业报道栏目介绍过的《东方价值线》。

移动炒股应用受重视的原因不外三个:

首先,它是可与微信媲美的超高频移动应用。有几万、几十万资产在股市中沉浮的人,即便忙得没时间用微信聊天,也得看几次、几十次行情。打车、团购、购物、叫外卖等应用的使用频率根本无法与之比肩,更不要说一年用两三次的在线旅游应用了。

其次,股民或多或少“有点闲钱”。投资过程中会有咨询、配资等增值服务需求,赚了钱可能会买房、购车、出国旅行……所谓富在深山有远亲,对“有钱人”的需求,企业焉能不趋之若鹜?

最后就是千百万投资者的大数据。

可见,炒股应用频率不比微信低,含金量微信比不了。特别是对怀揣“大金融平台”构想的互联网巨头,这个高频移动入口是金色的!

传统炒股软件终将式微

同花顺用户使用量最高、性能最稳定、支持券商最多,可以做为传统炒股软件的代表。它们的优点集中体现在三个方面:

首先是功能强大。相比之下,互联网新贵们不具备Level-2数据、实盘交易两大功能的产品显得非常业余,而且无法独立使用。严格来讲,只能看行情,不能下单的APP还称不上炒股软件。

其次是客户端产品百炼成钢、高度成熟,人机交互流畅、信息展示方式合理,用起来得心应手。

最后是丰富的技术分析工具。MA(移动平均线),MACD(指数平滑异同移动平均线)、KDJ(随机指数)、RSI(相对强弱指标)、BOLL(布林线)……林林总总有几十种之多,相当一部分老股民的投资决策已经离不开这些工具。

但是,在与互联网公司争夺新股民时,上述优势并不是可靠的“护城河”。因为传统炒股软件有的,互联网公司都可以有。互联网公司俘获新新人类、搭建生态圈的本领,传统炒股软件想学也学不会。

新新人类已被互联网公司娇惯得喊出:“别让我想”、“别让我烦”、“别让我等”。几十种分析工具,他们一种都不想学。而熟练掌握种种分析工具的老股民,最为人称道的本领却是“割肉”!

所以,传统炒股软件将随着老股民退出历史舞台而日渐式微。

互联网公司炒股软件的代表:腾讯自选股、百度股市通

2012年上线的腾讯自选股,不仅秉承了传统炒股软件的优点还将之发扬光大:

首先,运用云服务技术,用QQ或微信帐户即可登录。建立自选股名单后,腾讯将从一系列可靠的信息源抓取(购买)与这些股票相关的信息,供用户在移动端、PC端同步查看。但是,将用户关心的股票的相关信息汇总起来这件事,同花顺们做得似乎更好,腾讯自选股反而略显粗糙。

其次,同花顺因业绩压力许多增值服务是收费的。对MACD、KDJ、WR这些技术分析工具以增值服务的名义收费,每一项的费率高达880元/年。而腾讯自选股没有收费项目。类似地,股票涨、跌到目标价时的提醒服务腾讯也是免费提供,而同花顺要收费。

腾讯的思路是利用强大的用户管理能力将社交用户平移到炒股APP:新股民、老股民都有QQ号、微信号吧?同花顺有的我有,同花顺收费的我不收!

百度股市通完全是另一种思路:股票涨跌与舆情相关,特别是在散户众多、概念盛行的A股市场。因此,百度要做一款基于大数据分析的智能选股软件。

说到获取舆情的能力,百度在中国互联网公司中有得先独厚的优势:每天数亿量级的搜索数据、还有数百万政经新闻资讯、行业分析数据,不要说传统股票软件公司,阿里、腾讯也无法比拟。

而且,百度投入大量资源攻坚的人工智能技,非常适合于预测股票涨跌。将每天产生的新闻信息、搜索数据等海量数据与近3000只个股的价格波动关联起来,让机器“学习”舆情与个股涨跌的关系,进而获得预测能力。

股市通是百度“技术改变世界”信仰的一种体现,而且在逻辑上站得住脚。但舆情与股价的关系受太多的因素影响,假如央视315点了某家公司的名、网上骂声一片,股价肯定会跌吗?还真不一定!再比如,机器学会了出现某种舆情时某只个股会涨,但这个规律仅在牛市有效!百度恐怕无法完整掌握以往十五年舆情与A股涨跌的信息,即使有,机器学习的工作量也非常大。

如果从现在开始,经历若干轮牛市、熊市的轮回,加上人工智能技术的进步,百度通过舆情预测股价波动的理想终于会实现。正如用气象卫星和大型计算机预测天气,开始时准确率还不及老渔民,但最终老渔民还是会“输给机器”。

在能够真正预测股价之前,股市通这个“半成品”也有相当大的使用价值,因为它可以实时提供各种话题的“热度指数”。股民可将这些数据做为投资决策的依据之一,与机器一起学习。比如今天(6月4日),煤炭这个话题的热度指数大涨25.7%,驱动事件是煤价经历5个月下跌后出现上涨,看看煤炭板块是否有动静吧。

https://www.saximi.com

上一篇:股票600766 股票在线看盘

下一篇:金融界模拟炒股交易平台与东方财富网虚拟炒股

相关推荐

返回顶部