高频交易的思路模型简介

高频交易凭借其巨大的获利空间,已经席卷了欧美金融市场。根据美国的Alpha杂志,2009年2月的Aite Group报告就已经指出:在美国所有交易所的交易量中,高频交易已经达到60%的份额。

根据媒体报道,光大“乌龙指”事件也是其自营盘运行的高频交易程序产生错误,导致极端事件的发生。高频交易虽然已经频繁进入人们的视野,但是帮助投资者理解高频交易方法的资料却很少。下面,我将结合自己的经验和国内外文献,阐述高频交易的具体思路模型。

1.高频交易的介绍

1.1 高频交易的定义

高频交易是一种快速买卖的操作策略,通常时间以毫秒或者秒为单位。美国证监会文件给出高频交易的定义是:职业交易员操作适当的资本在一天之内进行庞大数量的买卖操作行为。(professional traders acting in a proprietary capacity that engages in strategies that generate a large number of trades on a daily basis)。

从定义入手,高频交易与低频交易的区别在于:是否通过大量快速的计算程序,对金融市场的变化进行最快速反应。根据频率周期,程序需要进行多次反复运算,执行快速交易的指令。相对于传统的资金经理的持仓周期,高频交易会每天进行大量买卖交易,几乎避免隔夜的持仓行为。虽然每次交易的收益有限,但是由于交易频繁,总体获利数目却仍然十分可观

高频交易的特点就是程序计算,反应快速,交易量巨大,持仓周期短于一天。国外著名对冲基金经理对于高频交易与低频交易的区别有过一个形象的比喻:如果金融市场是一个人的身体,高频交易就是人体的血液。高频交易通过不停的买卖循环供给市场氧气,修复伤口,保持恒温。而传统的低频交易,由于反应速度较慢,像是人体的肢体动作,对外界作出反应需要一过程。程序化交易的一种特例——高频交易,在全球金融市场中已经被运用到各种交易产品,特别是在股票,期货,期权等衍生品市场。而且已经逐渐取代人工做市(market maker),成为各大做市商的主要工具。

1.2 高频交易的优点

相对于传统交易的资金管理,高频交易拥有多种优点。例如:高频交易与周期较长的传统交易策略关联度较低,起到分散风险的作用。运用程序化计算,高频交易需要更短的时间来进行金融产品的估值。同时,高频交易由于对模型的信赖,减少了人工成本,同时也降低了人工出错的概率。

高频交易的运用,对于保持市场的有效性,增大交易所的交易量,稳定市场体系,都带来很大好处。但是,高频交易对市场造成的风险也成为西方学者争论的焦点。由于大量进行巨大资金的快速入场和离场,是否会带来市场的可操控性,甚至造成市场的集体崩盘都存在很大争议。对于2010年5月份美国股市闪电崩盘(flash crash),就有很多学者把原因归结于高频交易的使用。

在纽约,康涅狄格,伦敦,新加坡,芝加哥都存在很多著名的高频交易公司。坐落于芝加哥的高频交易公司,运用它们与芝加哥商品交易所(CME)近距离的优势,近年来发展了很多实用的期货、期权和商品交易的快速交易策略。国外比较有名的高频交易公司有Millennium, DE Shaw, Worldquant, and Renaissance Technologies等。

1.3 高频交易的挑战

高频交易的快速发展,带来了巨大收益的同时,也面临很多挑战。

第一,如何处理庞大的数据。与传统的当日指数不同,高频交易运用的数据(tick data)需要进行分割和重新组合。对于一个成熟的高频算法模型,至少要求两年以上的历史数据来进行验证。如何进行这些数据的管理是第一个需要解决的问题。

第二,如何得到有价值的交易信号。如果程序验证市场符合设置条件,就需要执行交易命令。对于交易条件的设置,需要对统计指标和预测价格的组合,每个模型一般都有其独特的指标设置。如果条件被错误确认,盈利可能瞬间变成损失。

第三,如何快速执行买卖命令。通过计算程序,自动进行买卖确认和执行是实现快速下单的唯一实现办法。从这次光大“乌龙指”事件中,也可以知道,程序化进行买卖同时需要一个可靠的风险控制体系。交易员在高频交易的重要职责就是监督指令的正确性,此系统是否运行在正常的风险界限之内。如果不是,选择合适的时间去停止这次交易。

2 高频交易的分类

高频交易的基本逻辑就是当Zk符合An条件的时候,执行Sn命令。当Zk不符合An条件的时候,执行下一步运算。所有的高频交易的计算程序都需要执行三个决定:是否买入,是否卖出,既不买也不卖。而根据程序运行的时间不同,也就是频数不同,将高频交易分为四类,分别为:自动流动性提供者,市场微观交易,事件交易,偏差套利。

关于频数的解释,可以通过下面的高频交易平台的显示进行解释: 

(数据来自于High-frequency Trading A Practical Guide to Algorithmic Strategies and Trading Systems)

由上表可以看出,频数为一个小时。

3. 高频交易的实施程序

 这一部分是高频交易的核心所在,也是高度保密的一部分。很少有从事高频交易的公司把自己的具体交易策略对外界公开。

目前主流的高频交易实施方法有两种:一是根据多种统计指标的变化,作为判断的依据。即利用程序的快速计算,得到平均数、方差或者其他的独特的指标进行组合,判断是否符合买单,卖单的条件,然后快速执行命令。这一部分是最基础的高频交易。

目前市场上比较流行的高频交易方法是,通过数学模型预测未来价格,当市场价格与预期价格出现偏差,立即做出判断,是否为大资金进场和离场,快速执行买入或者卖出指令。目前,由于第二种的收益率较高,大部分高频交易都采用第二种策略。

下面我将简单阐述一下第二种高频交易策略的步骤和思路

1. 根据市场情况,建立数理金融的模型,预测短期价格的波动。

首先,需要把历史数据进行有效分割。

因为每两个相邻的价格之间时间差是不一样的,需要根据kernels curve等技术,剔除极值,润滑曲线,把价格与时间的坐标图练成一条平滑的曲线。然后根据自己的频数时间,对相对应的价格进行相应提取。

然后,根据回归分析,把后一个频数的价格与前一频数的价格建立公式,得到相应参数。现实模型里面的对于价格的预测模型比较复杂,但思路都是一样,就是根据前一频数的价格得到后一频数的价格。

下面以比较简单的线性回归为例,进行说明。

" o:title="">

Pt 为时间t时刻的价格,Pt-1为时间t-1时刻的价格,A为影响价格的其他因素, parent.UploadError('lang[" erruploadinvalidext?]+?:gif|jpg|jpeg|bmp??);history.back()<="" style="word-wrap: break-word; margin: 0px; padding: 0px;">" o:title="">为残差, parent.UploadError('lang[" erruploadinvalidext?]+?:gif|jpg|jpeg|bmp??);history.back()<="" style="word-wrap: break-word; margin: 0px; padding: 0px;">" o:title="">和 parent.UploadError('lang[" erruploadinvalidext?]+?:gif|jpg|jpeg|bmp??);history.back()<="" style="word-wrap: break-word; margin: 0px; padding: 0px;">" o:title="">为回归得到的相应参数。

对于 parent.UploadError('lang[" erruploadinvalidext?]+?:gif|jpg|jpeg|bmp??);history.back()<="" style="word-wrap: break-word; margin: 0px; padding: 0px;">" o:title="">的估算,一般采用蒙特卡洛方法生成的随机数进行模拟。

最后,把参数运用于未来价格的模拟。当价格符合执行命令的条件的时候

拓展阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.市面上经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.干货| 量化金融经典理论、重要模型、发展简史大全

5.从量化到高频交易,不可不读的五本书

6.高频交易四大派系大揭秘

 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,我是AI语言模型,我不能提供实际的投资建议或交易模型。但是,我可以提供一些关于如何使用Julia进行高频交易模型开发的一般建议。 首先,您需要了解Julia的基础知识和语法。Julia是一种高性能计算语言,旨在提高科学计算和数据分析的速度和效率。它具有类似Python和MATLAB的语法,但具有类似C和Fortran的性能。 在编写高频交易模型时,您需要考虑以下因素: 1. 数据源 - 您需要选择可靠的数据源,并确保在实时或几乎实时的基础上获取数据。您可以使用像Alpaca或Interactive Brokers这样的经纪商API或数据提供商,或者使用像Quandl或Yahoo Finance这样的免费数据源。 2. 数据处理 - 您需要开发算法来处理和分析数据。Julia具有内置的数据处理函数,例如filter和map等。您还可以使用像DataFrames.jl这样的包来处理结构化数据。 3. 交易策略 - 您需要开发交易策略来决定何时买入和卖出。您可以使用技术指标(例如移动平均线)或基本面分析(例如公司财务报告)来指导您的决策。 4. 交易执行 - 您需要编写代码来执行交易。您可以使用Alpaca或Interactive Brokers等API来自动执行交易,或者手动执行交易。 5. 监控和优化 - 您需要监控您的交易策略,并对其进行优化。您可以使用像Plots.jl这样的包来可视化您的交易结果,并使用像Optim.jl这样的包来进行优化。 最后,您需要注意风险管理和资本管理。高频交易具有高风险和高回报的特点,因此您需要管理好您的风险和资本。您可以使用像PortfolioAnalytics.jl这样的包来帮助您管理风险和资本。 总之,编写高频交易模型需要深入的技术知识和经验。请确保您了解相关的风险和责任,并谨慎对待您的投资。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值