精华内容
下载资源
问答
  • 文章目录p6 获取板块、交易行情数据p7 获取财务数据与定时器p8 投资组合与交易p9 策略的收益指标p10 策略风险指标视频:4天学会python机器学习与量化交易平台:米筐4天学会python机器学习与量化交易,肯定是不可能的...

    文章目录

    p6 获取板块、交易行情数据

    p7 获取财务数据与定时器

    p8 投资组合与交易

    p9 策略的收益指标

    p10 策略风险指标

    视频:4天学会python机器学习与量化交易

    平台:米筐

    4天学会python机器学习与量化交易,肯定是不可能的,最多入个门。

    学习原因:

    1,讲在线策略,免去本地搭建环境,下载数据等琐事。

    2,主要讲A股交易,和有的量化资料不一样(讲期权),有实用价值。

    3,讲的比较简单,适合入门。

    2020.2.12 开始学习,之前没学过,看看要多久看完并学会,立个flag。

    p6 获取板块、交易行情数据

    RQData API文档:这里

    获取板块、交易行情数据

    1,获取股票

    def init(context):

    context.s1 = '000001.XSHE'

    #获取计算机通信行业股票

    context.stock_list = industry('C39')

    #获取能源板块股票

    context.sector_list = sector('Energy')

    #获取指数成分股股票,如沪深300指数股票 (相当于获取股票池)

    context.index_list = index_components('000300.XSHG')

    2,获取价格

    2.1 收盘价格 history_bars

    这里指获取获取该股票某一天前面5天的收盘价格

    def handle_bar(context,bar_dict):

    close = history_bars(context.s1, 5, '1d', 'close')

    logger.info(close)

    结果:

    2016-09-28 INFO [9.16 9.15 9.04 9.06 9.05]

    2016-09-29 INFO [9.15 9.04 9.06 9.05 9.06]

    2016-09-30 INFO [9.04 9.06 9.05 9.06 9.07]

    2016-09-30 WARN 订单被拒单: [600397.XSHG] 已涨停。

    2016-09-30 WARN 订单创建失败: 下单量为0

    2016-09-30 WARN 订单创建失败: 下单量为0

    其中,[9.16 9.15 9.04 9.06 9.05],9.05(最右边的)为9.28号的价格。close的类型为。

    2.2 获取多个指标

    变成2维数据

    def handle_bar(context,bar_dict):

    #获取前面5天收盘价

    close = history_bars(context.s1, 5, '1d', 'close')

    # 获取多个指标

    history_1 = history_bars(context.s1, 5, '1d', ['close', 'open'])

    print(history_1)

    结果:

    2016-09-28 INFO [(9.16, 9.1 ) (9.15, 9.16) (9.04, 9.13) (9.06, 9.04) (9.05, 9.06)]

    2016-09-29 INFO [(9.15, 9.16) (9.04, 9.13) (9.06, 9.04) (9.05, 9.06) (9.06, 9.05)]

    2016-09-30 INFO [(9.04, 9.13) (9.06, 9.04) (9.05, 9.06) (9.06, 9.05) (9.07, 9.06)]

    2016-09-30 WARN 订单创建失败: 下单量为0

    2016-09-30 WARN 订单创建失败: 下单量为0

    2.3 获取分钟数据

    # 获取1分钟

    close_1min = history_bars(context.s1, 5, '1m', 'close')

    要将右边时间选项修改为“分钟”。

    p7 获取财务数据与定时器

    获取财务数据与定时器

    bar_dict也可以获取行情数据,但只能获取当前日期的。

    get_fundamentals()获取财务数据,基本面,用来选股。在before_trading或handle_bar中调用,不能在init调用。回测时不用。

    1,获取市盈率PE - 简单查询

    def before_trading(context):

    # 获取财务数据,默认获取所有A股的股票财务数据

    # 创建查询语句

    q = query(fundamentals.eod_derivative_indicator.pe_ratio)

    # 回测不需要传日期,默认当天的数据

    fund = get_fundamentals(q)

    logger.info(fund.T)

    pass

    2,过滤查询

    def handle_bar(context,bar_dict):

    # 获取财务数据,默认获取所有A股的股票财务数据

    # 创建查询语句

    # 增加filter

    q = query(

    fundamentals.eod_derivative_indicator.pe_ratio,

    fundamentals.eod_derivative_indicator.pcf_ratio

    ).filter(

    fundamentals.eod_derivative_indicator.pe_ratio > 20,

    fundamentals.eod_derivative_indicator.pcf_ratio < 50

    ).order_by(

    fundamentals.eod_derivative_indicator.pe_ratio

    ).filter(

    fundamentals.stockcode.in_(context.index_list)

    ).limit(10)

    # 回测不需要传日期,默认当天的数据

    fund = get_fundamentals(q)

    logger.info(fund.T)

    pass

    3,定时器scheduler

    通过财务数据选股,不会每天获取,常以每周/每月选取。

    定时器必须在init中使用。

    例子:按月查询。

    def init(context):

    # 定义按月运行的一个定时运行器

    # 每月只运行一次,指定第一个交易日

    scheduler.run_monthly(get_data, tradingday=1)

    def get_data(context, bar_dict):

    #函数都不用return

    # 在这里按月去查询财务数据

    q = query(

    fundamentals.eod_derivative_indicator.pb_ratio

    ).filter(fundamentals.stockcode.in_(context.index_list))

    fund = get_fundamentals(q)

    logger.info(fund.T)

    运行顺序:

    按月

    scheduler.run_monthly(get_data, tradingday=1)

    2月,2月1号假设为第一个交易日,before_trading -> get_data -> handle_bar

    2月其他日期,before_trading -> handle_bar

    p8 投资组合与交易

    投资组合与交易

    1,

    在handle_bar进行交易。默认按收盘价买入(撮合方式:当前bar收盘价)。

    def handle_bar(context,bar_dict):

    # 进行交易

    # 每天的收盘价,假如第一天11.33*1000

    # order_shares(context.s1, 1000)

    # 按持仓比例,始终占0.1,有买有卖

    order_target_percent(context.s1, 0.10)

    2,限价单,市价单

    限价单:挂单,市价20.1,指定20.5卖出,19.2买入(先等它降价,再买)

    市价单:目的为了快速成交,当前市价多少,买入、卖出就是多少(默认)

    滑点的设置影响:为了更好的模拟实际交易中订单对市场的冲击,引入滑点。例如,设置滑点为0.1,原本买入价格为10元,设置后成交价格为11元,因为买的人太多了。

    – 在回测中使用。成交价更高。一般默认取0.1即可。

    交易的卖空设置:股票T+1,不要设置。

    3,投资组合 portfoilo

    资金:可用价值,市场价值,总价值

    仓位:当前持有的股票代码数量 等相关信息

    stock_account也可以查看相关信息

    def handle_bar(context,bar_dict):

    # 按持仓比例,始终占0.1,有买有卖

    order_target_percent(context.s1, 0.10)

    order_target_percent("000004.XSHE", 0.10)

    # 一旦买入交易之后,投资组合会发生变化

    # 资金、仓位

    print(context.stock_account) #这种也可以

    print("-----")

    print(context.portfolio.positions.keys()) #一般使用这种

    print(context.portfolio.positions[context.s1].quantity) #持股数量

    print("-----")

    print("投资组合的可用资金为", context.portfolio.cash)

    print("投资组合的市场价值为", context.portfolio.market_value)

    print("投资组合的总价值为", context.portfolio.total_value)

    结果:

    2016-01-04 INFO StockAccount({'daily_pnl': -200295.42416000017, 'margin': 1985482.0, 'positions': ['000004.XSHE', '000001.XSHE'], 'transaction_cost': 1747.2241600000002, 'cash': 7814222.57584, 'type': 'STOCK', 'dividend_receivable': 0, 'total_value': 9799704.57584, 'position_pnl': 0, 'trading_pnl': -198548.2000000002, 'market_value': 1985482.0, 'frozen_cash': 0.0, 'total_cash': 7814222.57584})

    2016-01-04 INFO -----

    2016-01-04 INFO ['000001.XSHE', '000004.XSHE']

    2016-01-04 INFO 88100

    2016-01-04 INFO -----

    2016-01-04 INFO 投资组合的可用资金为 7814222.57584

    2016-01-04 INFO 投资组合的市场价值为 1985482.0

    2016-01-04 INFO 投资组合的总价值为 9799704.57584

    ......

    p9 策略的收益指标

    视频位置:策略的收益指标

    1,策略的评价指标

    收益指标

    – 回测收益率:(最终总价值-初始总价值)/初始总价值

    – 基准收益:参考的标准,市场表现情况作为标准来看我们的策略。默认HS300.

    – 年化收益率:平均每年的收益情况,重点看这个。年化一般达到15%~30%较好,当然越高越好。

    p10 策略风险指标

    视频链接:策略风险指标

    1,风险指标

    风险指标指的是,在获取收益的时候,承担一些风险。

    最大回撤比率:最大回撤最好保持在10%~30%之间,越小越好。

    夏普比例:夏普比例越大越好,越大说明单位风险所获得的风险汇报越高。

    – 如国债为4%收益,你的收益为16%,波动为5%,那么夏普比例为:(16%-4%)/5%

    – 一般要使你的策略达到1.5以上才较好。通常为0.7~1.5

    未完待续。

    展开全文
  • 教程出自黑马程序员4天学会python量化交易​yun.itheima.compython量化交易----以python语言实现,通过学习量化交易的常用框架,并掌握量化交易策略的理论以及流程,以模拟交易的方式带领你进入量化交易的魔法世界。...

    776362378e2cc0deff775f7baf931b3d.png

    教程出自黑马程序员

    4天学会python量化交易yun.itheima.com
    bacb663e7d2fe8af1a9abf9dcb926980.png

    python量化交易----以python语言实现,通过学习量化交易的常用框架,并掌握量化交易策略的理论以及流程,以模拟交易的方式带领你进入量化交易的魔法世界。

    量化交易概念、框架以及策略、实施,各个步骤逐步讲解,层层深入。

    课程亮点:

    用最快的速度带你了解并掌握量化交易的原理和技术

    课程内容:

    python量化交易,通过量化交易的概念、框架、策略和打分法、回归法等基础知识的学习,并以模拟交易的方式实现,学习并掌握该技术

    适用人群:

    1、希望了解或从事量化交易的同学。

    2、对目前职业有进一步提升要求,希望从事python量化交易高薪工作的在职人员。

    课程目录介绍:

    1. 量化交易介绍、框架以及策略

    2. alpha与beta、多因子策略理论、流程及数据处理

    3. 单因子有效性分析、多因子相关性及合成

    4. 多因子选股策略-打分法、回归法,以及模拟交易、量化总结

    a82adce9922833788717af7f718fd043.png
    01_量化交易介绍https://www.zhihu.com/video/1139482946439344128
    bc8cd097a0f204e4cd2e9d42f17b877c.png
    02_量化交易项目流程、做什么https://www.zhihu.com/video/1139482986062901248
    1fe23d4e8d091a308958dc86f3f73022.png
    03_回测框架介绍https://www.zhihu.com/video/1139483180720492544
    58406403e5287ef1465206aee58cbc76.png
    04_策略运行过程介绍https://www.zhihu.com/video/1139483259468759040
    58406403e5287ef1465206aee58cbc76.png
    05_策略运行过程介绍2https://www.zhihu.com/video/1139483639686602752
    e8fb115aa18092ac789437bae2f95f21.png
    06_获取板块等、交易行情数据https://www.zhihu.com/video/1139483855995158528
    da2da609813fe23e6c6fd28c4cd34a15.png
    07_获取财务数据与定时器https://www.zhihu.com/video/1139483956633235456
    f8e52b5d6dace0f7bb3cf5372925b44b.png
    08_投资组合与交易https://www.zhihu.com/video/1139484632729849856
    046dce816dfc48300fc6a14356c43155.png
    09_策略的收益指标https://www.zhihu.com/video/1139484791698272256
    7df95df37f8e5f53a2fdcb53e0ba8a67.png
    10_策略风险指标https://www.zhihu.com/video/1139484914738245632

    因上传限制,全部教程直接点击

    4天学会python量化交易yun.itheima.com
    bacb663e7d2fe8af1a9abf9dcb926980.png
    展开全文
  • 视频:4天学会python机器学习与量化交易 4天学会python机器学习与量化交易,肯定是不可能的,最多入个门。 学习原因: 1,讲在线策略,免去本地搭建环境,下载数据等琐事。 2,主要讲A股交易,和有的量化资料不一样...

    视频:4天学会python机器学习与量化交易
    平台:米筐
    4天学会python机器学习与量化交易,肯定是不可能的,最多入个门。
    学习原因:
    1,讲在线策略,免去本地搭建环境,下载数据等琐事。
    2,主要讲A股交易,和有的量化资料不一样(讲期权),有实用价值。
    3,讲的比较简单,适合入门。

    2020.2.12 开始学习,之前没学过,看看要多久看完并学会,立个flag。

    p6 获取板块、交易行情数据

    RQData API文档:这里
    获取板块、交易行情数据
    1,获取股票

    def init(context):
        context.s1 = '000001.XSHE'
        
        #获取计算机通信行业股票
        context.stock_list = industry('C39')
    
        #获取能源板块股票
        context.sector_list = sector('Energy')
    
        #获取指数成分股股票,如沪深300指数股票  (相当于获取股票池)
        context.index_list = index_components('000300.XSHG')
    

    2,获取价格
    2.1 收盘价格 history_bars
    这里指获取获取该股票某一天前面5天的收盘价格

    def handle_bar(context,bar_dict):
        close = history_bars(context.s1, 5, '1d', 'close')
        logger.info(close)
    

    结果:

    2016-09-28  INFO  [9.16 9.15 9.04 9.06 9.05]
    2016-09-29  INFO  [9.15 9.04 9.06 9.05 9.06]
    2016-09-30  INFO  [9.04 9.06 9.05 9.06 9.07]
    2016-09-30  WARN  订单被拒单: [600397.XSHG] 已涨停。
    2016-09-30  WARN  订单创建失败: 下单量为0
    2016-09-30  WARN  订单创建失败: 下单量为0
    

    其中,[9.16 9.15 9.04 9.06 9.05],9.05(最右边的)为9.28号的价格。close的类型为<class 'numpy.ndarray'>

    2.2 获取多个指标
    变成2维数据

    def handle_bar(context,bar_dict):
        #获取前面5天收盘价
        close = history_bars(context.s1, 5, '1d', 'close')
        # 获取多个指标
        history_1 = history_bars(context.s1, 5, '1d', ['close', 'open'])
        print(history_1)
    

    结果:

    2016-09-28  INFO  [(9.16, 9.1 ) (9.15, 9.16) (9.04, 9.13) (9.06, 9.04) (9.05, 9.06)]
    2016-09-29  INFO  [(9.15, 9.16) (9.04, 9.13) (9.06, 9.04) (9.05, 9.06) (9.06, 9.05)]
    2016-09-30  INFO  [(9.04, 9.13) (9.06, 9.04) (9.05, 9.06) (9.06, 9.05) (9.07, 9.06)]
    2016-09-30  WARN  订单创建失败: 下单量为0
    2016-09-30  WARN  订单创建失败: 下单量为0
    

    2.3 获取分钟数据

        # 获取1分钟
        close_1min = history_bars(context.s1, 5, '1m', 'close')
    

    要将右边时间选项修改为“分钟”。

    p7 获取财务数据与定时器

    获取财务数据与定时器

    bar_dict也可以获取行情数据,但只能获取当前日期的。

    get_fundamentals()获取财务数据,基本面,用来选股。在before_trading或handle_bar中调用,不能在init调用。回测时不用。

    1,获取市盈率PE - 简单查询

    def before_trading(context):
        # 获取财务数据,默认获取所有A股的股票财务数据
        # 创建查询语句
        q = query(fundamentals.eod_derivative_indicator.pe_ratio)
        # 回测不需要传日期,默认当天的数据
        fund = get_fundamentals(q)
    
        logger.info(fund.T)
        pass
    

    2,过滤查询

    def handle_bar(context,bar_dict):
        # 获取财务数据,默认获取所有A股的股票财务数据
        # 创建查询语句
        # 增加filter
        q = query(
            fundamentals.eod_derivative_indicator.pe_ratio,
            fundamentals.eod_derivative_indicator.pcf_ratio
        ).filter(
            fundamentals.eod_derivative_indicator.pe_ratio > 20,
            fundamentals.eod_derivative_indicator.pcf_ratio < 50
        ).order_by(
            fundamentals.eod_derivative_indicator.pe_ratio
        ).filter(
            fundamentals.stockcode.in_(context.index_list)
        ).limit(10)
        # 回测不需要传日期,默认当天的数据
        fund = get_fundamentals(q)
    
        logger.info(fund.T)
        pass
    

    3,定时器scheduler
    通过财务数据选股,不会每天获取,常以每周/每月选取。
    定时器必须在init中使用。
    例子:按月查询。

    def init(context):
        # 定义按月运行的一个定时运行器
        # 每月只运行一次,指定第一个交易日
        scheduler.run_monthly(get_data, tradingday=1)
    
    def get_data(context, bar_dict):
        #函数都不用return
        # 在这里按月去查询财务数据
        q = query(
            fundamentals.eod_derivative_indicator.pb_ratio
        ).filter(fundamentals.stockcode.in_(context.index_list))
    
        fund = get_fundamentals(q)
    
        logger.info(fund.T)
    

    运行顺序:

    • 按月
    • scheduler.run_monthly(get_data, tradingday=1)
    • 2月,2月1号假设为第一个交易日,before_trading -> get_data -> handle_bar
    • 2月其他日期,before_trading -> handle_bar

    p8 投资组合与交易

    投资组合与交易

    1,
    在handle_bar进行交易。默认按收盘价买入(撮合方式:当前bar收盘价)。

    def handle_bar(context,bar_dict):
        # 进行交易
        # 每天的收盘价,假如第一天11.33*1000
        # order_shares(context.s1, 1000)
    
        # 按持仓比例,始终占0.1,有买有卖
        order_target_percent(context.s1, 0.10)
    

    2,限价单,市价单

    • 限价单:挂单,市价20.1,指定20.5卖出,19.2买入(先等它降价,再买)
    • 市价单:目的为了快速成交,当前市价多少,买入、卖出就是多少(默认)
    • 滑点的设置影响:为了更好的模拟实际交易中订单对市场的冲击,引入滑点。例如,设置滑点为0.1,原本买入价格为10元,设置后成交价格为11元,因为买的人太多了。
      – 在回测中使用。成交价更高。一般默认取0.1即可。
    • 交易的卖空设置:股票T+1,不要设置。

    3,投资组合 portfoilo

    • 资金:可用价值,市场价值,总价值
    • 仓位:当前持有的股票代码数量 等相关信息
    • stock_account也可以查看相关信息
    def handle_bar(context,bar_dict):
        # 按持仓比例,始终占0.1,有买有卖
        order_target_percent(context.s1, 0.10)
        order_target_percent("000004.XSHE", 0.10)
    
        # 一旦买入交易之后,投资组合会发生变化
        # 资金、仓位
        print(context.stock_account) #这种也可以
        print("-----")
        print(context.portfolio.positions.keys()) #一般使用这种
        print(context.portfolio.positions[context.s1].quantity) #持股数量
    
        print("-----")
        print("投资组合的可用资金为", context.portfolio.cash)
        print("投资组合的市场价值为", context.portfolio.market_value)
        print("投资组合的总价值为", context.portfolio.total_value)
    

    结果:

    2016-01-04  INFO  StockAccount({'daily_pnl': -200295.42416000017, 'margin': 1985482.0, 'positions': ['000004.XSHE', '000001.XSHE'], 'transaction_cost': 1747.2241600000002, 'cash': 7814222.57584, 'type': 'STOCK', 'dividend_receivable': 0, 'total_value': 9799704.57584, 'position_pnl': 0, 'trading_pnl': -198548.2000000002, 'market_value': 1985482.0, 'frozen_cash': 0.0, 'total_cash': 7814222.57584})
    2016-01-04  INFO  -----
    2016-01-04  INFO  ['000001.XSHE', '000004.XSHE']
    2016-01-04  INFO  88100
    2016-01-04  INFO  -----
    2016-01-04  INFO  投资组合的可用资金为 7814222.57584
    2016-01-04  INFO  投资组合的市场价值为 1985482.0
    2016-01-04  INFO  投资组合的总价值为 9799704.57584
    ......
    

    p9 策略的收益指标

    视频位置:策略的收益指标
    1,策略的评价指标

    • 收益指标
      – 回测收益率:(最终总价值-初始总价值)/初始总价值
      – 基准收益:参考的标准,市场表现情况作为标准来看我们的策略。默认HS300.
      – 年化收益率:平均每年的收益情况,重点看这个。年化一般达到15%~30%较好,当然越高越好。

    p10 策略风险指标

    视频链接:策略风险指标

    1,风险指标

    • 风险指标指的是,在获取收益的时候,承担一些风险。
    • 最大回撤比率:最大回撤最好保持在10%~30%之间,越小越好。
    • 夏普比例:夏普比例越大越好,越大说明单位风险所获得的风险汇报越高。
      – 如国债为4%收益,你的收益为16%,波动为5%,那么夏普比例为:(16%-4%)/5%
      – 一般要使你的策略达到1.5以上才较好。通常为0.7~1.5

    未完待续。

    展开全文
  • 文章目录p21 因子数据的标准化处理p22 市值中心化处理介绍p23 案例:市值中性化实现以及...api2:https://www.ricequant.com/doc/api/python/chn#wizard-stock rice quant ipynb p21 因子数据的标准化处理 视频:https:
  • 文章目录p16 案例:多因子的市值因子选股介绍p17 案例:多因子的市值因子选股演示p18 多因子策略流程、因子数据组成、去极值介绍p19 案例:中位数去极值和3背中位数去极值p20 案例:3sigma法去极值 ...
  • 米筐量化交易API:这里 https://www.ricequant.com/doc/rqdata-institutional p11 案例:介绍 视频链接:案例:介绍 1,需求 选股:获取市盈率大于50且小于65,营业总收入前10的股票。 调仓:每日调仓,将所有资金...
  • # 4,计算MAD_e = 1.4826*MAD,然后确定参数n,做出调整 # n取3,表示3倍中位数去极值 # 求出3倍中位数的上下限 up = me + ( 3 * 1.4826 * mad ) down = me - ( 3 * 1.4826 * mad ) ...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
热门标签
关键字:

4天学会python量化交易

python 订阅