它能讓你的交易效率提升百倍,量化交易之於傳統交易方法,如同大型收割機之於鋤頭鐮刀,機槍大炮之於刀劍棍棒。python
也就是是說,傳統交易方法是這樣的 而量化交易是這樣的:
程序員
量化交易是指藉助現代統計學和數學的方法,利用計算機技術來進行交易的證券投資方式。便於理解的說,量化交易主要是作這樣的事:編程
靈感就是指那些你想驗證的可能會盈利的方法,好比銀行股多是良好的投資品種、一旦跨過20日均線後股價會繼續漲、流傳許久的羊駝交易法等等。靈感獲取的方式能夠是閱讀、聽人說、本身悟等等。工具
這裏咱們以一個簡單的狀況爲例進行講解。好比你的靈感是這樣的:學習
若是股價顯著低於近幾日的平均價,則買入 若是股價顯著高於近幾日的平均價,則賣出
如今,你想知道這樣操做究竟會不會賺錢?spa
通常靈感都很模糊,須要將其細化成明確的可執行的策略,目的是爲了能獲得肯定的結果,以及爲後續程序化準備。好比,你經過閱讀了解到索羅斯的反身性概念,想將它應用到股市,這個反身性就很模糊,就須要明確什麼條件下買賣,買賣什麼品種,買賣多少許等,從而造成一個明確的交易策略,讓不一樣人根據你的描述在相同情形下都能作出相同的操做。翻譯
繼續以以前那個關於平均價的靈感爲例:code
若是股價顯著低於近幾日的平均價,則買入 若是股價顯著高於近幾日的平均價,則賣出
顯然它是不夠明確的。好比多低叫顯著低於?多高叫顯著高於?近幾日到底是幾日?買入賣出是買賣多少?咱們把它細化:blog
若是股價低於近20日平均價10%,則用所有可用資金買入 若是股價高於近20日平均價10%,則賣出所有所持的該股票
還有一點不明確的地方,買賣哪一個股票呢?咱們認爲這個交易方法盈利與否應該跟交易哪一個股票關係不大,但st股票除外(知道st股票是一類有風險特別大的股票就好,詳情請百度),因此股票的選擇範圍是除st股外的國內A股的全部股票。因此咱們進一步細化:get
每一個交易日監測是除st股外的國內A股的全部股票的股價 若是股價低於近20日平均價10%,則用所有可用資金買入該股票 若是股價高於近20日平均價10%,則賣出所有所持有的該股票
如今咱們基本已經把以前的靈感細化成明確的可執行的交易策略。固然,可能還有些地方不夠明確,也可能有些細節還不肯定要改動,這些能夠隨時想到隨時再改,沒必要一次作到完美。
就是把明確後的策略經過編程轉成程序,好讓計算機能根據歷史數據模擬執行該策略,以及能根據實際行情進行反應並模擬交易或真實交易。
簡言之,就是把剛剛的策略翻譯成計算機可識別的代碼語言,即把這個:
每一個交易日監測是除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)
這樣一來,就把剛纔細化好策略轉成了代碼程序,計算機就能運行了。這個過程你能夠理解成用計算機能聽懂的語言(代碼),把你的策略告訴給計算機了。
如今計算機理解了你的策略,你如今能夠藉助計算機的力量來驗證你的策略了。基本的檢驗策略方法有回測和模擬交易兩種方法。
回測是讓計算機能根據一段時間的歷史數據模擬執行該策略,根據結果評價並改進策略。繼續以前的那個均價的策略例子的話就是這樣的:
設定初始的虛擬資產好比500000元、一個時期好比20060101到20160101,把這一時期的各類數據如估計股價行情等發給計算機,計算機會利用這些數據模仿真實的市場,執行你剛纔告訴它的策略程序。最後最後計算機會給你一份報告,根據這個報告你就會知道,在20060101的500000元,按照你的策略交易到20160101,會怎樣?通常包括盈虧狀況,下單狀況,持倉變化,以及一些統計指標等,從而你能據此評估交易策略的好壞。
若是結果很差,則須要分析緣由並改進。若是結果不錯,則能夠考慮用模擬交易進一步驗證。
模擬交易是讓計算機能根據實際行情模擬執行該策略一段時間,根據結果評價並改進策略。與回測不一樣,回測是用歷史數據模擬,模擬交易使用實際的實時行情來模擬執行策略的。舉例就是這樣:
可見,回測是用歷史數據模擬執行策略,模擬交易是用將來的實際行情模擬執行策略。若是策略在回測與模擬交易的表現都很是好,你能夠考慮進行徹底真實的真金白銀的實盤交易。
進行實盤交易並不斷維護修正
量化交易的價值有不少,只提下最突出的價值所在。
能夠利用大量歷史數據檢驗策略,效率提高百倍。當咱們想驗證交易策略的時候,一個基本的想法是想知道它在歷史上表現如何,這每每須要大量的歷史數據與計算量,量化交易作一次回測可能幾分鐘就能夠獲得結果了,相比於傳統人工作法效率的提高是成百倍的。
更科學更客觀的衡量交易策略的效果。好比一個關於某技術指標的策略,人工的進行了10個交易日的驗證,效果都不錯,但這就能說明這指標不錯嗎?不,10次太少了,你須要更多的驗證,好比1000個交易日,人工驗證不可行,量化交易則又快又準。並且量化交易還能夠利用數學與統計學自動給出客觀的結果,好比年化收益率、最大回撤率、夏普比率等。
全市場實時捕捉交易機會。當你知道一個盈利條件,當股價一旦知足這條件,你就能夠操做盈利。問題是,市場幾千個股票,股價時時刻刻都在變更,你能盯住幾個,你會錯失多少個機會。但量化交易能夠利用計算機全市場實時盯盤,能夠不錯過任何交易機會,加倍你的盈利能力。
更多的盈利機會。量化交易能夠利用計算機對海量數據分析獲得常人難以發現的盈利機會,並且有些機會只有量化交易才能利用。好比你發現一種交易方法,其特色是盈虧的額度相等,但盈利的機率是55%,虧損機率45%。首先這種小差距的機率規律,非量化交易不能發現,其次,要利用這個規律盈利須要大量次數的交易才能穩定盈利,這也非量化交易不可。
一般一個投資者作量化交易所須要作的準備,就如同讓一個農民本身去造一個大型收割機,並且仍是從挖礦開始作起,極度困難,因此量化交易最初在金融與科技最爲發達的美國由少數頂級精英發起的。
要有各類數據。要有能方便使用的各類投資相關的數據。這要考慮到各類數據的收集、存儲、清洗、更新,以及數據取用時的便捷、速度、穩定。
還要有一套量化交易的系統,要有能編寫策略、執行策略、評測策略的系統。這要考慮到系統對各類策略編寫的支持、系統進行回測與模擬的高仿真、系統執行策略的高速、系統評測策略的科學可靠全方面。
可能有人會問,作投資以前難道要學當程序員嗎?曾經是,但如今量化交易的門檻已大大下降。
聚寬是一家量化交易平臺,爲投資者提供作量化交易的工具與服務,幫助投資者更好地作量化交易。也就是說,在聚寬量化交易平臺,「大型收割機」已經爲你準備好了,不須要你本身造了,你只須要學會使用它。