banlanxiaoxue 2019-12-06
什么是量化交易?
为什么需要量化交易?
量化交易能干什么?
做量化交易需要什么?
? 量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式。便于理解的说,量化交易主要是做这样的事:
1、从一个灵感开始
灵感就是指那些你想验证的可能会盈利的方法,比如银行股可能是良好的投资品种、一旦跨过20日均线后股价会继续涨、流传许久的羊驼交易法等等。灵感获取的方式可以是阅读、听人说、自己悟等等。
这里我们以一个简单的情况为例进行讲解。比如你的灵感是这样的:
如果股价显著低于近几日的平均价,则买入 如果股价显著高于近几日的平均价,则卖出
现在,你想知道这样操作究竟会不会赚钱?
2、把灵感细化成明确的可执行的交易策略
一般灵感都很模糊,需要将其细化成明确的可执行的策略,目的是为了能得到确定的结果,以及为后续程序化准备。比如,你通过阅读了解到索罗斯的反身性概念,想将它应用到股市,这个反身性就很模糊,就需要明确什么条件下买卖,买卖什么品种,买卖多少量等,从而形成一个明确的交易策略,让不同人根据你的描述在相同情形下都能做出相同的操作。
继续以之前那个关于平均价的灵感为例:
如果股价显著低于近几日的平均价,则买入 如果股价显著高于近几日的平均价,则卖出
显然它是不够明确的。比如多低叫显著低于?多高叫显著高于?近几日究竟是几日?买入卖出是买卖多少?我们把它细化:
如果股价低于近20日平均价10%,则用全部可用资金买入
如果股价高于近20日平均价10%,则卖出全部所持的该股票
还有一点不明确的地方,买卖哪个股票呢?我们认为这个交易方法盈利与否应该跟交易哪个股票关系不大,但st股票除外(知道st股票是一类有风险特别大的股票就好,详情请百度),所以股票的选择范围是除st股外的国内A股的所有股票。所以我们进一步细化:
每个交易日监测是除st股外的国内A股的所有股票的股价 如果股价低于近20日平均价10%,则用全部可用资金买入该股票 如果股价高于近20日平均价10%,则卖出全部所持有的该股票
现在我们基本已经把之前的灵感细化成明确的可执行的交易策略。当然,可能还有些地方不够明确,也可能有些细节还不确定要改动,这些可以随时想到随时再改,不必一次做到完美。
3、把策略转成程序
就是把明确后的策略通过编程转成程序,好让计算机能根据历史数据模拟执行该策略,以及能根据实际行情进行反应并模拟交易或真实交易。
简言之,就是把刚刚的策略翻译成计算机可识别的代码语言,即把这个:
每个交易日监测是除st股外的国内A股的所有股票的股价 如果股价低于近20日平均价10%,则用全部可用资金买入该股票 如果股价高于近20日平均价10%,则卖出全部所持有的该股票
写成类似这样的代码(下面的代码并不完全符合,只是展示下大概的样子):
def initialize(context): g.security = ['002043.XSHE','002582.XSHE'] def handle_data(context, data): for i in g.security: last_price = data[i].close average_price = data[i].mavg(20, 'close') cash = context.portfolio.cash if last_price > average_price: order_value(i, cash) elif last_price < average_price: order_target(i, 0)
这样一来,就把刚才细化好策略转成了代码程序,计算机就能运行了。这个过程你可以理解成用计算机能听懂的语言(代码),把你的策略告诉给计算机了。
4、检验策略效果
5、进行实盘交易并不断维护修正
传统交易模式:
量化交易模式:
一些金融行业较为发达的国家,量化交易已经在行业内普及,占据的股市大部分的成交量。具体量化交易能做哪些事,咱来一步一步的推敲。
量化交易的价值有很多,只提下最突出的价值所在: