赚404收益率47%??
不过既然操作的那么烂,我觉得在这里还是有必要分析一下自己亏钱的原因。
因为最近是在学Python,所以我就用Python来寻找自己会亏钱的原因吧。
我的灵感来自《Python for finance》这本书的教程,原书电子版我在微信阅读也收藏了,只是一直不敢打开,因为太可怕了。开篇作者就跟你讲蒙地卡洛模拟评价欧式期权,这叫我这个初中毕业的怎么看的下去啊
!据说书的作者是一个私募的基金经理,写书就是为了炫技,而且国内很多教学都是炒他的,但是国内教学做的实在太烂了,基本把炫技的一些复杂的内容全部砍掉了(作者用Python解各种复杂的方程,甚至还有人工智能方面,实在太可怕了
),只保留了一些技术战法的部分,也没办法国内普遍学历不是很高,要解释一些公式的话的确是一件费力不讨好的事情。
这是一个均线策略的教学,首先需要准备教学需要用到的数据文件,教学里说书里已经准备好了数据文件,去下载就好了。可是我在网上到处找也找不到啊,然后我就想会不会微信阅读的那个电子书里面会有文件的连接呢?结果我发现微信阅读的那本书居然是盗版的,估计是一个业务员传上去的,原教学文件的链接都被改了,被改成了那个业务员自己的网站,那个网站里自然什么东西都是要钱的,而且我也没有找到我想到的东西。
好在我看到教学里面的数据只有股票的历史价格而已,所以这个好办,我用的是苹果系统,直接用numbers表格里的stockh函数获取股票的历史价格就好了。至于需要获取价格对应的日期我就用workday(工作日期)函数制作出来就好了。最后导出为csv就可以实现跟教学里那样放在Python里用了。
我获取的数据长成下面这个样子。
然后就是一通瞎操作,画出了苹果这只股票的走势图以及均线。不得不说苹果这几年的走势很猛啊。
然后就是写出买卖点的代码。
data['Position']=np.where(data['SMA1']>data['SMA2'],1,-1)
where这个函数其实就是Excel里面的IF,如果条件为真就返回“1”,为假则返回为“-1”。1和-1是用来计算模拟买入后的收益率的,假设第一天买入涨2%,那么2%乘以1,还是2%,然后把这些乘的结果相加就计算出来买入之后的涨幅了。不过教学里要用的是连续时间的涨幅,而要计算连续时间的涨幅还要取底数什么的(不得不说作者的确是喜欢炫技啊),我数学太差,也没有时间,所以我就相信作者写的吧。
然后画出买卖点之后就是这样子的。因为短期均线是42天线(季线,财报一季度公布一次),长期均线是252天线,所以买卖点比较少,看起来简洁明了。
为了看清买入之后的收益变化和股价之间的关系,还需要画一条线。这样就能知道在每笔买卖决策之后的收益变化与股价的对比情况了。
因为国外是可以做空的,所以我推测买卖点代码返回为“-1”的情况就是为了计算做空的收益,因为下跌的时候涨幅是负的,所以负负得正(有球友建议我找一个同样也是负债的女朋友,因为负负得正,我是不是要夸他聪明呢?)
因为我取的时间和作者的不太一样,作者取的时间大概是到2018年末结束,所以最后跑出来挺漂亮,然后我这个就尴尬了。看起来是由于最后的震荡走势造成的,均线死叉的时候把多头赶紧换成空头,结果又涨回去了,所以就是两边打脸的情况。
最后得出如果买入持有的收益是3.4倍,而策略的收益是2.9倍,居然还不如买入持有来的香。
因为作者是外国人,所以他展示的是外国股票的收益情况,看到这个结果后我就迫不及待地想拿国内的股票做实验了,但是国内的股票是不可以做空的,怎么办呢?好像所有的教程都没有说在国内只能做多的情况下要怎么做,就连国内的野鸡教程也没有说。不过这个并难不倒我,我把“where”的返回值“-1”改成“0”不就可以了嘛,因为任何数乘以0,结果还是0。
我拿上海机场开刀试了一下,结果依然是大写的尴尬。
但我也是一个不见黄河不落泪的人(不要然2018年场外杠杆配资也不会亏那么多钱了),我想不能啊,明明国内那些野鸡教程的老师个个随便拿数据一跑就是超过买入持有,怎么到我这儿就不灵了呢?一定是打开的方式不对。
所以这时我就想到了以前学习的那些战法,廖英强(著名财经主持人,现已被封杀)的战法,均线多头排列,当股价站上20线买入,否则卖出;“天下式”老师(之前雪球上一个被封号的老师,我的炒股技术受他影响较大)的战法,当13日均线与55日均线金叉(斐波那契数列,很多“老师”都在用),并且当股价站上13日线立刻买入,跌破13日线马上卖出。其实他们的战法都是一样的,都是当短期均线与长期均线金叉的时候,并且股价大于短期均线的时候买入。这看起来是一个优中选优的结果,本身当均线金叉的时候看起来趋势就已经是反转了,如果再选择股价站上短期均线的时候买入,那不是精准把握住了买卖点,赚翻了嘛!
“天下式”老师他说他凭借这个简单的均线技术,结合成交量(缩量买入,放量卖出),他已经可以在市场上做到立于不败之地,用赚来的钱买了3套房子,外加几辆豪车,同时账户仍然能有N位的数的钱用来做交易。他在一次直播的时候还分享了自己的几条战胜市场的“交易铁律”,其中最重要的一条就是当股票出现买点(站上13日线)必须买进,跌破的时候无论是否亏钱,都必须卖出。看来想要在市场上赚钱其实很容易,只要克服情绪,执行铁一样的纪律,就可以在这个市场上赚钱,而且是赚大钱。
那么真的是这样的吗?
所以我就在表达式里多加了一个条件
data['Position'] = np.where((data['SMA1'] > data['SMA2']) & (data['600009.SS'] > data['SMA1']), 1, 0)
当13日均线与55日均线金叉,同时股价大于13日均线,所以买卖点画出来的图就是下面这个样子,这……这TMD是怎么玩意啊,这密密麻麻的应该是翻了好几倍吧。
只不过把收益曲线画出来的时候却是超级的尴尬。正可谓一顿操作猛如虎,回头一看账户亏成狗啊
买入持有收益为5.7倍,而策略收益只有1.69倍,也就是说从2012年执行这个“铁一样的纪律”,克服个人的情绪,然后你的收益只有可怜的69%……这个简直不要太尴尬啊,要是换成阿胶那到头来不是还要亏成翔?
而我最近发现stockh函数获取的历史价格其实还是除权之后的价格,也就是说程序计算的买入持有收益并没有考虑分红送股等情况,这要是加上分红送股的话更是双重的暴击伤害啊😭
还有13日线是什么概念呢?很多情况突破13线的时候都是突然上涨,你根本没有机会买入,还要考虑涨停的买不进的情况。所以根据每个人手速的不同,以及A股的交易规则,根据策略瞎搞那么多年最后其实很可能是亏钱的!没错,就是眼看着这个股票翻了好几倍,而你的账户却在亏钱!
但是我还是不信邪,反正Python的计算速度那么快,又可以对数据进行循环计算,那么跑多几个均线组合试试。
如图所示,创建了686个均线组合
但是结果还是惨不忍睹啊,6百多种组合,最高的收益居然连买入持有一半的收益都不到!甚至排在最后还有亏钱的情况,这实在是太尴尬了
。
不过把买卖点弄简单一些,就是最简单的金叉买入死叉卖出,只不过这样还是跑不过买入持有的收益!
经过一遍遍的实验我终于知道自己一直以来为什么会亏钱的原因了,每次我越是想要把战法弄的精准,就越是会亏钱,原来我被平均了啊
仿佛被电流击中一样,我好像忽然明白了什么。脑子里灵光一现,这个想法或许可以让我在2021年赚到更多的钱!为了抓住这个转瞬即逝的灵感,最近我上班的时候满脑子想的都是代码和公式,看来我还真是一个赌徒啊,对研究胜率总是异常的着迷。这有点像《宽客》里的爱德华.索普沉迷研究轮盘赌的概率,在老丈人到他家里做客的时候发现他居然还在地上研究轮盘的滚珠会落在哪一个点上。
下篇继续
赚404收益率47%??
老哥你收益率48%啊,非常牛了,怎么会原来要亏4千呢有四倍融资么?那本书写得很潦草,就是那哥们写来蹭热点卖书的,还是别看了
很有意思
哦靠,老哥在富士康上班还有时间学习python啊
“投资艺术具有一种并不广为人知的性质。普通投资者付出很小的努力和具备很小的能力,就可以取得一种可靠(即便并不壮观)的成果;但是,要想提高这一可轻易获得的成果,却需要付出大量的努力和非同小可的智慧”——《聪明的投资者》(本杰明.格雷厄姆)。
对于优质股来说,买入并持有无疑是最好的策略。但很多人对基本面研究不深,他也就很难坚定持有,只能退而求其次,采用趋势投机策略。
期待下篇
有找下降趋势的算算吗?能不能减少回撤。应该要平衡两种趋势的策略比较好。
你最后说的几句,像我心里想的
好好看看公司的财务报表,多分析分析公司的基本面比啥这些技术流要通俗易懂