自己做量化交易软件(32)小白量化实战6–仿通达信公式选股
炒股也要有师傅。有一种低成本的师傅就是“书籍”了,这是市场中的投资名家经过多年实践总结出来的真知灼见,它可以使股民的投资水平陡然上升。事实上,很多股民在实际的交易过程中常常出现数千或数万元的盈亏,而一本书的价格只相当于其中的百分之一、千分之一甚至万分之一。他们在面临千元、万元的斩仓时往往毫不犹豫,可却吝啬地不愿支出一本买书的钱。这就像那些宁愿白白等候和空手而归,也不愿看钓鱼的书和请钓鱼师傅指导的人一样,他们当然不可能享受到在股市中“钓鱼”的乐趣了。
笔者的一位读者,买了笔者出版的《看盘秘籍》(https://item.jd.com/10469068.html),当看完其中的一篇文章以后,他感到十分难过。原来,他花了整整十多年的业余时间研究股市中的各种经典投资策略,早已包含在那本书中了,而且书中的论述更加全面和具体,而那本书的定价不过才48元!如果从时间和价值的角度来对比,他十多年的业余时间只换回了节省48元的价值。后来他经过一段时间的“拜师学艺”之后,他的投资水平果然有了明显提高,投资收益也逐日见涨。
在股市中,许多人宁愿选择做一个失败者,也不愿意选择依靠他人的帮助或专家的指导。尽管许多投资者承认炒股是需要有技巧的,但是却无法接受一种股市投资的“师傅”-书籍。
炒股没有一定的知识和经验,根本不会无师自通。作者历近十多年的在股市拜师学艺,辛苦研究,呕心沥血,掏出心肝,奉献给读者全面完善的股市投资技术。(笔者网名:独狼荷蒲,学员写的网络小说:荷蒲笑傲股林http://blog.sina.com.cn/s/articlelist_1341131230_0_1.html)
《看盘秘籍》不仅教炒股知识、炒股方法、炒股技术、炒股理念,还从宏观和微观介绍了股票价格波动的原理,并以此开发出荷蒲指标、独狼指标、貔貅指标系列。最后教读者如何编写大智慧和通达信软件指标公式,以及用c++来开发和加密指标的方法。目前一些股票软件的功能和工具是作者在1999年首次用C++语言,在分析家软件上实现的。例如指标股评、信息雷达、预测成交量、横向统计等等,都是作者首先用C++语言开发的指标公式实现的这些功能。这些技术,原先有公司出价几十万来买,我都没舍得卖,现在书中白给这些技术。书中这些知识如同教大家如何做渔网,什么样的渔网能捕到什么样的鱼?是不是授之以渔?
作者还担心读者《看盘秘籍》水平有限,难以消化应用,又给读者赠送“貔貅指标系列”(貔貅指标介绍https://mp.weixin.qq.com/s/c9J-d30haP5nonU3bjiwSg),以前这些指标用C++语言加密的,只给自己和朋友使用,市面破解的或仿貔貅指标都要卖数千元。现在也给读者免费使用,(购买正版书的读者请加入《看盘秘籍》QQ群,群文件下载。再版没有送光盘,需要在读者群下载光盘相关资料)这是不是又送给投资者以鱼。
貔貅指标还有用吗?请看csdn博客(https://blog.csdn.net/hepu8/article/details/111996255)。貔貅主力进出指标能让你避免2003年世纪中天和2020年济民制药的10多个连续跌停。
作者的软件和工具需要购买作者的正版书籍,加入读者群免费下载,并有作者指导。但是还是有些读者需要让作者帮写一些软件示例,又不想买书,我都感到无语。你给我200元红包,让我写个代码,还要等我有空。何况不想花几十元买作者的正版书。HP_开发都py文件,作者开发了小白量化第二代框架,这个基本上是Python版的通达信软件了,读者群下载全部源代码。无论你想做量化软件,还是做Tkinter界面,小白量化第二代框架算是完整示例了,何况数上还有大量的量化和Tkinter学习示例源代码,这些都可以在读者群下载,有了书,复制/粘贴/修改来写程序,难吗?
作者利用<零基础搭建量化投资系统――以Python为工具>(京东购买网址
https://item.jd.com/12597913.html)书中提供的模块,花费2天组合开发出了“牛大回测软件”,获得了1万元红包。这些技术才卖99元,网上还打五折、六折。
作者编写过围棋软件(百度:荷蒲围棋),以传统思路发展硬件和软件在100年内,电脑无法战胜人类,因为2的361次方递归计算是无法实现得的,电脑国际象棋依赖小型机的海量存储和巨大计算潜能,才战胜了人类优秀棋手。这些算法在围棋上不可复制。
2016年人工智能围棋软件战胜人类专业棋手,让我看到了一道曙光,电脑人工智能能在围棋上战胜人类棋手,那么一定可以利用人工智能软件,编写出全自动交易的赚钱的“摇钱树”。
我从2017年开始学习Python,当时Python系统都搭建不起来,在网上找人悬赏200元红包,帮远程安装Python金融量化环境,一个网友愿意免费帮忙,大家清楚就算一个电脑熟练操作者,也需要下载各方面模块,及配置都需要一天,这个朋友尝试安装下载了几个库,由于网络慢,机器慢,看1,2天都装不好Python环境,只好放弃。
我后来路过广州图书城,看到了何海群先生《零起点Python大数据与量化交易》,当即99元购买这本书,加入了他的读者群,下载解包了他的zwPython,一下子安装好了量化回测环境,很快学会了Python量化。后来又对zwPython库做了补充,打包为Py37傻瓜安装包供大家下载。
提高水平的最重要原因,多买正版书,与作者进一步交流,获得技术支持。
通达信指标上能给指标标注文字,当时我还不会这些技术,我就购买了袁霄先生的《Python股票量化交易从入门到实践书籍》,以及花钱参加了他的量化培训网课。最大的收获就是在仿通达信指标上标准箭头和文字。实现的技术我也公开给大家了(见csdn博客https://blog.csdn.net/hepu8/article/details/112060450)。
作者的读者群中不乏有很多高手,这些高手也愿意分享自己的投资技术和理念,读者雷霆就分享了自己选股策略。
下面用这个策略先写出“雷霆选股”通达信公式,最后再用小白量化实现Python选股。
读者雷霆给的技术思路如下:
我写出的通达信公式如下:
MA50:=MA(CLOSE,50);
MA150:=MA(CLOSE,150);
MA200:=MA(CLOSE,200);
A1:=IF(CLOSE>MA150,1,0)*IF(CLOSE>MA200,1,0);
A2:=IF(MA50>MA150,1,0)*IF(MA50>MA200,1,0);
A3:=IF(MA150>MA200,1,0);
A4:=IF(COUNT(MA200>REF(MA200,1),20)>=18,1,0);
A5:=IF(CLOSE>LLV(LOW,52*5)*1.25,1,0);
A6:=IF(CLOSE<HHV(HIGH,52*5)*0.75,1,0);
A7:=IF(CLOSE>MA50,1,0);
AX:IF((A1+A2+A3+A4+A5+A6+A7)>=7,1,0);
如果写到技术指标项目中,显示图形如下:
我们现在再用小白量化仿通达信公式功能实现Python选股功能。
#小白量化选股 :雷霆指标选股
#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#通通python量化群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析
#日期:2021-01-09
import time
import HP_tdx as htdx
from HP_formula import *
global CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V
hq=htdx.TdxInit(ip='183.60.224.178',port=7709) ##初始化通达信
#codes=htdx.getblock2('沪深300') #返回板块中的股票
codes=htdx.getblock2('特斯拉') #返回板块中的股票
print('小白量化选股: 雷霆指标选股')
print('输出股票池或板块中股票')
print(codes)
#均线选股函数
def function(cd):
global CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V
df3=htdx.get_security_bars(nCategory=4,nMarket = 0,code=cd,\
nStart=0, nCount=500) #获取指定范围的证券K线
##数据规格化
df3.dropna(inplace=True)
#小白数据规格化
mydf=df3.copy()
CLOSE=mydf['close']
LOW=mydf['low']
HIGH=mydf['high']
OPEN=mydf['open']
VOL=mydf['volume']
C=mydf['close']
L=mydf['low']
H=mydf['high']
O=mydf['open']
V=mydf['volume']
#仿通达信,大智慧公式计算和选股
MA50=MA(CLOSE,50);
MA150=MA(CLOSE,150);
MA200=MA(CLOSE,200);
A1=IF(CLOSE>MA150,1,0)*IF(CLOSE>MA200,1,0);
A2=IF(MA50>MA150,1,0)*IF(MA50>MA200,1,0);
A3=IF(MA150>MA200,1,0);
A4=IF(COUNT(MA200>REF(MA200,1),20)>=18,1,0);
A5=IF(CLOSE>LLV(LOW,52*5)*1.25,1,0);
A6=IF(CLOSE<HHV(HIGH,52*5)*0.75,1,0);
A7=IF(CLOSE>MA50,1,0);
AX=A1+A2+A3+A4+A5+A6+A7;
B2=list(AX)
if B2[len(B2)-1]>=7:
return 1
else:
return 0
#下面开始进行板块或股票池选股
myblock=[] #选股池
start = time.time()
for code in codes:
buy=function(code) #计算股票选股函数
if buy==1:
myblock.append(code)
print('输出选出的股票池')
print(myblock)
end=time.time()
print('时间:',round(start,2),round(end,2),round(end-start,2),'秒')
程序运行结果如下:
小白量化选股: 雷霆指标选股
输出选出的股票池
['002245']
时间: 1610695970.52 1610695981.59 11.06 秒
我们用通达信软件验证一下结果是否正确。
上图是选股结果的股票,说明Python选股结果是正确,指标值为1,说明出现信号。
我们本片提供了一个读者的技术分析策略,是如何转换为通达信公式,最后再写出Python选股程序的。
这个策略是有有效,仁者见仁,智者见智。
后面文章开始介绍Python量化回测的实现,以及全自动交易的程序。
请持续关注我的博客,我的进步,就是你的进步!