配对股票交易策略python
㈠ 如何用python对一系列股票的macd进行判断
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIF,9);
MACD:=(DIF-DEA)*2;
忽略以上公式。
根据思路编写公式,修改公式。盘中预警,条件选股。公式解密,去除时间限制。鼠标点击下方
我
的
名
字
或(图
标)上,进入
可
看到
Q,订
制
公式
㈡ python量化哪个平台可以回测模拟实盘还不要钱
Python量化投资框架:回测+模拟+实盘
Python量化投资 模拟交易 平台 1. 股票量化投资框架体系 1.1 回测 实盘交易前,必须对量化交易策略进行回测和模拟,以确定策略是否有效,并进行改进和优化。作为一般人而言,你能想到的,一般都有人做过了。回测框架也如此。当前小白看到的主要有如下五个回测框架: Zipline :事件驱动框架,国外很流行。缺陷是不适合国内市场。 PyAlgoTrade : 事件驱动框架,最新更新日期为16年8月17号。支持国内市场,应用python 2.7开发,最大的bug在于不支持3.5的版本,以及不支持强大的pandas。 pybacktest :以处理向量数据的方式进行回测,最新更新日期为2个月前,更新不稳定。 TradingWithPython:基于pybacktest,进行重构。参考资料较少。 ultra-finance:在github的项目两年前就停止更新了,最新的项目在谷歌平台,无奈打不开网址,感兴趣的话,请自行查看吧。 RQAlpha:事件驱动框架,适合A股市场,自带日线数据。是米筐的回测开源框架,相对而言,个人更喜欢这个平台。 2 模拟 模拟交易,同样是实盘交易前的重要一步。以防止类似于当前某券商的事件,半小时之内亏损上亿,对整个股市都产生了恶劣影响。模拟交易,重点考虑的是程序的交易逻辑是否可靠无误,数据传输的各种情况是否都考虑到。 当下,个人看到的,喜欢用的开源平台是雪球模拟交易,其次是wind提供的模拟交易接口。像优矿、米筐和聚宽提供的,由于只能在线上平台测试,不甚自由,并无太多感觉。 雪球模拟交易:在后续实盘交易模块,再进行重点介绍,主要应用的是一个开源的easytrader系列。 Wind模拟交易:若没有机构版的话,可以考虑应用学生免费版。具体模拟交易接口可参看如下链接:http://www.dajiangzhang.com/document 3 实盘 实盘,无疑是我们的终极目标。股票程序化交易,已经被限制。但对于万能的我们而言,总有解决的办法。当下最多的是破解券商网页版的交易接口,或者说应用爬虫爬去操作。对我而言,比较倾向于食灯鬼的easytrader系列的开源平台。对于机构用户而言,由于资金量较大,出于安全性和可靠性的考虑,并不建议应用。 easytrader系列当前主要有三个组成部分: easytrader:提供券商华泰/佣金宝/银河/广发/雪球的基金、股票自动程序化交易,量化交易组件 easyquotation : 实时获取新浪 / Leverfun 的免费股票以及 level2 十档行情 / 集思路的分级基金行情 easyhistory : 用于获取维护股票的历史数据 easyquant : 股票量化框架,支持行情获取以及交易 2. 期货量化投资框架体系 一直待在私募或者券商,做的是股票相关的内容,对期货这块不甚熟悉。就根据自己所了解的,简单总结一下。 2.1 回测 回测,貌似并没有非常流行的开源框架。可能的原因有二:期货相对股票而言,门槛较高,更多是机构交易,开源较少; 去年至今对期货监管控制比较严,至今未放开,只能做些CTA的策略,另许多人兴致泱泱吧。 就个人理解而言,可能wind的是一个相对合适的选择。 2.2 模拟 + 实盘 vn.py是国内最为流行的一个开源平台。起源于国内私募的自主交易系统,2015年初启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经一步步成长为一套全面的交易程序开发框架。如官网所说,该框架侧重的是交易模块,回测模块并未支持。 能力有限,如果对相关框架感兴趣的话,就详看相关的链接吧。个人期望的是以RQAlpha为主搭建回测框架,以雪球或wind为主搭建模拟框架,用easy系列进行交易。
㈢ 选股策略回测用 Matlab 好还是用 Python 好
都是工具,也都可以开发选股策略的回测,推荐Python.理由:Python免费且开源Python编程语言简洁优美Python有众多的量化包,包括获取数据、处理数据、回测、风险分析。目前国外、国内很多平台和项目都是使用PythonPython开发策略,简洁高效,这里举几个例子:1.[量化学堂-策略开发]金叉死叉策略2.[量化学堂-策略开发]海龟策略3.[量化学堂-策略开发]浅谈小市值策略4.[量化学堂-策略开发]多头排列回踩买入策略5.[量化学堂-策略开发]借助talib使用技术分析指标来炒股6.[量化学堂-策略开发]大师系列之价值投资法7.[量化学堂-策略开发]事件驱动策略(基于业绩快报)8.[量化学堂-策略开发]基于协整的配对交易9.[量化学堂-策略开发]使用cvxopt包实现马科维茨投资组合优化:以一个股票策略为例这些策略涵盖了股票量化主要的策略类型,但是使用Python语言,每个策略代码都不多。
㈣ 如何用python实现Markowitz投资组合优化
m投资组合模型的一个很有力的替代是Index model,或者我们说的single factor model,因为markowitz是需要计算全部股票的协方差和方差的,如果证券的数量很多,计算量会非常大(这些在investment的参考书里面有),我下面就把原话打给你 first,the model requires a huge number of estimates to fill the covariance matrix.second ,the model does not provide any guideline to the forecasting to the security risk premiums that are essential to construct the efficient frontier of risky assets.第一个是硬伤,单单计算NYSE的股票就要4.5百万的估计量,而同等条件下index model才需要9002个估计量,这就是为什么markowitz模型很多人不愿意用的愿意,而优点也很直接,如果你的估算值是准确的,那么m模型的结果比其他都准确
㈤ 怎么学习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 api 函数写股票策略
利用context.now可以获得当前策略运行的时间,返回的是datetime.datetime格式。datetime.datetime格式可以很方便的进行日期、时间操作。
比如timedelta可以很方便的在日期上做日、小时、分钟、秒的运算。例如,需要策略运行时间1天前的时间,可以这样写:context.now+datetime.timedelta(days=-1),返回的便是一天前的时间。
㈦ 怎样用 Python 写一个股票自动买卖的程序
方法一
前期的数据抓取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。
方法二
是wind这样的软件也有直接的接口,支持部分券商,但也贵,几万一年是要的。
方法三
鼠标键盘模拟法,很复杂的,就是模拟键盘鼠标去操作一些软件,比如券商版交易软件和大智慧之类的。
方法四
就是找到这些软件的关于交易指令的底层代码并更改,不过T+1的规则下,预测准确率的重要性高于交易的及时性,花功夫做数据分析就好,交易就人工完成吧
㈧ 怎样用 Python 写一个股票自动交易的程序
概率炒股法:
下面方法买涨不买跌,同时避免被套,缺点,手续费比较高,但完全可以吃完整个牛市,熊市不会被套。
用python获取股票价格,如tushare,如果发现股票当天涨幅在大盘之上(2点30到2点50判断),买入持有一天,下跌当天就别买,你可以用概率论方法,根据资金同时持有5支,10支或20支,这样不怕停盘影响,理论上可以跑赢大盘。好处:避免人为冲动,缺点手续费高
还有一种是操作etf,如大盘50etf,etf300,中小板etf,创业板etf,当天2.30分判断那个etf上涨就买入那支,买入涨幅最大的,不上涨什么都不买,持有一天,第二天上午判断一下,如果下跌超过2%卖掉。好处:不会踩地雷,缺点:涨随大盘,我比较推荐这个方法,外围的风险比较小。
具体的python程序我有,比上面复杂,有止赢止损位,资金管理,监视管理,我用在实盘当中,自动化下单也已解决。
我觉得程序的成败不在一日之功,在于长期稳定赚钱,如运行十年,过多的数据分析也无意义,因为预测未来永远是一个概率问题,不是百分之百确定的,如果你的程序能在长时间多次数上战胜市场,你的程序就能趋向大数定理。
否则一时的回撤会让你停止程序自动执行,而无法趋向大数定理中的稳定概率。
如果有一个程序能百分之99确定,那么基本上肯定是分析了内幕交易数据,和徐x一样,每次重仓一支股,这种手法应该是得到了内幕,也就不需要什么程序来交易了。
巴菲特的交易模式实质上也是内幕交易的一种,因为他靠的是外在分析,实地考查,估计这是寻找内幕的手段,现在做大了,这种效果就不灵了,收益也下降了,美国经济也下滑了,所以巴菲特的未来是必定是暗淡的,因为内幕交易的池子有限,资金量大了不好操作。
想想如果巴菲特生在苏联,印度,日本等等其他国家,他可能在街头要饭,美国二战后经济环境加倾向内幕造就了他,而不是炒股技术有多神。所以巴菲特不屑于程序化交易。
巴菲特及不少美国式的股神实际上是幸存者偏差造成的,你想想苏联的股神在那里?为什么一个都没有?(“沉默的数据”、“死人不会说话”)
我觉得未来真正能成股神必定是程序,不是人,因为一个好的程序策略可以用一辈子,实现长期稳定增长,当然前提是社会经济环境稳定,不会出现类似苏联的动乱,也不会出现日本式的恶性通胀(对货币m2有点担心)。
太多的股票让股民每天沉浸在选股的游戏中,选股造就了券商的行情软件,实际上很多数据都是没有用的,所有的关键是按操作方法永远执行下去才能趋向稳定概率,否则今天换一种明天换一种方法,今天按kdj,明天按macd,后天按boll,大后天按ddx,大大后天按自编指标,多条件选股,最后钱都交手续费或止损不及时被套牢了。这时券商收佣金的目的也就达到了,每年券商收的佣金比股市分红要高。不管行情如何,只要多请几个股评员,总有方向说对的,玩个概率游戏让大家频繁交易,券商的收入只会增不会降。所以千万别信股评,玩的是概率游戏,如同预测硬币的正反,请十个股评师必定有个能预测三次正确的神股评。你信这个神股评,后面可能是三次都不准,呵呵。所以券商和行情软件总会在收盘或午休时弹出各种消息或评价,说实在的这种东西没有一分钱的价值。可能早就写好了上涨的说法是模块a,下跌的说法是模板b,平市的说法是模板c,只是填上当天数据即可,都是八股文,都是马后炮,一样的事件上午说成是上涨理由,下午说成是下跌理由。
程序的策略经过测试后的关键在于稳定执行,长期稳定执行,长期长期稳定稳定执行执行,重要的事说三遍。
人性无法战胜的弱点是执行力,小学生都懂的天天向上,每日进步,世间有几人能做到?而稳定几十年执行更是难上加难,如同背英语单词一样,理论上一天背一百个,一百天就可以一万词,但十年,二十年过去了,你可能还是三千词以下。
用程序的目的就是百分之百执行到位,没有折扣,真正战胜人性的弱点,和t+1没有关系。
另外通过一定方法降低手续费也可以使你的资金活得更久,如把上面的日模型改为周或月模型。
㈨ Python和金融分析的关系量化交易内容深度
Python是一种脚本语言,就是程序员用的代码语言。
Python的功能不可以说不大,在金融数据分析里面有着很方便的应用。
但是需要你专门去学Python,不然看到一堆代码只会懵逼。
㈩ 怎样用 Python 写一个股票自动交易的程序
方法一
前期的数据抓取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。
方法二
是wind这样的软件也有直接的接口,支持部分券商,但也贵,几万一年是要的。
方法三
鼠标键盘模拟法,很复杂的,就是模拟键盘鼠标去操作一些软件,比如券商版交易软件和大智慧之类的。
方法四
就是找到这些软件的关于交易指令的底层代码并更改,不过T+1的规则下,预测准确率的重要性高于交易的及时性,花功夫做数据分析就好,交易就人工完成吧