量化交易到底是什么?

量化交易到底是什么?

今天和一位好友聊天,我发现他对于量化、程序化、编程、代码、算法、自动化交易的根本概念没有搞清楚,遂写一篇文章解疑释惑。

1、首先,什么是量化交易呢?

百度定义如下:量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,进而交易的过程。

量化交易是一个很大的范畴,其核心是用数学模型或者说明确的交易规则指导交易,而不是纯主观判断。例如这就是一个量化的过程:

(1)思想:看见大阳线就买入

(2)量化过程:大阳线有大有小,何为大何为小?那么我根据历史数据通过计算机统计发现,该品种在当前时间框架下,K线实体是前一个K线实体的2.5倍的情况下就是大K线了。该统计经过了10年数据验证,具有统计学意义上的差异,所以我认为目前是可靠的。

(3)量化规则的创立:

只要是阳线,而且实体体积是前一K线实体的2.5倍,就买入。

量化,顾名思义就是数量化,就是把模糊的东西精确化,定量分析。聪明的你发现了一个大问题!这太局限啊,难道3倍5倍的就不是大阳线了,这太死板啊,我得错过多少机会啊。(我们后面解决这一问题)。

2、程序化

程序化是什么?程序化就是将思维通过算法编程进而上机的过程。这是一个很宽泛的概念,不仅是用来交易。你比如让计算机计算1+1:

思维:计算1+1

算法:

程序开始

声明变量a,声明变量b,声明变量c;

变量a赋值1,变量b赋值1;

计算a+b,并且将结果存储在变量c中;

输出变量c的值;

程序结束

编程过程(形成代码):(以C++为例)

#include <iostream>

using namespace std;

int main()

{ int a, int b, int c;

a=1;

b=1;

c=a+b;

cout<<c;

return 0;

}

然后上机进入IDE环境,调试,运行得到结果

这整个过程叫做把计算1+1程序化了

那么第一部分的量化交易规则如何程序化?

算法:

下载该品种10年数据;

计算前一根K线开盘价与收盘价之间的差值并取绝对值;

计算现在这一根K线开盘价与收盘价之间的差值并取绝对值;

将这二者相除,看看等不等于2.5;

等于就买入,不等于就不操作;

编程(形成代码以文华财经的MY language为例):

JDZ1:=ABS(REF(CLOSE,1)-REF(OPEN,1));

JDZ2:=ABS(CLOSE-OPEN);

FLAG:=JDZ2/JDZ1;

FLAG=2.5 && ISUP,BK;

(这只是示范,照此操作必赔无疑!)

然后上机回测得出结果,看是否符合预期。

这样就把大阳线策略程序化了。

3、总结

程序化的核心是算法,也就是如何把交易思维转化为计算机能懂的编程语言,至于用什么语言是C++还是python,还是R那都不是最重要的。你看到那些一大段一大段的计算机IDE内英语叫代码,那不是程序化,你看到的BK(下单指令),也不叫程序化,也不叫量化交易,那只是一个很小的过程!运行这段代码下单获得收益那叫自动化交易,也不叫程序化也不叫量化,量化和程序化既有交集也有区别,现在你明白了么?量化交易是整个过程而不是某一个步骤!

4、结尾

有人问那么多情况一个参数无法解决啊(第一部分的问题),这就需要调参和利用枚举以及遗传算法筛选的问题,以后有时间再写吧。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes