量化交易


今天和一位好友聊天,我發現他對於量化、程序化、編程、代碼、算法、自動化交易的根本概念沒有搞清楚,遂寫一篇文章解疑釋惑。

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、結尾

有人問那么多情況一個參數無法解決啊(第一部分的問題),這就需要調參和利用枚舉以及遺傳算法篩選的問題,以后有時間再寫吧。

量化交易到底是什么?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM