程序化那么神秘,究竟在做什么事情
比如計算好某個品種的價差,符合無風險套利,然后進行編程。當市場波動有先有后的時候,出現這種交易機會,馬上成交。其實這是在做價差或者某個比價的極值。目前這種交易方式在國內也有非常多。比如股指期貨的期現套利,比如一些商品的價差交易。
這種程序化交易的本質是速度。利用成交推送,100檔買賣盤提升交易速度,利用機器比人反應快,迅速在出現合適對盤價格的時候自動成交。原先有很多人手工做,現在他們都失業了。因為再快也快不過電腦。
但這種程序化其實缺陷也相當明顯:
A:沖擊成本高導致盈利瓶頸。很容易理解,市場出現極值的時候,很多都是來自于遠月合約或者是瞬間機會,如果運作的資金很大,那就會導致沖擊成本過高。換句話說,本身搶帽子就是在上下影線里掙點辛苦錢,資金量大,那個上下影線就都是自己打的了;
B:對硬件要求高。幾乎所有此類的程序化交易者都對線路的速度提出極高的要求。比如原先摩旗的軟件做期現套利,有些券商最初只能穩定在20秒左右完成300筆申報,而有些券商經過硬件升級,網絡提速,專用席位之后,可以把交易速度提升到4秒以內。
試想如果以這樣的機器去搶20秒才能完成報單的機器,是不是永遠成交主動呢?以前,有個華爾街回來的做高頻的,在國內某小期貨公司開戶,服務器上同樣的策略做內外盤套利,只有跟小期貨公司對接的國內盤不掙錢,因為差了幾百個毫秒。你沒看錯,就是毫秒。
C:因為有A的原因,所以搶帽子的程序化交易都會選擇盡可能多的策略來分散資金。這種類別的程序化交易幾乎是最簡單的程序化交易,他們的交易成功率很高,但是盈利不大。而且,一天出現幾千筆申報但只有有限幾筆成交,非常常見。
做交易策略
這一類現在越來越多,而且,在國內衍生品交易逐漸活躍的情況下,會更多。一旦有了期權,甚至期權的期權,那就會非常非常多。
先舉個最簡單的例子。
比如美油和布油。兩者都是油,相對就有價差區間。程序設計者會用數理統計的方法,把美油和布油的價差的波動區間計算出來,給出一個置信區間,比如99%。
即在99%的時候,美油和布油的價差波動是在某個區間之內,那么就認為這個區間就是這個價差的上下波動區間。當價差觸發上限的時候,做空這個價差,觸發下限的時候,做多這個價差。ICE交易所應該就有美油布油的價差合約,就是把這種策略做成的交易品種。原先的程序化就是時刻計算這個價差,然后在自己設定的區間上下限進行交易。完全自動開平倉。
有人就會問,這跟搶帽子有區別么?
光看布油和美油這個,好像都是搶帽子,區別就在于搶帽子是基于一些無風險套利的條件,因此搶帽子抓住了,就掙錢。而這個,布油美油的價差去年年中曾經到過20塊還多。其實挺可怕的,因為曾經有過美油貴啊。
據公眾號策略量化程序服務:得知這種交易策略都是基于一些相關聯品種,進行大量的數理統計運算,計算出概率。說白了這是個靠概率贏錢的游戲。但是也有一些弱點:
1、需要大量的策略。所有的策略都是基于大概率,但一旦發生不可測時間,俗稱黑天鵝,那這個策略立刻就不符合概率了(除非原先的置信區間設置的不敏感)。因此,一般來說,發生了突破上下限的時候,這個策略也廢了。
因此這需要大量的策略備用。2011年,我的一個朋友邀請我加入他們的量化團隊,主要是以A股和期指的對沖交易,希望我能夠負責策略提供。我知道當時他們有10多個交易員,每個人大致上負責上千萬甚至幾千萬的資金,專用一些策略。一旦他們的策略出現故障,立刻就需要有新的策略補上。我拒絕了,因為我深刻的知道朋友的痛苦:他晚上起夜上廁所估計都在想:要是10點半強勢弱勢對沖這個策略不行了的話,是不是可以考慮在下午2點半收盤前搞?
2、止損的問題:幾乎所有的非無風險策略都會面臨一個止損的問題,為什么我會在這里寫?因為這個基于數理統計的策略,止損實際上相當不容易做。假設是符合概率的,那應該做的其實并非止損,而應該在概率保護的情況下加倉。但又因為我們不能死,不能承受結果的話,哪怕發生的概率再小都不應該嘗試,所以這個度非常難以把握。
注意我沒有說宏觀出現什么什么。沒有說基本面變化了策略要變,沒有這些問題。都不需要這些內容。量化交易的核心就是觀察結果,對結果進行交易,而不是去交易原因。
這種量化的策略有明顯的好處,比如客觀,機械,可靠,而且可以容納相當大的容量。在這條路上走,最終比的還是腦子。因為所有的策略都是人想的。
輪到談談趨勢類的程序化交易。我一度非常癡迷。但這些年發現,還是人更可靠。
我相信每一個學習技術分析的人,都會憧憬,我們可以利用一些指標,劃幾條線,編一個程序,符合我們的買入標準就買入,符合賣出標準,就賣出獲利。多好。
我們在睡覺,機器在掙錢。聽上去很不錯。
我相信有一些A股大神也在販賣自己的程序,號稱一年收益率多少多少。其實我是不信的。因為如果我有這樣的一個程序的話,我會在屋里偷偷摸摸的運行,把全世界都掙到口袋里。但立刻就會有人反駁,我的程序你去跑,歷史回溯非常棒。是么?趨勢類的程序化交易最大的問題有幾個方面:
1、T+0:這是必須的。當天認錯權都沒有,怎么程序化?!融券規模逐漸變大之后,我認識的一個量化團隊,也是華爾街回來的,專門做融券,因為可以當天買券還。但是證券公司也很痛苦,他們成交量巨大,但是掙不到融券的費用。我又跑題了。sorry。
2、判定的法則:這是最關鍵的地方。很多忽悠人的人會說,你看,當價格上穿某均線的時候就買入……請住嘴。一秒鐘上穿,一秒鐘下穿就在這個位置來回晃,你怎么辦?這就是為什么所有的所謂回溯都很好的策略之所以好的原因:當你回溯的時候,你只看到了價格跟均線只交叉了一次,實際上,在哪天,可能交叉了無數次!
3、流動性:一個趨勢性的東西再好,也要有流動性支持。同樣的好策略,螺紋上非常棒,你去試試看早秈稻?
4、假如有人愿意把自己的交易體系做成程序,讓你順利的從頭跑到尾,那他為什么不自己做?而非要用程序呢?這其實是個悖論。所謂程序,不過是比人自己的約束力更強。也更機械。曾有一個期貨圈短線天王級人物在微博上感慨:“自己瞎雞巴做,再看看程序化交易死拿著螺紋的空單,是不是人要被機器廢了?”
你要是相信這真是他心里想的,那你就太天真了。因為他在日內,就會干掉機器。比如在某個關鍵的價位形態特別好的突破之后被他死死摁住,于是程序化們砍倉了,剛好成了他獲利平倉的對手盤。因為,機械就意味著死板,不懂應變。而這個市場,唯一不變的就是永遠在變。
除非有一天機器擁有自我進化的功能,不然人腦還是最牛的東西。
美國人在這幾年不斷在數據分析上做出重大的突破,比如云計算。這些最基本的思維也體現在了程序化本身。
在美國的投機界,每天會有無數計算機在分析人們的行為模式,在對某些重要的講話做關鍵詞剖析。這些分析,靠人腦臨場反應,可能需要相當長的時間,因為讀完USDA的報告,沒有1分鐘,是絕對不可能的!!有興趣的人可以再6月12日夜跟我一起看,看看在13日凌晨0點0分多少秒你可以反應出這個報告是多還是空。
機器能,即便機器的能是基于事先的分析原理設定,那看上去也比你隨口說一個字多或者空更科學。
因為事先可以制定一些閱讀標準,比如數據比較,比如某些關鍵詞。于是報告剛剛公布,瞬間就被一些機器讀出到底應該多還是空,于是程序啟動。
我們經常看到的美股分鐘圖暴漲暴跌,外盤黃金秒殺,都是這個因素。
很多傻X說這是超級大主力。我勒個去,我證明不了超級大主力一定不存在,你非要這么想,那就這么想吧。
最初這種交易模式相當精準。后來用的人多了,人們發現一個問題,那就是在初期如果你獲利不平倉,后邊就要賠錢了。所以,老手們其實都知道,這種基于某個人的講話的秒殺,一般前面走的都是錯的。比如暴漲,一會兒會回來的;暴跌,一會兒也會回來的。why?超級主力怎么搞的這么累?既然都能精準到定點打擊,為何不做的有些持續性?
這是因為那些力量就發泄那么短短一段時間。于是機器們自己也聰明了,我在前面第一個反應,后邊的兄弟們幫我推上去,我立刻就獲利平倉。
于是你會發現這樣的機器越來越多,于是行情越來越短。除非是真正的利空和利多,會有持續的資金進來表態,那時候市場的波動才有趨勢性。
這種模式中國人并不陌生。你沒看到巴菲特寫了一封信感激一下收到的免費西裝,于是這個公司連續好幾個漲停板。當年股改的時候,在第三批股改股公布之后,公布股改方案就意味著連續漲停板,大家都是這么反應的。
其實交易就是在研究人性啊~
延伸閱讀:如何建立一個好的程序化交易模型
針對一些對程序化不夠了解并且想了解的朋友,本文做了如下總結,希望能幫助更多的朋友,客觀合理的認識和選擇程序化交易,為自己的財富積累插上最適合自己的翅膀.
一. 程序化的理解
程序化一般分為兩類模型,一類是趨勢模型,一類是震蕩模型,如果你想兩者結合起來就要看自己的本事了,我的建議是程序化需要不停的去完美,但千萬不能追求完美,以下所說模型都是趨勢模型;
程序化一種工具,幫助你積累財富的工具,卻不是一種暴利的賺錢方式,程序化模型有好壞之分,程序化賺錢的前提是一個好的模型,程序賺錢的關鍵是堅持的執行,程序賺錢的精髓就是在確定最終使用模型之后,徹底的放棄你對金融市場的一切理解和交易技能.就像武俠小說里說的,想練成最上層的功夫,就應該先廢掉所有的武功.
二.程序化模型的選擇與辨別
如果有人告訴你他的程序化能在不長的時間內,讓你的資金翻幾番,那你要為他的言語或者他的程序打個折扣,但是如果對方又能拿出不錯的圖形或者非常漂亮的收盤測試結果放在你的面前,你又當如何說服自己是相信還是不相信?以下內容就是幫助你如何辨別好壞模型.
1. 測試時間:一個好的程序化必須經得起時間周期的測試,如果一個程序化,結果很漂亮,周期卻只有一兩個月,不可信;
2 . 使用資金:很多人貼出來的漂亮測試結果,使用資金常常是80%或者其它百分比,但這些都是不合理的選擇,因為金融市場資金管理很重要,在行情好時候,資金使用越高,收益越大,行情不好時,資金使用越高虧損越大,但我們無法去判斷接下來的行情會如何,所以,歷史測試的結果使用百分比的開倉方式是不合理,這也就是為什么,有時候會出現,資金使用率為80%是,測試結果是虧損的,而且使用率為40%時又是贏利的.總而言之,資金使用時應該選擇固定的手數進行測試,不管他的行情如何,永不加倉或減倉,來測試一個模型更為合理;
3、測試方式:開盤價和收盤價測試均有其不合理性,趨勢模型一般以趨勢逆轉點為開倉信號,故較為準確的是:出現指令價位。
測試結果的分析:
a.指令總數:也就是信號數,過高,說明震蕩行情過濾不好,過低,說明風險大;如何判斷信號數合理呢?那就只有不同的模型在同樣的周期下的一個對比了.還有一個最簡單的方式就是將 指令總數/有效交易天數 以日內短線為例,一般一個有效交易日的平均信號數在2-5之間(此數據僅供參考);
b.利潤率:總利潤不用看,只看扣出最大利潤的結果,必須為正,而且測試周期越長利潤率應該越大,很多模型,測近期不錯,測遠期就不行,所以測試時應該盡量的去測能測到的最長周期.(當然因為行情關系也可能出現,長期比短期利潤率低,但總體而言,周期越長利潤率越高,才是好的模型的測試結果)
c.正確率:其它條件都完全一樣的情況下,正確率越高自然越好,但也不用為了看到一個高正確率的模型而心動,也不用因為你自己模型的正確率低而擔心,一般的正確率能在45%左右,就不錯了,因為程序化的本來意義就是賺大虧小,在震蕩的時候正確率自然會低;
d.最大虧損率:如果你是選擇的固定手數,比如10手進行測試,你的最大虧損率最大應該不能超過10%,當然,如果你選擇的測試手數多,最大虧損率可能有所提高.如果你選擇的80%的資金使用率,可能虧損會更大,當然也會有虧損的不大的測試結果,這往往和你的測試周期中的行情的一定關系,所以不值得過于依賴;
e.空倉時間:以日短線為例,空倉時間不能太高,太高,必然會錯過大行情,當然,這一項不是最重要的,如果你空倉時間長,利潤也高,錯過就錯過吧,錯過不是過錯,沒賺到也不存在虧損的風險;小結:測試結果分析不能只看某一個數據,因為結合起來一起分析:指令總數不能多也不能少,周期越長利潤率應該越高,正確率45%以上就可以接受,最大虧損不能過大,空倉時間可以自行把握;
如果一個模型做到了以上幾點是不是就算一個好的模型了呢,基本上可以算了,但最重要的是我們還需要結合信號圖形(此點需要一定的程序化經驗,并不一定看上去好的模型就是好,當然看上去好是前提,如果看上去都覺得一般了,那肯定是不行)來分析,此外,還要看到模型里是否有未來函數,如果是日內短線,信號就一定不能消失,每天的跳空缺口需要技術性的回補等等其它問題都是分析一個模型好壞的理由,但是,一個好的模型是不怕任何測試與分析的.
三.程序化交易的執行
這一點沒什么好講卻又不得不講,很多有多年經驗的操盤手,甚至一些國內的金融公司,常常會對程序化交易提出一定的質疑,我就遇到一個期貨公司的老總,因為覺得程序化好,準備的資金,進行了程序化交易,首先我不知道他選擇模型的依據是什么,號稱只是因為人家是大公司,測試結果不錯,(如果是我聽到這樣的話,肯定不會很快的就認定他們的模型,因為我也見過某些(不方便透露)所謂大公司的程序化交易模型的原碼,說實在的,確實是**,理論基礎都無法說服我,但做出來的圖形要去迷惑一些想使用程序化的入門者是綽綽有余)結果這個老總使用該模型交易時,正好遇到一段時間的震蕩行情,可能是虧了不少吧,然后決定放棄程序化交易.
這就是一個典型的程序化執行的例子,程序沒有人性,我們在使用時就更不應該加入人性,如果你決定使用程序化就給自己一個時間期限(不管是真錢也好,模擬也好),時間不能太短,如果短也可以,必須在這段時間中,你要自己能分析出,是不是都能遇上基本上所有的行情,比如,測試三十天,遇到過十天的震蕩,也遇到了好幾天的大行情,以此來分析程序的好壞;絕不能因為幾次的使用結果不好而去否認程序化,也不能因為幾次的使用成功而完全信任,必須要有一定時間的觀察與模擬,然后再到真錢的嘗試,時間長短是小事,關鍵是是否經歷過大部分的行情,從而選擇一個最適合而不是最完美的模型進行自己的程序化交易;
一旦執行,你就應該忘記所有的金融市場的條條框框,你就是一個傻瓜執行者,聰明人在金融市場上不一定能生存,傻子在金融市場也不一定被淘汰.
總結:
以上經驗,只是本人對程序化交易的一點點心得,僅代表個人意見,如果您有別的看法,我們可以相互交流,也希望能幫到剛剛入門的朋友少走一點彎路.總之,沒有完美的程序化,不要懷有追求暴利的去使用程序化,做一個合理的模型,成為一個傻瓜執行者,你就能變成一個輕松的富翁.
財富的積累是一個過程,金融市場沒有不可能!善于總結你也可以成為交易高手!
拓展閱讀:
市面上經典的量化交易策略都在這里了!(源碼)
期貨/股票數據大全查詢(歷史/實時/Tick/財務等)
網格交易法,一個不容易虧錢的投資策略(附源碼)
配對交易—這個股票策略曾年賺5000萬美元
一個量化策略師的自白(好文強烈推薦)
總結
以上是生活随笔為你收集整理的程序化那么神秘,究竟在做什么事情的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何删除打开方式列表中的侯选
- 下一篇: Vue.js教程