当前位置:首页 » 股市行情 » python统计股票行情信号
扩展阅读
5月29日买什么股票 2025-02-12 14:58:12

python统计股票行情信号

发布时间: 2023-07-13 22:46:04

Ⅰ python如何获得股票实时交易数据

使用easyquotation这个库。(不用重复造轮子了)
github地址是:
https://github.com/shidenggui/easyquotation

Ⅱ python的量化代码怎么用到股市中

2010 ~ 2017 沪深A股各行业量化分析

在开始各行业的量化分析之前,我们需要先弄清楚两个问题:

  • 第一,A股市场上都有哪些行业;

  • 第二,各行业自2010年以来的营收、净利润增速表现如何?

  • 第一个问题
    很好回答,我们使用JQData提供的获取行业成分股的方法,输入get_instries(name='sw_l1')
    得到申万一级行业分类结果如下:它们分别是:【农林牧渔、采掘、化工、钢铁、有色金属、电子、家用电器、食品饮料、纺织服装、轻工制造、医药生物、公用事业、交通运输、房地产、商业贸易、休闲服务、综合、建筑材料、建筑装饰、电器设备、国防军工、计算机、传媒、通信、银行、非银金融、汽车、机械设备】共计28个行业。

    第二个问题
    要知道各行业自2010年以来的营收、净利润增速表现,我们首先需要知道各行业在各个年度都有哪些成分股,然后加总该行业在该年度各成分股的总营收和净利润,就能得到整个行业在该年度的总营收和总利润了。这部分数据JQData也为我们提供了方便的接口:通过调用get_instry_stocks(instry_code=‘行业编码’, date=‘统计日期’),获取申万一级行业指定日期下的行业成分股列表,然后再调用查询财务的数据接口:get_fundamentals(query_object=‘query_object’, statDate=year)来获取各个成分股在对应年度的总营收和净利润,最后通过加总得到整个行业的总营收和总利润。这里为了避免非经常性损益的影响,我们对净利润指标最终选取的扣除非经常性损益的净利润数据。

    我们已经获取到想要的行业数据了。接下来,我们需要进一步分析,这些行业都有什么样的增长特征。

    我们发现,在28个申万一级行业中,有18个行业自2010年以来在总营收方面保持了持续稳定的增长。它们分别是:【农林牧渔,电子,食品饮料,纺织服装,轻工制造,医药生物,公用事业,交通运输,房地产,休闲服务,建筑装饰,电气设备,国防军工,计算机,传媒,通信,银行,汽车】;其他行业在该时间范围内出现了不同程度的负增长。

    那么,自2010年以来净利润保持持续增长的行业又会是哪些呢?结果是只有5个行业保持了基业长青,他们分别是医药生物,建筑装饰,电气设备,银行和汽车。(注:由于申万行业在2014年发生过一次大的调整,建筑装饰,电气设备,银行和汽车实际从2014年才开始统计。)

    从上面的分析结果可以看到,真正能够保持持续稳定增长的行业并不多,如果以扣非净利润为标准,那么只有医药生物,建筑装饰,电气设备,银行和汽车这五个行业可以称之为优质行业,实际投资中,就可以只从这几个行业中去投资。这样做的目的是,一方面,能够从行业大格局层面避免行业下行的风险,绕开一个可能出现负增长的的行业,从而降低投资的风险;另一方面,也大大缩短了我们的投资范围,让投资者能够专注于从真正好的行业去挑选公司进行投资。

「2010-2017」投资于优质行业龙头的收益表现

选好行业之后,下面进入选公司环节。我们知道,即便是一个好的行业也仍然存在表现不好的公司,那么什么是好的公司呢,本文试图从营业收入规模和利润规模和来考察以上五个基业长青的行业,从它们中去筛选公司作为投资标的。

3.1按营业收入规模构建的行业龙头投资组合

首先,我们按照营业收入规模,筛选出以上5个行业【医药生物,建筑装饰,电气设备,银行和汽车】从2010年至今的行业龙头如下表所示:

结论

通过以上行业分析和投资组合的历史回测可以看到:

  • 先选行业,再选公司,即使是从2015年股灾期间开始投资,至2018年5月1号,仍然能够获得相对理想的收益,可以说,红杉资本的赛道投资法则对于一般投资者还是比较靠谱的。

  • 在构建行业龙头投资组合时,净利润指标显著优于营业收入指标,获得的投资收益能够更大的跑赢全市场收益率

  • 市场是不断波动的,如果一个投资者从股灾期间开始投资,那么即使他买入了上述优质行业的龙头组合,在近3年也只能获得12%左右的累计收益;而如果从2016年5月3日开始投资,那么至2018年5月2日,2年时间就能获得超过50%以上的收益了。所以,在投资过程中选择时机也非常重要。

出自:JoinQuant 聚宽数据 JQData

Ⅲ python开发EA外汇交易怎么开发

1.首先,你要有一个EA,必须要有以ex4为扩展名的,如果只有mq4文件的话,就要用MetaTrader自带的编辑器MetaEditor打开,将mq4通过编译(compile)并且要不出现错误,才能在原存放mq4的文件夹下面得到一个同名的ex4文件。
2.将这个ex4文件复制到MetaTrader 4所在的文件夹下面的experts文件夹下,比如:D:Program FilesACTC MetaTrader 4experts,关闭并重新打开MetaTrader 4。
3.在“导航”下面的“智能交易系统”下面右键点击你想要使用的EA。
拓展资料:
1、 对于想要在 mt5+python 发展 ea 的交易者,最大会立即遇到的困难是,mt5 现在还没有提供 python 可以调用 mt5 backtest 的接口,也就是在 python 上开发 ea 是无法在 mt5 上作复盘测试的,只能另外再找 python 的第三方 backtest 库再多写接口来达成。 复盘不是只有验证策略的有效性,也扮演调试策略参数的重要工作,所以复盘对于开发 ea 是相当重要的环节。
2、另外在执行速度上,mt5+python ea 的速度自然是无法和纯在 mt5 开发的 ea 相比,这个是实际执行压力测试后得到的结论。因为 mt5+python ea 在调用当前价格和 K 线数据作为信号计算,和调用交易记录,需要透过 mt5 python 官方库与 mt5 建立在本地的一个加密的 socket 连接来作,读写速度自然是比不过 mt5 ea 直接从 mt5 内存读取行情数据和订单信息。虽然 python 是脚本编程语言,与其他编译型的编程语言程序比自然是不快,但是对于 ea 的应用,这样的慢是不太感受的到,可以直接感受到与相同 mt5 ea 的慢,主要是慢在与 mt5 间的大量数据传送和 io 读写差异上,尤其是连续调用行情数据比较多时,这样的速度差异就相当明显了。
3、这还是有优化方式的,可以仿 mql5 指标对于初始和后续的行情读取,采取精简量的读取方式。 既然有这些缺点,在 mt5 开发 python ea 还是在有些领域有不可替代的优点,所以 metaquotes 才会在 2020 年最终还是把 python 接口和函数库提供出来。因为现在许多衍生性交易平台都已经具备了 python api,而经过这些年,python 已经成为量化交易程序最有人气的编程语言,这也让许多交易团队在建构量化交易的环境,会优先考虑 python。 另外在人工智能的量化交易,python 的机器学习和统计数组处理的第三方库大概是最丰富的编程语言。对于交易策略里有用到 tensorflow 这类机器学习库,使用 python 来开发自动交易程序是最佳的选择。 mt5 或是 mt4 ea 受限于当时 metaquotes 自定的限制,只能作单线程运行,当同时触发事件函数如 OnTimer OnTick OnChartEvent,mt5 底层会作互斥锁限制一个线程运行。
操作环境: 浏览器 电脑端:macbookpro mos14打开goole版本 92.0.4515.131

Ⅳ 怎么学习python量化交易

下面教你八步写个量化交易策略——单股票均线策略

1 确定策略内容与框架

若昨日收盘价高出过去20日平均价今天开盘买入股票
若昨日收盘价低于过去20日平均价今天开盘卖出股票

只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?

想想人是怎么操作的,应该包括这样两个部分

既然是单股票策略,事先决定好交易哪一个股票。

每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。

对应代码也是这两个部分

definitialize(context):
用来写最开始要做什么的地方
defhandle_data(context,data):
用来写每天循环要做什么的地方

2 初始化

我们要写设置要交易的股票的代码,比如 兔宝宝(002043)

definitialize(context):
g.security='002043.XSHE'#存入兔宝宝的股票代码

3 获取收盘价与均价

首先,获取昨日股票的收盘价

#用法:变量=data[股票代码].close
last_price=data[g.security].close#取得最近日收盘价,命名为last_price

然后,获取近二十日股票收盘价的平均价

#用法:变量=data[股票代码].mavg(天数,‘close’)
#获取近二十日股票收盘价的平均价,命名为average_price
average_price=data[g.security].mavg(20,'close')

4 判断是否买卖

数据都获取完,该做买卖判断了

#如果昨日收盘价高出二十日平均价,则买入,否则卖出
iflast_price>average_price:
买入
eliflast_price<average_price:
卖出

问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。

#用法:变量=context.portfolio.cash
cash=context.portfolio.cash#取得当前的现金量,命名为cash

5 买入卖出

#用法:order_value(要买入股票股票的股票代码,要多少钱去买)
order_value(g.security,cash)#用当前所有资金买入股票
#用法:order_target(要买卖股票的股票代码,目标持仓金额)
order_target(g.security,0)#将股票仓位调整到0,即全卖出

6 策略代码写完,进行回测

把买入卖出的代码写好,策略就写完了,如下

definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔宝宝
defhandle_data(context,data):#每日循环
last_price=data[g.security].close#取得最近日收盘价
#取得过去二十天的平均价格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得当前的现金
#如果昨日收盘价高出二十日平均价,则买入,否则卖出。
iflast_price>average_price:
order_value(g.security,cash)#用当前所有资金买入股票
eliflast_price<average_price:
order_target(g.security,0)#将股票仓位调整到0,即全卖出

现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。

7 建立模拟交易,使策略和行情实时连接自动运行

策略写好,回测完成,点击回测结果界面(如上图)右上部红色模拟交易按钮,新建模拟交易如下图。 写好交易名称,设置初始资金,数据频率,此处是每天,设置好后点提交。

8 开启微信通知,接收交易信号

点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。 点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。

Ⅳ 怎么用python计算股票

作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置

t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)

plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd

a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets

第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets

总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。

Ⅵ 如何用python代码判断一段范围内股票最高点

Copyright © 1999-2020, CSDN.NET, All Rights Reserved




登录

python+聚宽 统计A股市场个股在某时间段的最高价、最低价及其时间 原创
2019-10-12 09:20:50

开拖拉机的大宝

码龄4年

关注
使用工具pycharm + 聚宽数据源,统计A股市场个股在某时间段的最高价、最低价及其时间,并打印excel表格输出

from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)

# 聚宽数据账户名和密码设置
auth('username','password')

#获取A股列表,包括代号,名称,上市退市时间等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])


# 获取股票代号
stocks = list(get_all_securities(['stock']).index)

# 获取股票名称
stocknames = pd2['display_name']

start_date = 񟭏-01-01'
end_date = 񟭒-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表头列
# 为:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)

result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("执行完毕!

Ⅶ 如何用Python和机器学习炒股赚钱

相信很多人都想过让人工智能来帮你赚钱,但到底该如何做呢?瑞士日内瓦的一位金融数据顾问 Gaëtan Rickter 近日发表文章介绍了他利用 Python 和机器学习来帮助炒股的经验,其最终成果的收益率跑赢了长期处于牛市的标准普尔 500 指数。虽然这篇文章并没有将他的方法完全彻底公开,但已公开的内容或许能给我们带来如何用人工智能炒股的启迪。

我终于跑赢了标准普尔 500 指数 10 个百分点!听起来可能不是很多,但是当我们处理的是大量流动性很高的资本时,对冲基金的利润就相当可观。更激进的做法还能得到更高的回报。

这一切都始于我阅读了 Gur Huberman 的一篇题为《Contagious Speculation and a Cure for Cancer: A Non-Event that Made Stock Prices Soar》的论文。该研究描述了一件发生在 1998 年的涉及到一家上市公司 EntreMed(当时股票代码是 ENMD)的事件:

「星期天《纽约时报》上发表的一篇关于癌症治疗新药开发潜力的文章导致 EntreMed 的股价从周五收盘时的 12.063 飙升至 85,在周一收盘时接近 52。在接下来的三周,它的收盘价都在 30 以上。这股投资热情也让其它生物科技股得到了溢价。但是,这个癌症研究方面的可能突破在至少五个月前就已经被 Nature 期刊和各种流行的报纸报道过了,其中甚至包括《泰晤士报》!因此,仅仅是热情的公众关注就能引发股价的持续上涨,即便实际上并没有出现真正的新信息。」

在研究者给出的许多有见地的观察中,其中有一个总结很突出:

「(股价)运动可能会集中于有一些共同之处的股票上,但这些共同之处不一定要是经济基础。」

我就想,能不能基于通常所用的指标之外的其它指标来划分股票。我开始在数据库里面挖掘,几周之后我发现了一个,其包含了一个分数,描述了股票和元素周期表中的元素之间的「已知和隐藏关系」的强度。

我有计算基因组学的背景,这让我想起了基因和它们的细胞信号网络之间的关系是如何地不为人所知。但是,当我们分析数据时,我们又会开始看到我们之前可能无法预测的新关系和相关性。

如果你使用机器学习,就可能在具有已知和隐藏关系的上市公司的寄生、共生和共情关系之上抢占先机,这是很有趣而且可以盈利的。最后,一个人的盈利能力似乎完全关乎他在生成这些类别的数据时想出特征标签(即概念(concept))的强大组合的能力。

我在这类模型上的下一次迭代应该会包含一个用于自动生成特征组合或独特列表的单独算法。也许会基于近乎实时的事件,这可能会影响那些具有只有配备了无监督学习算法的人类才能预测的隐藏关系的股票组。

Ⅷ 如何使用Python获取股票分时成交数据

可以使用爬虫来爬取数据,在写个处理逻辑进行数据的整理。你可以详细说明下你的需求,要爬取的网站等等。
希望我的回答对你有帮助