成功的量化交易——量化交易环境(9)

avatar
· Views 183


成功的量化交易——量化交易环境(9)

现在我们已经下载了所有当前标准普尔500成分股的历史定价,我们希望能够在Python中访问它。Pandas库让这变得非常简单。下面的脚本从我们的SecuritiesMaster数据库中获取谷歌股票在一定时间段内的开-高-低-关(OHLC)数据,并输出数据集的尾部:

#!/usr/bin/python 

# -*- coding: utf-8 -*- 

# retrieving_data.py 

from __future__ import print_function 

import pandas as pd 

import MySQLdb as mdb 

if __name__ == "__main__": 

# Connect to the MySQL instance 

db_host = ’localhost’ 

db_user = ’sec_user’ 

db_pass = ’password’ 

db_name = ’securities_master’ 

con = mdb.connect(db_host, db_user, db_pass, db_name) 

# Select all of the historic Google adjusted close data 

sql = """SELECT dp.price_date, dp.adj_close_price

FROM symbol AS sym

INNER JOIN daily_price AS dp

ON dp.symbol_id = sym.id

WHERE sym.ticker = ’GOOG’

ORDER BY dp.price_date ASC;""" 

# Create a pandas dataframe from the SQL query 

goog = pd.read_sql_query(sql, con=con, index_col=’price_date’) 

# Output the dataframe tail 

print(goog.tail())



下面是脚本的输出:

adj_close_price

price_date

2015-06-09 526.69

2015-06-10 536.69

2015-06-11 534.61

2015-06-12 532.33

2015-06-15 527.20



这显然只是一个简单的脚本,但它显示了本地存储的证券主程序的强大功能。使用这种方法可以非常快速地对某些策略进行回测,因为数据库的输入/输出(I/O)速度将比internet连接的速度快得多。

Processing Financial Data



处理财务数据


本章将讨论在策略测试中使用之前处理的金融市场数据。讨论将首先概述算法交易员感兴趣的不同类型的数据。然后将考虑数据的频率,从季度数据(如美国证券交易委员会的报告)到毫秒级的tick和订单簿数据。然后将概述这些数据的来源(免费和商业)以及获取数据的代码。最后,将讨论如何清理和准备用于战略的数据。

市场及工具分类


作为算法交易员,我们通常对广泛的金融市场数据感兴趣。这可以从基础和衍生工具的时间序列价格、基于文本的非结构化数据(如新闻文章),到企业盈利信息。本书将主要讨论金融时间序列数据。

市场


美国和国际股票、外汇、大宗商品和固定收益是算法交易员感兴趣的主要市场数据来源。在股票市场上,直接购买标的资产仍然极为普遍,而在后三个市场中,流动性较高的衍生工具(期货、期权或更奇特的工具)更常用于交易目的。这种宽泛的分类,本质上使得股市交易相对容易。因此,零售算法交易领域的很大一部分基于股票,例如一些公司股票或交易所交易基金(etf)。外汇(“外汇”)市场也非常受欢迎,且经纪商允许保证金交易的百分点(PIP)的运动。pip是货币汇率中第四个小数点的一个单位。对于以美元计价的货币,这相当于百分之一美分。大宗商品和固定收益市场更难直接交易相关资产。一个零售算法交易员通常对把石油桶运送到一个油库不感兴趣!相反,标的资产的期货合约被用于投机目的。融资融券交易被采用,允许对此类合约施加广泛的杠杆作用。

工具


算法交易员可以使用多种基础和衍生工具。

下表描述了感兴趣的常用用例。


成功的量化交易——量化交易环境(9)

这里我们将几乎完全集中于股票和etf,以简化实现。



基本数据


虽然算法交易员主要对金融价格时间序列进行分析,但基本数据(不同频率的)也经常被添加到分析中。所谓的量化价值(QV)策略在很大程度上依赖于对基本数据的积累和分析,如宏观经济信息、企业盈利历史、通胀指数、薪资报告、利率和SEC文件等。这类数据通常也是时间格式的,尽管在时间跨度上要大得多。本书集中讨论日常或更频繁的策略,主要来自价格波动。

非结构化数据


非结构化数据由新闻文章、博客文章、论文或报告等文档组成。这些数据的分析可能很复杂,因为它依赖于自然语言处理(NLP)技术。分析非结构化数据的一个用途是试图确定情绪背景。这对推动交易策略可能很有用。例如,通过将文本分类为“看涨”、“看跌”或“中性”,可以产生一系列交易信号。这个过程的术语是情绪分析。Python为文本数据分析提供了一个非常全面的库,称为自然语言工具包(NLTK)。


全文本数据


有许多全文数据来源可能对生成交易策略有用。彭博(Bloomberg)和英国《金融时报》(financial Times)等受欢迎的金融消息来源,以及Seeking Alpha和ZeroHedge等金融评论博客,都提供了可供分析的重要文本来源。此外,数据供应商提供的专有新闻提要也是此类数据的良好来源。为了在更大范围内获取数据,必须使用“web获取”工具,这些工具的设计目的是自动批量下载网站。这里要小心,因为自动web获取工具有时会违反这些站点的服务条款。在开始下载这类数据之前,一定要检查一下。一个特别有用的web抓取工具是ScraPy库,它使这个过程更高效、更结构化。


社交媒体数据


在过去几年里,人们对从社交媒体数据中获取情感信息非常感兴趣,尤其是通过Twitter微博。2011年,围绕Twitter人气推出了对冲基金Derwent Capital。事实上,学术研究4已经表明,基于这种情绪分析,有可能产生一定程度的预测能力。如果你想对情绪进行研究,那么情绪分析不在本书的讨论范围之内,但是Matt Russell有两本书是关于通过这些web服务提供的公共api获取社交媒体数据的。



【交易学习】

【交易员洞察】

金融寒冬中的一束星火—ALPHA金融人才孵化计划

中国量化交易的现状与未来前景如何

人类历史上最早的泡沫故事——“郁金香热”始末

从个人交易员成长为机构交易员


【基础知识】

小白如何学金融

全球央行货币政策及财政政策解析

金融行业组织架构及岗位分布

什么叫宏观交易员?


【货币交易】

人民币货币市场全景图

详解货币交易术语

保证金账户运作机制


【黄金交易】

世界黄金浮生纪事

中国黄金的前世今生

黄金价格走势及内在机理

면책 조항: 본 게시글에 표현된 견해는 전적으로 작성자의 견해이며 Followme의 공식 입장을 대변하지 않습니다. Followme는 제공된 정보의 정확성, 완전성 또는 신뢰성에 대해 책임을 지지 않으며, 서면으로 명시적으로 언급되지 않는 한 해당 내용을 기반으로 취해진 어떠한 조치에 대해서도 책임을 지지 않습니다.

이 글이 마음에 드시나요? 작성자에게 팁을 보내 감사의 마음을 전하세요.
댓글 0

더 오래된 의견은 없습니다. 소파를 가장 먼저 잡으십시오.

  • tradingContest