尝试在手机上实现量化投资
大约一年前,博主“自主设计”了一款股票自动交易软件(原文),在去年8月股市大跌的情况下通过买卖股票居然实现了100%的胜率,创造了跑赢上证指数11%的收益率。所谓的自动交易软件,其核心是交易策略,虽说战绩不错,但当时的策略真不怎么样,战绩好可能只是比较幸运而已,好在博主知道见好就收,去年10月之后那个软件就被废弃了。除了策略不算好之外,当时的软件只能在某个特定的电脑上使用,对运行环境要求比较苛刻,性能差了不行、仅支持Win7操作系统、甚至屏幕分辨率都不能随意修改。
后来一直思考如何改进,曾经的交易软件可能唯一的可取之处只有量化交易这一个思想了,除此之外它真的一无是处。博主的期望是能寻找或创造优秀的策略,做成可以跨平台的自动交易软件。
期望能跨平台
跨平台?并没有那么高的需求,只要能同时在电脑和手机上使用就可以了,甚至在手机上都不需要进行交易操作,仅给出交易建议就好。
半夜躺床上捣鼓手机,琢磨怎么能快速做一个手机电脑都能运行的软件,无意间发现python程序是可以在安卓手机上运行的,在电脑上python更没问题了,就它了。
量化策略只能自己想
策略是自动交易程序的核心,或者说是一种盈利模式,如果在这世界上存在一种很高效的盈利策略那它一定不会被广泛传播。从网上找一个优秀的策略?异想天开了,如果网上能找到这种好东西哪还有人去上班,都回家躺着赚钱好了。
博主的思路是叠加成功率,以概率优势实现盈利。那么问题来了,策略1成功率60%,策略2的成功率也是60%,现要求每一笔交易必须同时满足策略1和策略2,那成功率是84%吗?其实未必,也许成功率依然是60%。一位股神曾说,炒股(做投资)有三个层次,现象、数学和哲学。看来博主要解决的概率叠加问题从数学层面是搞不定了。哲学?什么鬼东西,其实只是说到方法论的问题,扯不上哲学吧,不了解的东西不轻易否定,也许博主的理解达不到那个层次。
策略有了吗?一直都有也一直都没有。博主使用了n种策略,有自己创造的,也有花钱买来的。其中之一用作为主线,其他的用来给主线加分。说一直没有是因为博主还没想清楚这n种策略之间的内在联系,也就是说现在的版本依然是个测试版本。
实现的过程有点曲折,几次想放弃
在电脑上还好,手机上运行的python程序有点头疼,很多现成的东西不能用,比如行情的刷新和一些指标的计算
MACD可能是所有接触过股市的投资者都熟悉到不能再熟悉的技术指标,如何计算它呢?从网上搜一下python计算macd,几乎所有文章好像都在互相抄袭一样,源码好像只有两个版本,需要引入一个叫pandas的模块,博主试了一下在电脑上没有任何问题,手机上却无法运行。在手机上执行pip install pandas,下载了好半天后安装报错。不仅仅是pandas,获取行情需要的一系列模块大多数都在手机上失败了,包括json的解析博主都是自己慢慢抠出来的,这条路走不通了。
不能引入模块只好自己去做,面对那么多技术指标,博主只好一个一个的去研究他们都是怎么算出来的。还是以MACD为例,它的算法真是很烦,今天的数据和昨天是有关系的,昨天的又和前天的有关系,如果只有今天的数据是不可能算出MACD的。那昨天的怎么算?要有前天的数据,前天的怎么算?要有大前天的数据,往前推到哪天是个头,难道要从股市刚刚成立的那天开始算起吗,期货从哪天开始算起呢,这真是疯了。后来博主想了个办法,根据行情软件上的数据一天一天往前算,看看到底哪天是个头。后来发现这个问题真的不重要,因为越往前的权重越低,只要往前推得时间足够长,前面那些数据都可以忽略不计了。于是得到结论,只要能获得最近几十个周期的收盘价足矣,太多周期以前的有没有都无所谓。在一个角落中发现一段C#程序:
博主给他来了个照葫芦画瓢,python版本有了:
算了一下大盘的MACD,和行情软件上的数值作对比,证实这段代码可用:
将常用代码添加进去,加一个循环,它就可以统统计算一遍,指数、期货、ETF、分级基金、甚至具体的每一支股票都可以了:
安卓上运行一样稳,只是性能上比电脑差了那么一丢丢:
MACD是众多“麻烦”中的一个,获取行情、其他指标的计算、策略的逻辑判断、策略的组合叠加等等又消耗了博主n多时间。好事多磨嘛,一点一点做起来,前前后后折腾了差不多有接近1年时间,在这个过程中博主对绝大多数技术指标的计算方法相当了解了。
这策略到底是个什么水平
这个问题是博主最最关心的,如果说它很差吧那是不可能的,怎么说也是付出了很多心血去研究,光是看相关专业书籍也有十几本了吧,也花了钱去买已经被证实的可用的策略和原理分析。是骡子是马拉出来溜溜,博主准备了一个期货账户做测试,该策略执行下来可以实现盈利:
从8月底开始测试,在这三个月多一点的时间里,投资范围仅限每手保证金不超过5千元的国内期货。仅从数字上来看策略好像还可以,不过时间太短还不能说明什么问题。不仅仅测试过期货市场,证券市场也有测试,不过这两个月触发策略的机会太少了,寥寥几笔成交看不出什么问题来:
在这两个月中博主每天晚上都会抽出不少时间去跟踪分析每一笔成交是如何执行的,策略应如何优化等问题。在不断的优化中,策略越来越好了?其实博主也不知道是越来越好还是越来越凌乱了,不过和两个月前的版本相比确实多了很多内容。
稀里糊涂的用起来了
实盘交易已经展开一段时间,博主也用历史数据进行过测算,即使赶上最差的年份,要想做到亏损也是难上加难啊-_-
把这东西变成股市期市提款机是博主的终极目标,能不能实现?还是已经实现了?让时间去说吧
没文化的我只能大喊一句:卧槽 牛批!
其实没什么牛的,很一般
自动期货,得盯着,小心被平仓。
软件盯盘,比人反应还快呢
哈哈这个厉害
感谢大神鼓励
太优秀的。表示完全看不懂
哈哈,可能是因为写的比较乱,难以理解
不是文章写得不好。是我不懂股票……
自然之法,无关股票,哈哈
能自动玩期货,这东西牛逼了,大腿伸过来我要抱抱。
机构里面可能有更高级的,我这个算小儿科啦
感觉很深奥,看你近半年的收益我看行。
其实那图时间跨度只有两个月多一点
厉害了,躺赚……
但愿有一天能实现吧
这个强悍啊,建议认真研究和改进,以后股市就是提款机了
必须认真研究,说不定提前实现共产主义了呢
好想求源码啊,当然也不可能给我。
我去年也折腾过这方面的东西,但研究很初级。
我倒觉得没有初级高级之分,简单的未必效果不好,向大佬致敬