...
<p>咱们好,我是林路。小伙伴们期盼已久的量化买卖教程,今日它来了!</p><p>有不少小伙伴,一向很关怀我量化买卖的实战状况,常常会被问到:5 万元,现在赚了多少?</p><p>这儿一致回复下,现在浮盈 6%。</p><p>远低于我的预期,这跟大盘的走弱脱不开联系。9 月开端即巅峰,一路惨遭滑铁卢,大盘再也没回到过 3700 点,事实有些惨白。</p><p></p><p>不过越是这种冷清的时分,越是充能学习的时间。</p><p>我最成功的一笔出资,不是买了哪支股票,而是自学了许多风趣的技能。</p><p>我仍是那句话,最好的出资,便是出资自己!</p><p>回忆了自己的这一年,收成良多,我学到了许多新技能。</p><p>今日,咱们持续聊量化买卖</p><p>量化买卖,说白了,首要分为三个部分:</p>炒股数据获取选股& 择时战略买卖体系<p>关于一些低频的买卖战略,乃至都用不上买卖体系,手动操作都行。</p><p></p>Udata<p>一个安稳的炒股数据获取接口很重要,能够自己写爬虫爬数据,但这样太不安稳。</p><p>今日给咱们引荐一个好用的 API 接口:</p><p>https://udata.hs.net</p><p>Udata 大牌子,是深耕金融范畴 30 年的恒生电子推出的金融数据社区。</p><p>恒生电子咱们应该都听过,近千亿市值的大公司,用数据这种事,找这类布景好的社区准没错。</p><p>今日我就以 Udata 供给的 API 股票接口为例,来一期保姆级的量化买卖教程。</p><p></p>Udata 装置<p>咱们先从 Udata 的装置开端讲起。</p><p>首先要建立一个 Python 的开发环境,Python 开发环境不会建立的,能够看我之前发布的一篇教程:</p><p>一了百了的 Python 环境建立办法</p><p>Udata 能够运用 pip 装置。</p>pip install hs_udata<p>这样就标明装置好了。</p><p></p><p>然后注册个 Udata 账户,订阅一个体会套餐。各个社区都是相同的,都有免费的体会套餐给初学者运用。</p><p>注册并订阅号后,获取 token。</p><p>https://udata.hs.net/console/overAllView</p><p>翻开链接,就能看到 token 获取方法,直接仿制即可。</p><p></p><p>然后运用如下代码,就能够获取数据了。</p>from hs_udata import set_token, stock_list # 引进 hs_udata 模块中 set_token 和 stock_listif __name__ == "__main__": # 替换你的 token,检查 token 地址:https://udata.hs.net/console/overAllView set_token(token = 'xxxxx') # 获取 股票列表数据,回来格局为 dataframe data = stock_list() # 打印数据前 5 行 print(data.head())<p>有正确的数据成果了,那祝贺你,装备成功!</p><p></p><p></p>量化剖析<p>数据搞定了,咱们就能够运用这个 API 接口,做一些战略。</p><p>无论是选股,仍是择时买卖,都能够运用这个 API 接口的数据进行。</p><p>Udata 的 API 文档写得很全面:</p><p>https://udata.hs.net/datas/202/</p><p>包罗万象:</p><p></p><p>之前的教程,给咱们解说过 ETF 动量轮动战略。</p><p>今日来点不相同的,根底的剖析技巧,也是咱们必备的基本功。</p><p>比方画个 K 线,可视化东西,能够直接运用 pyecharts。</p><p>假如没有装置这个库,能够先运用 pip 装置一下。</p>pip install pyecharts<p>pyecharts 的运用十分简略,能够直接看手册。</p><p>https://pyecharts.org/#/zh-cn/intro</p><p>咱们结合 Udata 的数据获取 api 接口和 pyecharts 可视化东西,就能够自己制作 K 线。</p>import hs_udata as udatafrom datetime import datetime, timedeltaimport timefrom pyecharts import options as optsfrom pyecharts.charts import Klineif __name__ == "__main__": # 替换你的 token,检查 token 地址:https://udata.hs.net/console/overAllView udata.set_token(token = 'xxxxx') current_dt = time.strftime("%Y-%m-%d", time.localtime()) current_dt = datetime.strptime(current_dt, '%Y-%m-%d') # 获取 30 天的数据 day_num = 30 all_data = [] all_date = [] for i in range(1, day_num + 1)[::-1]: search_date = current_dt - timedelta(days = i) search_date = search_date.strftime("%Y%m%d") # 恒生电子近 30 日的股价 data = udata.stock_quote_daily(en_prod_code = "600570.SH", trading_date = search_date) # 开盘价 open_price = data['open_price'][0] # 收盘价 close_price = data['close_price'][0] # 最低价 low_price = data['low_price'][0] # 最高价 high_price = data['high_price'][0] # 去掉非买卖日数据 if len(open_price) == 0: continue all_date.append(search_date) all_data.append([float(open_price), float(close_price), float(low_price), float(high_price)]) # 运用 pyecharts 制作 K 线 c = ( Kline() .add_xaxis(all_date) .add_yaxis( "K线", all_data, itemstyle_opts = opts.ItemStyleOpts( color = "#ec0000", color0 = "#00da3c", border_color = "#8A0000", border_color0 = "#008F28", ), ) .set_global_opts( xaxis_opts = opts.AxisOpts(is_scale = True), yaxis_opts = opts.AxisOpts( is_scale = True, splitarea_opts = opts.SplitAreaOpts( is_show = True, areastyle_opts = opts.AreaStyleOpts(opacity = 1) ), ), datazoom_opts = [opts.DataZoomOpts(type_ = "inside")], title_opts = opts.TitleOpts(title = "恒生电子近 30 日 K 线"), ) .render("kline.html") )<p>运转成功后,会生成一个 kline.html 文件,用浏览器翻开这个 html 文件,就能够看到制作作用了。</p><p></p><p>可能有小伙伴会问,这都是炒股软件现成的,为什么要自己制作?</p><p>只要亲身写代码后,你才干深入认识到每个数据背面所代表的意义。这是一个很好的,协助咱们学习的进程。更重要的是,等咱们娴熟之后,能够依据自己的各种需求,定制化自己独家炒股界面。</p><p>你能够监控自己想要监控的全部信息。</p><p>像什么 KDJ、MACD 等各种目标,咱们都是能够自己核算并可视化出来的。</p><p>不再受限于炒股软件的一些目标,乃至一些炒股软件的付费因子,咱们都能够自己核算。</p><p>再比方,咱们能够运用数据,做一些自己不了解的剖析。举个十分简略的比如,你知道 A 股的职业散布状况吗?</p><p>几行代码就能够搞定。</p>import hs_udata as udatafrom pyecharts import options as optsfrom pyecharts.charts import Piefrom tqdm import tqdmif __name__ == "__main__": # 替换你的 token,检查 token 地址:https://udata.hs.net/console/overAllView udata.set_token(token = 'xxxxx') # 获取全部股票 data = udata.stock_list(listed_state = "1") codes = data['hs_code'].tolist() industry_name_dict = {} # 遍历股票 for code in tqdm(codes): # 获取股票职业信息 data = udata.industry_category(en_prod_code = code) industry_name_csrc = data['industry_name_csrc'][0].split("-")[0] # print(industry_name_csrc) # 核算职业数量 if industry_name_csrc not in industry_name_dict.keys(): industry_name_dict[industry_name_csrc] = 1 else: industry_name_dict[industry_name_csrc] += 1 # 可视化 c = ( Pie() .add( "", [ list(z) for z in zip( industry_name_dict.keys(), industry_name_dict.values(), ) ], center=["40%", "50%"], ) .set_global_opts( title_opts=opts.TitleOpts(title="A 股股票职业散布"), legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) .render("pie.html") )<p>运转代码,翻开 pie.html ,即可检查 A 股股票的职业散布状况。</p><p></p><p>制造业半壁河山啊!</p><p>除了这种简略的职业核算,咱们还能够核算每日的龙虎榜状况,监控股东持股状况,资金流向等。</p><p>依据股票的每日价格,咱们还能够核算各种因子,辅佐咱们决议计划。</p><p></p><p>依据自己的需求,来个私家定制,建立自己的买卖体系。</p><p>当然了,师傅领进门,修行看个人。能写的内容太多了,篇幅有限,今日先教一些根底的玩法。这个系列教程,还会持续更新的。</p><p></p>唠叨<p>最终再多说两句,一向有不少小伙伴问我,卖体系不?卖源码不?卖服务不?</p><p>这样的问询,自从发了那期量化炒股的文章后,就没有断过。</p><p>说实话,仍是主张自己学技能,自己写战略,那多香啊!真的,全部并没有那么难,铢积寸累,渐渐学,学惯用代码挣钱的进程,是一件很风趣的工作。</p><p></p><p>作者:Jack Cui</p><p>原文链接:https://mp.weixin.qq.com/s/80jJbVZinbEz-ocwQsjfPw</p>
本文地址:https://www.changhecl.com/97634.html