热门推荐
python量化开发【初级入门】
2024-10-31 21:17

一、量化交易

python量化开发【初级入门】

        通过将与股票相关的信息数据化、策略化、并且通过历史数据验证它们的交易逻辑性

        我们从全部股票,选出4到5个政策长期相当扶持的行业,这样就差不多剩下1/3股票了,去除一些质地不好的、ST差的,再选出中间主力运作比较活跃的,不是说几年趴着不动的,或波动比较小的,最后剩下1/6只股票,再根据技术面给它一个买点,或者政策面上有什么大的变化,比如资金链放松了,关注股票池里1/6的股票,因此很容易熟悉它们。

二、量化概念

1、基本面:居民消费指数、人均国内生产总值(GDP)、净资产收益率(ROE

2、技术面:股票收盘价、K线(日/周/月/年)、均线(5/10/20/60日

三、量化策略

1、赚钱:低买高卖

2、指标

        均线:择时策略

        盈利能力:选股策略

        周期性:板块轮动策略

四、常见的股票量化指标

1、相关平台

        财经网站:新浪、雅虎、东方财富

        证券公司:中信、中金、国信、天风等

        炒股平台:同花顺、通达信、大智慧等

2、择时-技术面

        ① K线跌入BOLL的下轨买入,突破上轨卖出

        ② MACD金叉:DIF快速线上穿DEA慢速线

        ③ 换手率:天量见天价、地量见地价。

                绝对地量:小于1%

                成交低靡:1%-2%

                成交温和:2%-3%

                成交活跃:3%-5%

                带量:5%-8%

                放量:8%-15%

                巨量:15%-25%

                成交怪异:大于25%

       3、选股-基本面

               ① 市场宏观环境

               ② 企业盈利能力

               ③ 年报数据价值最高,说明事项最多

               ④ 行业景气度

               ⑤ 舆情数据

        4、找年报地址:巨潮资讯网

               最新公告中可以查看公司报告文档

               通过参加股东大会、给企业高管打电话的方式:判断年报是否造假

        5、用财务数据来选股

                利润表:净利润率【合同拿到手的钱】、期末现金及现金等价物余额【实际拿到的钱】

                杜邦分析:净资产收益率

                市盈率高:代表大家都很看好它

                管理层变动:大股东增持、减持

        6、量化策略

               α 盲点套利:β 是与市场同涨共跌的部分,α 是独立于市场波动以外的部分,具体的做法可以通过做多股票组合(α,同时做空股指期货(-β,最终就剩下了绝对收益 α。

        7、根据市场来选股

                大牛市买小牛股、小牛市买大牛股

                行情火爆买冷门股、行情低迷买热门股

                大盘低位买高位个股,大盘高位买地位个股

        8、相对价位CKDP

                CKDP 的“0”附近查找低位,“100”高位

        9、K线技术指标

                趋势型:移动平均线、简易波动、趋向指标

                均线型:移动平均线、指数平滑均线、多空指标

                成交量:成交量指标、成交线指标、量平滑移动平均线

                其他:成本均线、心理线

五、公募量化策略【基本面】

        1、指数增强:购买的大部分股票基本复制指数的成分股,通过择时、择股等手段,获得比指数更高的收益回报

        2、量化选股:通过量化模型选股,在合适的时机买入,追求超越业绩基准的超额收益

        3、量化对冲:市场中性,追求的是绝对收益α

        4、换仓周期:一个月

六、私募量化策略【技术面】

        1、换仓周期:几天

        2、高频交易

        3、通过高换手率来控制暴露的风险

        4、量化策略:期货策略、期权策略、债券策略等

        5、期货策略CTA(管理期货)策略:投资范围包括股指期货策略、大宗商品期货策略、国债期货策略,最经典的就是捕捉价格动量趋势,通过快速止损实现“亏小赢大”的局面

        6、套利量化策略:通过跨市场、跨期限、跨品种去捕捉市场的不合理价差。

                例如国内大商所的大豆、玉米可以和芝加哥期货交易所的农产品(5.960,0.18,3.11%)进行跨市场套利

                豆油、棕榈油、菜籽油互为替代品,受到季节性气候的影响可能会出现跨品种套利空间

                同一品种不同月份的价格强弱变化又可以带来跨期限套利

        7、A股量价策略:A股还是以散户交易为主,私募的量化策略可以捕获到散户的不理性行为,反向操作即可赚取超额收益,这几年很受市场追捧,为了挖取超额收益,只能采用更高频的数据。但在相同市场环境。

        8、资金容量:相同市场环境下,换手率越高的策略资金容量越小

七、如何搭建量化交易系统

1、量化交易系统的组成

        数据端

                可视化:技术层面的K线图

                行情:股票的今天价格

        决策端

                交易策略:做决策

        执行端

                柜台:执行交易、委托、计算持仓、计算资金、做核对的部分

2、使用Python实现量化交易、

        1)Data

                A、指数

                        a、持仓个股

                B、个股

                        a、基本信息

        2)Strategy

                A、择时策略

                        a、布林线

                        b、移动平均线

                        c、相对强弱指标

                B、选股策略

                       a、 盈利能力

                        b、市值

                        c、估值

        3)Trade

                A、委托

                B、成交

                C、持仓

                D、资金

        4)Chart

八、量化交易系统的Data模块 

1、股票的特性

        1)股票:股份公司的所有权凭证、盈亏自负

        2)基金:投资组合(股票、债券、现金

        3)债券:还本付息的有价证券(国债、企业债、金融债券

        风险:风险(10%)>基金(5%)>债券(1%

        收益:股票 > 基金 > 债券

九、获取股票数据的2种方式

1、免费的数据接口

        数据源:天勤量化、BigQuant、JoinQuant(聚宽)等

        基本数据:每天的行情、财务数据、技术指标

2、付费的数据接口

        数据源:Wind和彭博

        基本数据:提供秒级的行情数据、高阶复杂的技术指标、量化策略

        费用:3万

        优势:省掉重复造轮子的精力

十、使用JQData查询行情数据

1、数据字典

        股票数据:提供2005年至今沪深A股全面的行情、财务、基本面等数据

        行业概念数据:包含行业板块、概念板块数据

        指数数据:包含沪深市场多只指数数据

        宏观经济数据:包含国内的重要宏观经济数据

        期货数据:涵盖中金所、上期所、郑商所和大商所的所有期货合约数据

        期权数据:提供股票期权和商品期权的合约资料和行情数据

        场内基金数据:包含ETF、LOF、分级基金、货币基金完整的行情、净值数据

        场外基金数据:提供场外基金单位净值、复权净值、投资组合等数据

        技术分析指标:技术分析指标因子库

        Alpha101因子:WorldQuant LLC 发表论文中给出的101个Alphas因子

        Alpha191因子:短周期交易型阿尔法因子

        聚宽因子库:包含数百个质量、情绪、风险、成长等六大类因子

        舆情数据:包含新闻联播等舆情数据

        JQData:能在本地调用的全品种量化金融数据

        债券数据:提供债券基本信息、国债逆回购、可转债等债券数据

2、聚宽JQData获取所有股市数据

3、Resample函数

        ① Python数据分析库Pandas的方法函数

                转换时间序列的频次

                统计汇总

        ② 日K ——> 周K

                周K开盘价:周一的开盘价

                周K收盘价:周五的收盘价

                周K最高价:一周中最高的最高价

                周K最低价:一周中最低的最低价

        ③ 统计汇总功能:resample.sum / .count

                 Sum = 720

                       

        ④  是 Pandas(Python 数据分析库)中的一个函数,用于创建数据结构称为 Dataframe。Dataframe 是一个二维的、表格型的数据结构,类似于电子表格或 SQL 表,可以存储和处理各种类型的数据。

        ⑤ 设置行列不忽略

        ⑥ Resample周期转换:通过日K线计算月K线

             ⑦ Resample汇总统计:统计一下月成交量、成交额(sum

 4、财务指标

       企业财务的构成

               资产负债表

                        体现企业家底和负债情况

                        财务状态:资产、负债、所有者利益

                利润表

                        公司盈利能力、赚了多少、怎么赚的

                        隐含着对外来利润增长的预期

                        体现市场空间、成长能力

                        经营成果:收入、成本费用、利润

                现金流量表【最难造假,需要合同和收付记录】

                        权责发生制 vs 收付实现制         

                        体现造血能力、竞争优势、议价优势

                        现金流入、现金流出

5、财务指标选股找龙头企业、或者蓝筹企业

                eps:每股收益= 净利润/股本数

                operating_profit:经营活动净收益 = 营业总收入 - 营业总成本

                inc_net_profit_year_on_year:净利润的同比增长率 = 今年的利润 - 去年的利润/去年的利润

                inc_net_profit_annual:环比增长率

                roe > 15%:净资产收益率ROE(%) = 归属于母公司的2倍净利润 /  归属于母公司的净资产

                roa:总资产净利率ROA(%)

                net_profit_margin:销售净利率(%)

                gross_profit_margin > 75%:销售毛利率(%)

6、财务指标选股:  

        利用成长增速选股概率性很高(eps每股收益>同行业平均值,roe净资产收益率>同行业平均值,净利润同比增长率>同行业平均值,经营活动净收益>同行业平均值,近3年近5年的roe等指标是排在前列的、未来一年的股价都是增长的,除非说行情市场特别不好、或者个别公司股价已经涨的很高、估值很高的情况,大部分公司股票都是会上涨的

 7、股票方法库

十、实战内容

1、调用stock:创建example模块>stock脚本>获取数据

2、实时获取:获取日K数据、循环获更新

十二、股票交易规则

1、开户:炒股平台、券商(交易费

2、交易版面:K线、盘口、交易价格、数量(100股

3、交易费: 佣金<3%、过户费1元每千股、印花税1%。    

4、A股特点: T+1交易、 ±10%(主/中小板)±20%(创业/科创板)

5、计算每日涨跌幅

十三、计算买入、卖出信号

1、新建Strategy

        策略开发、生成交易信号

2、建立周期性选股策略

3、生成交易信号

        确定买入、卖出条件

        np.where(条件,如果满足,如果不)

strategy.py

4、计算持仓收益

        总盈亏 = (市价 - 成本价) * 股数

        浮动盈亏比 = (市价 - 成本价) / 陈本价

        成本价 = 买入金额 / 持有股数

        股数 = 累计买入股数

5、计算收益率、计算累计收益率

十四、什么是最大回撤

1、最大回撤

        在选定周期内任意历史时点往后推,产品净值走到最低点时的收益率回撤幅度的最大值

        是一个非常重要的风险指标

2、公式: 

        最大回撤 =(低谷值 - 高峰值) / 高峰值

        不会把负数说出来

        最大的亏损比例

3、最大回撤价值

4、计算方式

5、计算风险收益指标:夏普比率

        夏普指数定义:衡量的是一项投资在对其调整风险后,相对于无风险资产的收益表现

        公式

                夏普比率(期望的投资回报率 - 无风险利率) /  投资回报率标准差

                解释:无风险利率:例如国债年化3%左右

                           投资回报率标准差 = 一种离散指标,体现数据样本内部的差异性

                           投资回报率标准差 = | 每一项数据项 - 均值 |²的总和 / 数据项个数

          意义:投资者额外承受的每一单位风险所获得的额外收益:标准差、波动、风险

        比较方式:越好越好,收益远高于风险

十五、如何筛选基金

(一)3个基本维度:3-5年业绩(收益)、基金经理、风险指标(最大回撤、夏普、波动

(二)选基金流程

        1、热门主题进入:选2只你看好行业的基金、1只灵活配置各行各业都有、1只指数基金例如沪深300等

        2、行业筛选:离民生近的、你看得懂的(例如:食品、饮料、医疗行业、新能源

        3、选近3年的长期收益排序、在排序近2年、近1年类推

        4、搜索选股:搜索关键词”医疗”

        5、查看前10大持仓:按照持仓占比排列、确认是否都是医疗行业,例如成分“爱尔眼科” 持仓占比 9.18%

        6、看净值走势

        7、看业绩表现:阶段涨幅对比,近3年、今年来、近6个月、近3个月

        8、对比市场平均水平、排名

        9、对比特殊数据:近1年波动率(越小越好)、近1年夏普比例(越大越好)、近一年最大回撤(越小越好

        10、选择收益平稳度好一点的基金:对比4只股票的稳定性

十六、比较3只股票的夏普指数

 十七、如何创建、更新股票数据库

1、存储方式

        股票代码.csv

        MySql、MangoDB等数据库

2、实现思路

        ① 获取股票列表

        ② 依次存储股票数据

        ③ 每天以增量形式更新数据

                如何追加数据:df.to_csv(mode = 'a')

                重复获取了怎么办:df.drop_duplicates

                缺少数据怎么办:startdate = 最后一个日期

十八、双均线策略

1、均线 = 代表过去N日股价平均走势,5日均线

2、金叉买入死叉卖出

3、策略实现思路

        ① 获取标的行情

        ② 计算技术指标: 移动平均现金:5日、10日

        ③ 生成交易信号:金叉则买入、死叉则卖出

        ④ 计算收益率:单次收益率、累计收益率

        ⑤ 寻找最优参数:均线周期、投资标的

        ⑥ 与市场基准比较:沪深300、上证、中证500

        ⑦ 策略评估:收益、夏普、波动率、回撤、胜率

 4、均线代码

 十九、均线策略优化【55道令箭】

1、均线策略优化1:“横有多长,竖有多高”连续12个月以上,每个月振幅在25%以内,判断股价处于横盘,叠加均线策略胜率在75.23%

2、均线策略优化2:“底部长下影”,股价在连续6个跌停板以上的下跌,出现长下影:下影线是实体的2倍以上,叠加均线策略胜率在82.51%

二十、验证策略的可靠性

1、评估指标:胜率、年华收益、最大回撤、夏普

2、假设检验:收益>0是否为大概率事件

3、H1:样本均值>理论均值,例如每次收益率的均值

4、统计量 = (样本均值 - 理论平均值) / (样本标准差/ 样本数量)

5、理解、模拟计算t值和p值:p值<显著性水平α(通常为0.05,则拒绝原假设

二十一、什么是动量策略

1、定义:预先对股票收益和 交易量设定过滤准则,当股票收益或股票收益和交易量同时满足过滤准则就买入(做多)或者卖出(做空)股票的投资策略

2、交易原则:股票的历史交易率为主要的交易原则

3、提出理论:JT价格动量策略

4、设计思路

        正向策略

                涨的还会涨、跌的还会跌

                买入长得最多的、卖出跌的最多的

                利用市场对信息的反应不足

        反向策略

                涨太多会跌、跌太多会涨

                买入跌最多的、卖出涨最多的

                市场对信息对信息反应过度

5、动量策略的实现步骤

① 确定交易对象:股票池、考虑流动性(沪深300、创业板

② 选定业绩评价周期:过去1-12个月

③ 计算形成期收益率:过去N个月的收益率, 得出交易信号

④ 对收益率进行排序:最佳~赢家组合、最差~输家组合

⑤ 确定持仓/持仓周期:1个月、可自定义测算

⑥ 连续或间隔一段时期,不断重复②-⑤行为

⑦ 计算动量/反向策略各持有期的回报率

⑧ 计算t/p统计值,判断是否存在动量效应

⑨ 实现步骤

        确定投资标的

        计算动量因子

        计算投组收益率,并判断有效性

6、确认股票池
① 流动性:成交活跃、买入卖出顺畅

② 基本面:行业、营收、盈利增速、现金流、负债

③ 标的价格:1手起买起卖

股票池初始值:沪深300持有个股

④ 获取股票池

7、动量因子

        明确计算公式:简单收益率

        设置业绩评价周期:默认1个月

        concat+列表循环拼接列数据

        Resample函数转换日- 月周期

8、找交易信号、计算投资组合收益

9、投组收益率

二十二、实盘交易处理买卖信号【EasyTrader】

1、第二天买入

        问题:① 错过最佳入场时机

                   ② 成本变高了,次数多了,亏损概率提高

                   ③ 滑点:实际交易与要求的价格不一致

2、用今天的分时价格代替日收盘价

二十三、数据回测框架【AlgoTrader】

1、ZipLine:Quantopia、适用于美股、编程能力、开发环境

2、PyAlgoTrade:适用简单、股票、数字币、开源代码

3、BackTrader:内容全面、类定义复杂、可实盘交易

二十四、价差套利方法

1、做法:例如十个交易所都有同一个资产、或者同一个币、或者同一个基金,然后他们价格不同,我在某个一个时间段都买入他们,哪一个价格低,我就卖出其他的买入低的,比如A交易所价格最低,把B、C、D交易所的都卖掉,买入A交易所,纯赚中间差价。如果哪天C交易所价格低,都卖掉,买C,我只需要监测是否有这种情况,有的话通过机器人或者交易系统去告知我,有的话,手工操作一下,不太适合很成熟的市场【例如A股市场】

二十五、适用PyAlgoTrade模拟交易与回测【双均线策略】

二十六、不同交易所套利法则

1、不同交易卖同一股票,实时监测每一个交易所价格,每次找到最低价格例如交易所A第一时间买入,第二次找到更低的交易所B,则把A交易所股票卖出,B交易所股票买入,赚的就是差价

二十七、程序化交易的几种方式

1、对接券商:发送至交易所、授权信息、迥异和查询信息 

2、交易柜台:宽睿、中泰、华鑫、华锐、恒生、面向机构

3、三方平台:万得、彭博、主流量化平台

4、个人投资者:网页模拟登录、基于exe接口

二十八、初始化EasyTrader开发环境

1、安装对象

        EasyTrader、客户端

        使用pywinauto操作图形化界面

2、图形化界面

        软件页面、点选、拖拉拽

        对应概念:字符、脚本、编辑模式

3、自动交易代码

二十九、多因子模型

1、因子:交易过程中的影响因素、技术/基本面指标

2、多因子:经过多个影响因子的筛选,形成的交易策略

3、价值投资选股器:根据盈利能力选股

        ① 确定股票池

                总市值、行业(排除房地产长周期等行业、偏好互联网、计算机、新能源

        ② 筛选盈利能力(营收、净利润、ROE增幅

                经营活动净收益(亿元:近3年的平均增幅

                净利润(亿元:近3年的平均增幅

                ROE:近3年的平均增幅

        ③ 筛选估值水平(PE、PB

                PE、PB数值高说明很可能被高估,需要用增幅对比,结合行业一起去看

        ④ 筛选股价

                当前股价、增幅

                

三十、结合择时因子和动量因子结合就是选股模型

        因子有效性

三十一、如何获取更多策略

1、聚宽平台的十大策略

        北向资金、择时、趋势交易、选股

2、东方财富【重点分析】:资讯>A股研报>策略报告>搜索关键词:金融工程、因子、策略搜索

        新闻舆情分析:消极关键词卖出、积极关键词多买入

      

    以上就是本篇文章【python量化开发【初级入门】】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/2967.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多