zoukankan      html  css  js  c++  java
  • Pandas & Numpy: 策略与回测系统 ; 数据分析

    一、OHLCV:

    当天的开盘价(Open)、最高价(High)、最低价(Low)和收盘价(Close)。如果再加上这一个小时总的成交量(Volumn),就得到了 OHLCV 数据。

    使用 Zipline 进行策略回测,或者用 Pyfolio 进行投资组合分析。
    Quantopian,就提供了基于 Zipline 的标准回测环境。
    国内也有诸如 BigQuant、果仁网等类似平台,提供不同市场和金融产品的交易。

    二、回测框架

    回溯测试(Back testing),即回测,是用历史数据验证策略。

    常见的回测框架有两类。

    一类是向量化回测框架,它通常基于 Pandas+Numpy 来自己搭建计算核心;后端则是用 MySQL 或者 MongoDB 作为源。这种框架通过 Pandas+Numpy 对 OHLC 数组进行向量运算,可以在较长的历史数据上进行回测。不过,因为这类框架一般只用 OHLC,所以模拟会比较粗糙。

    另一类则是事件驱动型回测框架。这类框架,本质上是针对每一个 tick 的变动或者 orderbook 的变动生成事件;然后,再把一个个事件交给策略进行执行。因此,虽然它的拓展性很强,可以允许更加灵活的策略,但回测速度是很慢的。

    我们想要学习量化交易,使用大型成熟的回测框架,自然是第一选择。

    比如 Zipline,就是一个热门的事件驱动型回测框架,背后有大型社区和文档的支持。

    PyAlgoTrade 也是事件驱动的回测框架,文档相对完整,整合了知名的技术分析(Techique Analysis)库 TA-Lib。在速度和灵活方面,它比 Zipline 强。不过,它的一大硬伤是不支持 Pandas 的模块和对象。

    显然,对于我们 Python 学习者来说,第一类也就是向量型回测框架,才是最适合我们练手的项目了。那么,我们就开始吧。

    首先,我先为你梳理下回测流程,也就是下面五步:

    1. 读取 OHLC 数据;

    2. 对 OHLC 进行指标运算;

    3. 策略根据指标向量决定买卖;

    4. 发给模拟的”交易所“进行交易;

    5. 最后,统计结果。

    三、NumPy

    NumPy是SciPy、Pandas 等数据科学的基础库。

    为什么要用 NumPy 数组结构而不是 Python 本身的列表 list?

    这是因为列表 list 的元素在系统内存中是分散存储的,而 NumPy 数组存储在一个均匀连续的内存块中。

    这样数组计算遍历所有的元素,不像列表 list 还需要对内存地址进行查找,从而节省了计算资源。

    避免采用隐式拷贝,而是采用就地操作的方式。

    Eg:用 x*=2,而不用 y=x*2。

    四、数据分析及用户画像

    Apriori算法

    商业智能 BI、数据仓库 DW、数据挖掘 DM

    一般来说数据可以划分为训练集和测试集。

    训练集是用来给机器做训练的,通常是人们整理好训练数据,以及这些数据对应的分类标识。

    通过训练,机器就产生了自我分类的模型,然后机器就可以拿着这个分类模型,对测试集中的数据进行分类预测

    “用户消费行为分析”。

    1、用户标签:它包括了性别、年龄、地域、收入、学历、职业等。这些包括了用户的基础属性。

    2、消费标签:消费习惯、购买意向、是否对促销敏感。这些统计分析用户的消费习惯。

    3、行为标签:时间段、频次、时长、访问路径。这些是通过分析用户行为,来得到他们使用 App 的习惯。

    4、内容分析:对用户平时浏览的内容,尤其是停留时间长、浏览次数多的内容进行分析,分析出用户对哪些内容感兴趣,比如,金融、娱乐、教育、体育、时尚、科技等。

    我们可以从用户生命周期的三个阶段来划分业务价值,包括:获客、粘客和留客。

    1、获客:如何进行拉新,通过更精准的营销获取客户。

    2、粘客:个性化推荐,搜索排序,场景运营等。

    3、留客:流失率预测,分析关键节点降低流失率。

    在获客上,我们可以找到优势的宣传渠道,如何通过个性化的宣传手段,吸引有潜在需求的用户,并刺激其转化。

    在粘客上,如何提升用户的单价和消费频次,方法可以包括购买后的个性化推荐、针对优质用户进行优质高价商品的推荐、以及重复购买,比如通过红包、优惠等方式激励对优惠敏感的人群,提升购买频次。

    在留客上,预测用户是否可能会从平台上流失。在营销领域,关于用户留存有一个观点——如果将顾客流失率降低 5%,公司利润将提升 25%~85%。可以看出留存率是多么的重要。用户流失可能会包括多种情况,比如用户体验、竞争对手、需求变化等,通过预测用户的流失率可以大幅降低用户留存的运营成本。

     三、数据分析算法

    决策树

    朴素贝叶斯

    SVM

    KNN 

  • 相关阅读:
    json基础
    css语法以及css选择器
    HTML语义化标签
    CSS插入的四种方式
    Hibernate主键生成策略及选择
    HIbernate处理数据更新丢失
    数据库的四大特性以及事务的隔离级别
    MD5加密
    redis主从复制
    redis的持久化方案
  • 原文地址:https://www.cnblogs.com/developer-qin/p/15238773.html
Copyright © 2011-2022 走看看