Python_量化交易实战_量化交易基础

一.量化交易分类

  • 量化交易(Quantitative Trading)
    • 量化交易则通常是指使用数学、统计甚至机器学习的方法,去找寻合适的买卖时机。
    • 所以,在这个维度的定义之下,算法交易、高频交易还有统计套利(Statistical Arbitrage)都可以算作量化交易。
  • 程序化交易(Program Trading)
    • 它通常用计算机程序代替交易员,来具体执行金融产品的买卖。
    • 量化交易的下层通常是程序交易。
  • 算法交易(Algo-Trading)
    • 而算法交易通常用于高频交易中。
    • 它指的是,通过算法快速判定买卖的时间点,快速买卖多个产品。
  • 高频交易(High Frequency Trading)
  • 和自动化交易平台(Automated Trading System)

二.电子盘交易

通常的电子盘交易(比如股票,数字货币),是通过券商或者软件,直接把买卖请求发送给交易所;而算法交易的底层,就是让程序来自动实现这类操作。券商或者交易所,通常也会提供 API 接口给投资者。比如,盈透证券(Interactive Broker)的接口,就可以支持股票、期权的行情数据获取和交易;而 Gemini、OKCoin 等交易所,也提供了对应的接口进行数字货币行情获取和交易。

获取最近的比特币(BTC)对美元(USD)的价格和最近的成交量。

########## GEMINI行情接口 ##########
## https://api.gemini.com/v1/pubticker/:symbol

import json
import requests

gemini_ticker = 'https://api.gemini.com/v1/pubticker/{}'
symbol = 'btcusd'
btc_data = requests.get(gemini_ticker.format(symbol)).json()
print(json.dumps(btc_data, indent=4))

'''
{
    "bid": "50206.61",
    "ask": "50215.34",
    "volume": {
        "BTC": "986.9718101738",
        "USD": "48761547.749993690476",
        "timestamp": 1629701700000
    },
    "last": "50216.30"
}
'''

交易系统结构

  • 行情模块的主要功能是,尝试获取市场的行情数据,通常也负责获取交易账户的状态。
  • 策略模块的主要功能是,订阅市场的数据,根据设定的算法发出买、卖指令给执行模块。
  • 执行模块的主要功能是,接受并把策略模块发过来的买、卖指令封装并转发到交易所;同时,监督并确保策略买卖的完整执行。
    Python_量化交易实战_量化交易基础_第1张图片

三.Python 在算法交易中流行的原因

数据分析能力

第一个原因,是 Python 的数据分析能力。算法交易领域的一个基本需求,就是高效数据处理能力,而数据处理则是 Python 的强项。特别是 NumPy+Pandas 的组合,简直让算法交易开发者的生活质量直线上升。

大量专有库

除了强大的数据处理能力之外,Python 还有许许多多已经开发成熟的算法交易库可供使用。比如,你可以使用 Zipline 进行策略回测,或者用 Pyfolio 进行投资组合分析。而许多交易所也都提供了基于 Python 的 API 客户端。

便利的交易平台

第三个原因,是因为便利的交易平台。有一些算法交易平台可以执行自定义 Python 策略,无需搭建量化交易框架。算法交易平台,实际上等效于帮用户完成了行情模块和执行模块。用户只需要在其中定义策略模块,即可进行算法交易和回测。比如,Quantopian,就提供了基于 Zipline 的标准回测环境。用户可以选择 Python 作为开发语言,并且和社区的网友分享自己的策略。此外,国内也有诸如 BigQuant、果仁网等类似平台,提供不同市场和金融产品的交易。

广泛的行业应用

最后一个原因,则是 Python 本身广泛的行业应用了。目前,越来越多投资机构的交易部门,都开始使用 Python,因此也对优秀的 Python 开发者产生了更多的需求。自然,这也让学习 Python,成为了更有意义的“投资”。

你可能感兴趣的:(Python,python,区块链)