您现在的位置: 比特财富网 >> 财经 >  >> 外匯
章位福:程序化交易改變了我的人生命運
歡迎訪問 外 匯 邦 WWW.WaiHuiBang.com 章位福:期貨程序化交易高手。www.emoneybtc.com江西人,早年在福建打工,現居浙江。網名“我是傳奇”,CCTV證券資訊頻道《期貨時間》期貨兵器譜實盤展示賬戶“倚天劍”打造者。少年時因家境一貧如洗,初一下學期就辍學,做了一年多陶瓷工後改做理發師,經過12年時間的努力,白手起家,從一名普通的理發師成長為38家直營連鎖美發店的老板。2003年開始接觸股票投資,2009年底參與期貨交易。通過努力自學和參加相關金融培訓課程,2010年實現了期貨程序化自動交易,至今累積盈利收益超過500萬。

精彩語錄:

自從有了程序化,我的人生命運就改變了。
我虧錢主要的原因:第一個是滿倉交易;第二個是品種單一;第三個就是手工交易;第四個是沒有可靠的歷史數據。
虧錢不是壞事,只要正確面對它能夠總結出經驗來,那一定是好事。
我賺錢的主要原因:第一個是資金管理;第二個就是順勢交易;第三個是多品種、多策略、多周期的一個組合;第四個就是執行。
在我的交易裡面我只看兩點,第一個就是最大回撤,第二個是總贏利除以總虧損,作為兩個重要的考量指標。
我通常用的是周期突破,均線交叉,波動性特征這些作為一個程序的一個主要的思路。
我認為只有堅定的執行策略才能完美的運行。
只有你堅定執行,那我們這樣的策略,你的歷史測試才算數,就是說你的信號才能夠成為你真正的帳戶裡面的錢。
贏利加碼我想這是我做的很重要的一點,能讓我活下來的很重要的一點,就是當有了利潤以後,我拿市場的利潤去賭。
(挑選商品的標准)找到全市場裡面成交量,就是成交金額最活躍的,還有波動性最大的。
我們在做程序化最大的一個敵人,我認為很多人都會知道就是“滑點”。
所以我們做程序化交易一定要畫曲線,曲線能說明問題。我們的個人的感觀,它是客觀的,它不能說我們就一定是對的或錯的,但是曲線畫出來了,那它就是事實。
在我的資金管理裡面是如果資金回撤了15%,我一定要采取保守的方法來做。
我很遵循一句話,叫做利潤是被動的,是靠行情給的,但虧損我們是可以主動的,我們可以控制的。
我覺得我們應該要仔細研究資金曲線,因為這是最真實的。
程序交易者的必備條件:第一,我認為自己必須精通編寫程序;第二,我覺得程序交易員必須要有一個詳細的實盤數據;第三是計劃交易,執行計劃;第四個我認為在寫程序的過程中一定是化繁為簡;第五個精細化控制,細節化、精細化。
這個(編寫程序)是必須要自己精通的,不然的話,讓別人永遠寫不出你自己想要的,或者說找不到你自己的靈魂。
你的資金曲線代表了你的所有的交易行為。
資金回撤我的最大容忍范圍是30%,如果虧掉了30%我這個主帳戶必須停半年不交易,這是我的原則。
你只有持續不斷的去吸收別人的東西,那麼你才能夠去有一個台階提升。
你的邏輯是簡單的,是精簡的,但是你控制的語句一定是精細的。
虧自己認為虧的明白的錢,賺自己賺的明白的錢。
投資組合的一個最大優勢是贏利是相加的,虧損是相互抵消的。
我總結起來認為最終可能還是加倉策略最穩定,市場怎麼再殘酷,使用加倉策略,不可能虧的太多。

章位福:大家下午好,今天講這個課壓力非常大,在座的有好幾位曾經都是我的老師,我們的李凱老師,今天看到你來真的是壓力更大了。還有我們的張老師,都是以前我在學程序化這條路上面不可缺少的貴人,我覺得對我的幫助真的是蠻大的。我也沒有文绉绉的話,我可能說的相對來說俗一點,那講的也不是多少的真理,但是我遵循一個就是真實,就是講我的過程,這樣的話可能會更好一點。
先做個自我介紹,我是來自中國的最大一個村,叫農村,14歲出道,因為讀初一上學期,讀完一個學期以後下學期就學費不知道在哪裡,14歲就出來了。15歲在廠裡打工,到17歲就開始選擇做美發,做個剃頭匠,那時候想想反正是沒出路了,只有做理發。到了18歲學了一年時間,我想想還是搞個店,自己花了8000塊錢搞了個小店,完了以後就在自己做。那我這個人相對來說認定一個方向以後,會不斷的計劃過去,從18歲一直到今年,也算是30出頭,就是30歲,12年了,那理發的話從8000塊錢,從第一個月836塊錢的業績,一個月業績做了836,到了今年,我們已經有38家分店了。大概今年我們預算的話,大概全年的營收將近會在4200萬左右,去年是2000多萬,相當於就是我們成長百分之六七十的樣子。
這是我的一個實業上面的,當然我做投資也不是全職在做,也是兼職,所以今天講的話,各位講的不好,多多包涵。做投資是這樣子的,我之前是做股票的,那做股票是就是很業余的在做,就是買進去不看了,買了一支中國平安,從116塊錢一直開始買,買到60幾塊錢還在買,均價在68塊錢,最後一路跟下來跟到19塊8,是這麼一個情況。後來就接觸到了程序化,是在09年的時候接觸到程序化。
 
自從有了程序化,我的人生命運就改變了。接下來我們從09年講起,這是我在做的一個貼子,這個是第一個帳戶,入金了5萬塊錢,第一天就干到了35000,第一天的數據沒有,所以從35000開始做記錄,一天就虧掉了15000塊錢,為什麼呢?就是因為文華的那個,用文華做的。我開始滿倉,因為文華有一個指令叫測試,一測試任何一個模型進去,都是一條曲線,好直啊,覺得是找到了聖杯,就開始猛倉干,第一天就虧掉了,虧完了之後開始反省總結。最後跑到文華公司去學習,上培訓班,學了一個禮拜。之後就開始用手工來做,那個時候還不會用程序,總結下來做到最大虧損是22%,那我就覺得好像不行啊,我就總結了一下,這個帖子應該在文華論壇上還是找的到。那時候我是堅持發帖,因為是找問題,我總結了一下,虧錢我覺得主要的原因是什麼呢?第一個是滿倉交易,倉位很重,那時候3萬多塊錢我做螺紋鋼基本上是滿倉,那個時候我在論壇上面寫的是說,大概還有兩個月時間我就寫目標了,我說我的目標是過年春節前收益30%。所以太盲目了,完了以後覺得自己是有一個聖杯放在手上,勝率都很高,反正就是都能賺錢,那其實現在反過來看,這是很錯誤的一個想法;第二個就是品種單一,那個時候是只做螺紋鋼的;第三個就是手工交易,因為那個時候程序自動化還真不會寫,那怎麼辦呢?那就開始劃線,達到這個條件以後,我就開始買入,但是在極端的行情過程中,根本是來不及做開平倉的。你看到價格以後你再去掛單、填單、買入,真正掛進去的時候如果在極端的過程中,你是掛不進去的。掛進去價格已經早遠離了,你再撤再掛那就離的很遠了。所以這個其實是很有錯誤的;還有第四個是沒有可靠的歷史數據,只做手工統計,後期才知道誤差非常大,那個時候激情是蠻好的,用手工在做,厚厚的一個本子,基本上都統計完了。從上證300開始統計,之後再開始統計期貨,那個時候我印象很深的是什麼?就是期貨還沒接觸就做股票,那股票就是有這樣的一個想法,上漲5%我就給它買進去,當它采用的跟蹤止損,跌了5%我就把它賣掉,這個想法讓我走到了程序化這條路上來,那個時候就是我找我的外甥,我計算他記,從1992年開始算,一直算過來,感覺收益挺好,那後來才知道這裡面還沒有加誤差,就是滑點沒加,手續費沒加,還有一個就是日內波動這塊的高低點沒加,相當於就是程序裡面的未來函數。所以我總結的這四點對我第二個交易帳戶幫助蠻大的,脫離了之前的那種很盲目樂觀,滿倉心理的交易了。有這個經歷我覺得蠻好,虧錢不是壞事,只要正確面對它能夠總結出經驗來,那一定是好事。


 


這條曲線不是很漂亮,是從2010年5月份到昨天的數據。可以看到這一段做的非常不好,但是我保持了一個真實性,今天在這裡不是帶多少方法給各位,我覺得還有我的總結的一個失敗的經驗。總體來說還是有利潤的,我總結了一下賺錢的主要原因,第一個就是資金管理,我覺得如果說一個帳戶我們要想把帳戶做到贏利,我覺得資金管理是應該排在第一位的;第二個就是順勢交易;第三個是多品種、多策略、多周期的一個組合;第四個就是執行。從開始到這個過程中我認為賺錢的主要的因素。那什麼是資金管理?就是在我的交易裡面我只看兩點,第一個就是最大回撤,第二個是總贏利除以總虧損,作為兩個重要的考量指標。最大回撤可以看到在這一段最大回撤是多少,就是從這個位置到這個位置,最大回撤是22%,剛剛達到在這個位置。第二個就是趨勢交易,那現在在做的話就是相當於趨勢發生的必經之路,我通常用的是周期突破,均線交叉,波動性特征這些作為一個程序的一個主要的思路。第三個的話是多品種、多策略、多周期的一個組合,那它主要的作用是能平滑資金曲線,提高資金的一個使用率。第四個就是百分之百的執行,我認為只有堅定的執行策略才能完美的運行。很多人就是在執行的過程中容易出現一個問題就是今天不執行了,明天不執行,這種容易出現一個問題是什麼呢?可能是說一虧錢你覺得就產生恐懼,你可能停一天,當你停了一天以後,你覺得確定那一天確實讓你少虧了。但是經常發生這種事情,容易出現一個什麼情況?就是大行情也未必能抓得到。雖然事後你看到這個信號是發出來了,但是好像跟你真實帳戶是沒有關系的。


 

在我執行的過程中,我從這邊到這裡有一個例子,就相當於在這個位置,前期大概我只有兩到三次是沒有100%執行,後面都是100%執行。就是盤中我從來不去干預它,為什麼呢?因為印象很深的有一次在這個前面這個位置,那個時候股指還是蠻好做的。開進去以後,開始波動,波動很大,往上漲,那我是做多的,看到賺錢了,那個時候盯著盈虧數據心會跳的。往上上去以後,一會又下來了,打到哪裡呢?打到我的成本價,迅速又往下,打到哪裡了?打到虧的比較多。差一點點打到止損,那個時候我在想,還好,還好沒打到止損,上去了,上去以後賺了一點點,我成本價上賺了一點點。那時候我心裡就很糾結了,我在想要不要平,如果下去了我現在平我就賺了。那個時候就一狠心就平掉了,平了以後後來的事情就發生了。發生了什麼?就是價格波動了兩下,還好,下來了,後來“咻”一下子一個大漲,就相當於造成了一個什麼?看程序那天是賺了很多錢,其實那天我並沒賺錢。那次給我重大的反省就是我再也不能干這種蠢事了。那個時候我有個習慣就是每天都貼圖,貼在哪裡呢?就是文華論壇裡面,那我就在那個論壇帖子上發誓就是從今以後我再也不犯類似的蠢事,因為有了那個發誓,我接下來基本上沒有碰到過手工干預,但是這是第一次教訓。第二次,也有個手工干預,大概在這個位置,當然那個手工干預原因我覺得很正常,就是我給自己定了一個目標,我說等我的帳戶有贏利了,這個大帳戶有贏利了400萬的時候,給我自己一個小獎勵。完了以後那天剛剛好,達到了400萬的贏利,那個時候我就想,要不要平呢?不平就沒了,那個獎勵沒了,後來就糾結了半天,我說好,那今天就平吧,我就找我那個助理說,平掉,一平少賺了幾十萬,又沒了,那次少賺幾十萬我覺得沒有什麼糾結的,因為這個屬於一種比較平淡的一種過程,但如果說像前面這種的,我認為是很不正常的。就是很看中贏虧的時候,程序賺了一點的時候就心裡會跳的,虧了一點心裡會跳,那麼我覺得做程序化可能未必是好事,所以我們最終必須要做到一個是百分百執行策略。只有你堅定執行,那我們這樣的策略,你的歷史測試才算數,就是說你的信號才能夠成為你真正的帳戶裡面的錢。還有一個我覺得就是行情配合,我覺得從2010年5月份到現在的贏利,我認為不是說我的策略有多好,最關鍵的就是可能我的運氣比較好一點,選擇了做這個品種,換句話說,這個品種它還是有一定的行情。那麼這種情況,我們只能說是有行情我們就賺錢,沒行情那我們就認虧呗,是這麼一個理解。
所以我總結起來我們有五點。第一點就是資金管理;第二點就是趨勢策略;第三點就是多品種、多策略、多周期組合;還有一個百分百執行;最後是市場行情配合。雖然這條曲線從A到B是贏利的,但是這個過程其實是蠻艱辛的,走的是一步一個坎,一步一個台階。我著重講一下我的這條曲線的各階段的分析。這對我來說,我也經常拿出來復習,來檢討自己,其中做的對的地方和錯的地方。這是我的第一個階段,就是從這邊有一個陰影處就是從這個位置,從A到B這個位置,是我第一個階段,這個階段是一個什麼樣的特征呢?是單策略單品種,重倉交易,順勢交易。從這個位置我是20萬開始做的,做到賺了四、五萬塊錢我就加了一筆資金,這樣一步步做上來,相當於就是20萬一手,那時候股指的話還是比較高的,波動比較大一點,但是還是遵循一個順勢交易理念。那個時候應該說股指還是非常好做的,可能做的人就知道。這個階段給我一個重大的啟發是什麼?因為我在做第一個階段的時候,容易出現一個問題是你辛辛苦苦做的有點贏利了,但是碰上一個大的震蕩過程又把你的利潤立馬就打掉了。而且你防守很不好,容易大起大落。那我在第二個階段做的一個思考是什麼呢?增加了一個多策略,從一個策略我就想辦法給它增加到兩個策略。那個時候還是只做股指。但是後來因為資金量稍微大了一點,就開始做贏利加碼。贏利加碼我想這是我做的很重要的一點,能讓我活下來的很重要的一點,就是當有了利潤以後,我拿市場的利潤去賭。相當於我在A點買入一手,那B點如果它價格往上漲,漲了多的時候再做一手,再往上漲再做,一邊加一邊加,最多可以可以加10到15手,如果說出現一個大行情,那我一定是能大賺的,如果是處於一個震蕩的,那我一定是小虧的。所以在這個階段讓我的曲線平滑了不少,雖然2011年的這個行情並沒有2010年好做,但是我曲線應該說是比2010年要好看一點,那個時候就關注一個回撤的一個關系。
在這個階段,我在這個過程中又增加了一個多品種,那時候我開始做商品,商品的話是由一個簡單的趨勢策略,同時加載在十個商品裡面,這十個商品的標准是什麼呢?找到全市場裡面成交量,就是成交金額最活躍的,還有波動性最大的。那我們把全市場的品種進行評分,評出來大概有十個靠前的,那就只選這十個,完了之後還是用贏利加碼,策略的互補分類、順勢交易,這是我的第三個階段。
第四個階段,又有一個改進,就是多策略、多品種、贏利加碼改良。贏利加碼改良是一個什麼概念呢?就是之前的贏利加碼,相對來說是簡單的,就是相當於間隔的加碼,比如說漲5個點就加,漲10個點就加,相對來說條件單一一點。那個時候我在想,現在的趨勢的話,好像越來越少了,那我加倉的速度是不是要快一點,還是要慢一點。考慮到很多問題,之後把N個條件組合在一起,如果達到A條件,我也加倉,B條件也加倉,C條件我也可以加倉。那後來又想到一下子加了那麼多的倉位下去,加的那麼快,如果它出現一個反向,那我不是會虧的很多嗎?那我後來又增加了一個贏利減倉,如果說價格朝我不利的方向,走的過程中,如果達到某種特征或者某種幅度,那我就要減多少。
那麼這也就是我在做的這個階段,還有一個就是市場沖擊完善,什麼是沖擊完善呢?就是我們在做程序化最大的一個敵人,我認為很多人都會知道就是“滑點”。“滑點”這一塊,那我在找什麼,我在找如何改良“滑點”,那可能是說誰的速度快,誰就占優勢。這是一個因素,那麼就把我們的交易放到張江去,還有一個是什麼呢?其實我總結了這麼長時間,今年可以說沒有什麼收獲,唯一的收獲就是“滑點”收獲。“滑點”現在我們的實盤是按什麼來測試的,各位做股指的可能應該都知道,通常如果說測試的話,大家認為多少比較合理?萬分之一手續費,可能有的人都擋不住,對不對,那我現在實盤的話是按照萬分之零點零五。而且其中一個帳戶每天都有正滑點,就相當於萬分之零點五的手續費來測,我每天還比測試報告上的贏虧還要多賺一點。我覺得這個是今年最大的收獲,其他的沒啥收獲,當然也有失敗的經驗總結。所以市場沖擊成敗我覺得是有可能實現的。
這個階段是今年,第一個叫做主動增加帳戶波動,那為什麼有這樣一個想法,因為有一次我和我兄弟去重慶那邊學個金融課,學習的過程中,我們討論了一下,我們說我們這輩子的交易人生或者我們的人生要怎麼走?後來最終得出來一個結論是保證小康生活的前提下,進行創造一些傳奇性的業績。當然我們在做的過程中,因為有實業支撐,所以對我們來說相對來說就去尋求一些波動。我們說前面波動的太平穩了,2012年我最大的一天虧損只有1.9%,那麼到2013年的這個位置,主動增加了以後通常看到是二點幾,那現在看來這個未必是對也未必是錯,我認為只能是保持中性的看法。還有在這個階段還是繼續做什麼呢?多策略的、多品種的,還有一個叫加減碼的進出點的一個精細化控制。這個就是又圍繞著這個市場沖擊完善的進一步的去研究和深化。
還有一個就是逆勢策略的對沖交易,那現在看來這個逆勢策略很不好,因為那個時候我的逆勢策略大概研發了兩個,兩個主的逆勢策略,其中一個上的比較早,之前的曲線很漂亮,完了以後,根據我的原則是少量實盤,一手做,做的時候很神奇,做了實盤裡面也很賺錢,賺了大概五六萬,同時順勢趨勢又在天天虧錢,而它在天天賺錢,我想這個可以,後來加倉,好像是加到五手加完五手以後也是這樣的,平平平平,沒怎麼賺,剛開始賺一點,開始慢慢的弱化,弱化到後面,就開始虧,最多的時候是從高點到低點,大概虧了八九萬,最近又在賺錢了,但是現在跟我沒有關系了。我從一手到五手,只是一手做賺了五六萬,七八萬這個樣子,再從五手做虧到七八萬,對我來說這個經驗教訓是蠻大的。我覺得實盤過程中是應該是反思這些問題。另外一個策略也是一樣的,從一手、三手、五手、八手,再從八手、五手、三手,不做,這段的資金為什麼回撤這麼快,最大的一個原因就是我在逆勢的一個策略裡面加了比重偏高,而且是天天的回撤,就是日回撤會比較大一點,所以導致了這個回撤的問題。而且在這個過程中是不再以順勢做為唯一的一個交易理念,那個時候覺得總算找出了一個就是沒有趨勢我也能賺錢的方法,總算找出來了,結果現在你看看資金曲線。所以我們做程序化交易一定要畫曲線,曲線能說明問題。我們的個人的感觀,它是客觀的,它不能說我們就一定是對的或錯的,但是曲線畫出來了,那它就是事實。
這個階段是什麼呢?回撤達到了15%,就是我的這個主要帳戶回撤達到15%,那我只能干嗎?只能將這個帳戶最高的倉位就是48手股指減到原來的20手,這個階段的20手,那沒辦法,因為在我的資金管理裡面是如果資金回撤了15%,我一定要采取保守的方法來做。第二個我總結一個回撤的原因,那回撤的主要的一個原因就是增加了一個逆勢交易,而且倉位是逐步增加的。盈利的時候,加倉是沒錯,但是失效過快。趨勢策略它應對這個行情的特性會比較的持久一點。而逆勢的策略的話它應對的這種東西會比較容易失效,還有一個是在市時間會偏長,那麼這種就是導致了一個最大的回撤。第三個,采用了一個大道至簡的策略,那主策略是什麼呢?就是只有兩句話,我現在在做的只有兩句話來做主策略。之後第四個是暫停倚天劍的策略加後期改善,這是我在這個階段采取了一些動作或者措施。在從我們這個階段到下一個步驟,這個帳戶達到了22.5%,將原來20手倉位一路減,減到11手。那也就是說我現在只做11手股指,每天的波動就會變得比較的小一點,現在沒有辦法你如果用很大的倉位在做,出現一個問題是什麼?那肯定就是離我們的破產線更快。我很遵循一句話,叫做利潤是被動的,是靠行情給的,但虧損我們是可以主動的,我們可以控制的。所以在這裡必須得做這個動作,減倉。第二個將原來十個商品減到六個,並且在200元的變動單位減至100元。這個是什麼概念,大家可能不是很清楚,相當於減了多少倉位呢?10個品種我現在只做6個,就減掉4個,還有把兩百塊錢的變動價位,因為我做倉位我不是按照說多少保證金,因為保證金是不算數的,我是按照變動價位,什麼意思呢?比如說銅,它一跳是50塊錢,那200塊呢?那我們應該配4手銅。如果說焦炭200塊,那我們這邊只配兩手焦炭,是按變動價位的,那如果說我們在加波動性特征的話,可能會更均勻一點,目的是讓這個比重,讓它們平均化,這樣有一個更好的對沖效果。第三個是增加過濾機制,為什麼增加過濾機制呢?因為目前的帳戶是虧損了22.5%,所以必須要減少在市的時間,這是我現在在采取的一個動作。所以剛才的這個曲線就是我們這個曲線看起來就是一樣的,但是總結起來它是有很多步驟的或者很多階段來完成的。所以做出這條曲線,是很艱辛的一件事情,它絕對不是從A到B,就用一個方法,就這樣做了,那不可能的,如果我用A的方法從這個步驟我就不完善,那到現在早破產了。所以我覺得我們應該要仔細研究資金曲線,因為這是最真實的,如果資金曲線這一塊沒有的話,那你只是憑你腦子覺得什麼是對什麼是錯,那這種容易出現主觀,比較主觀。
接下來我們再講一下我個人認為的程序交易者的必備條件。第一,我認為自己必須精通編寫程序。為什麼這樣講呢?因為很多不會的人,經常有QQ的網友跟我說,你會編程嗎?會程序化?你那套程序能不能賣給我?他希望什麼?他希望一個程序為它賺錢。這種容易出現一個問題是什麼?容易出現就是你根本不知道原理,你怎麼可能讓它在你的賬戶上做呢?在我觀念裡面,我虧錢也要虧的明明白白,在什麼樣的情況下我虧錢,在什麼樣的情況下我賺錢,那程序它只不過是什麼,只是替我執行我的思想而已。那為什麼要自己精通呢?因為比如說你旁邊有一個朋友,他能精通,你把你的思路交給他來寫,那有的人覺得你自己是聖杯,我的邏輯那是不可洩密的,這是一個原因之一。第二個原因是什麼?在你編寫的過程中,它沒有辦法百分百的去理解你的邏輯,理解你的程序,而且你的程序是有,我寫程序都是這樣的,A程序1.0,A程序2.0,A程序3.0,是分代數的,就相當對那個金字塔軟件一樣的。那是有幾點零系統的,是什麼版本什麼版本,因為我們需要去在這個階段完善它去更新它,那我們得自己去根據行情變化,得自己去加以改良。所以這是我覺得做程序交易員的一個必須要做的事情。那我寫程度是前期是怎麼寫的,我是全都用復制,復制粘貼復制粘貼,你讓我現在把電腦關掉,在黑板上寫一行代碼,我真不會寫,可以說平常的語句我都不會寫。關鍵是什麼,關鍵就是邏輯,邏輯通了,其實語句就是計算機代碼的函數,很簡單的,我現在是覺得蠻簡單的,關鍵就是你通了就行。還有編寫程序最重要的一個就是要有興趣。沒有興趣的話,你覺得面對那個枯燥的代碼是受不了的,你要感覺到跟它談戀愛,半夜三更還在想它,做夢的時候還能夠在想它,我覺得這個很重要,這個就像我在前期一樣的,經常半夜三更陪我老婆睡覺的時候,我就爬起來,干嘛?電腦打開,寫程序。一個想法想到了,早上5點鐘衣服也不穿就跑到電腦面前去寫一下,一寫,這個方法,測試一下,不行,睡覺,就這樣的一個過程。所以這個是必須要自己精通的,不然的話,讓別人永遠寫不出你自己想要的,或者說找不到你自己的靈魂。第二,我覺得程序交易員必須要有一個詳細的實盤數據,我覺得這個是非常重要的,哪怕是手工交易者也一樣的。你的資金曲線代表了你的所有的交易行為。虧了也要面對,賺了也要面對,虧了也很正常,我是這樣理解的。我的資金曲線是公開化的,我也不怕別人說,你這水平怎麼這麼差,那差就差呗,我要面對自己的一個交易結果。如果你不做這個東西,容易出現一個問題就是永遠活在你當前的想法裡,永遠覺得自己是最好的,不看資金曲線。
所以在這裡我跟大家分享一下我的資金曲線的一個模塊,這個是在做的,這個記錄是2010年5月25號就開始做了,交易天數第一天。那到現在,我們先看一下上面有哪些數據,交易帳號、日期、交易天數,當天的手續費。第一天是錯誤的,資金淨值、入金、出金、真實出入金,那為什麼有入金和出金,還有一個真實出入金呢?到後期就有了,還有一個真實的一個淨值、當日贏虧、累積贏虧、初始資金,還有一個當天的收益率、總收益率、勝率、最大回撤,還有一個總手續費,還有總贏利、總虧損、贏虧比、虧損的天數、盈利的天數,全都給它做出來。之後我們就這樣一天填寫一個數字,一天填寫一個數字,一直填寫到像我這裡第808個交易日。當天的手續費900塊,完了以後每天出入金580萬,那真實出入金有嗎?沒有,那這裡有出金,那為什麼是出金580萬呢?我想大部分人都知道,就不說了。這些數據可以很好的反映你帳戶真實的情況,沒有太復雜的。還有一個是什麼呢?我們一定要把資金曲線畫出來。這是一個月曲線圖,我是做一個什麼呢?我的目標很簡單,就是每年年化30%,那年化30%相當每個月它的復利是2.2%。那我的目標就是在2019年的時候,我的曲線能在這條線上面,那就成功了。還有一個月計劃,每個月都必須就是要寫一個月計劃,我認為操盤守則是在這裡,我都會把它寫好,那我遵守的一個原則是什麼呢?就是盤中我們不能亂動,只有盤後檢討,哪怕你出錯、犯錯。你盤中都不要動,除非你是信號錯了,或者說程序錯了,如果你認為盤中今天怎麼十手,倉位好重,我減五手好不好?那肯定是不好的。為什麼?因為你昨天晚上為什麼沒想。只有虧的多的時候,當你產生恐懼的時候你再把它減下來。其實之所以做不好,大部分虧錢,原因就是一個人的貪婪和恐懼造成的。所以這是必須要做計劃的,那這裡就講到了了一個資金的回撤,資金回撤我的最大容忍范圍是30%,如果虧掉了30%我這個主帳戶必須停半年不交易,這是我的原則,所以按照計劃做,每個月去寫,每個月把我們的名次,把市場監控的商品名次給它排出來,最好每個月寫檢討,那這邊就有心得、檢討。還有每天我們做什麼事情呢?每天我的助理會給我發條短信,短信很簡單,就把所有的帳戶都總結起來,發一條短信給我。這裡就是ABCD了,其他的全都隱掉了。那接下來這裡就有一個“滑點”,當天盈虧,當前的回撤都有,我的滑點是按照萬分之零點零五算的,那比如說其實跑的最好的一個是80多萬的這個帳戶,是什麼概念呢?可以看到,是萬分之零點零五,這裡的數字都是有正數,這個數字是怎麼得來的?比如說106,這106是怎麼得來的?就相當於就是我的當天比如說我理論贏虧是賺了1萬塊,但我實際的是賺了1萬1,那我相當於賺了一千塊。這一千塊這一天裡面又交易了幾次,除以交易天數,那就相當於就是一個開倉過程中我就掙了106塊,相當於這個概念。所以數據對於我們交易是很重要的。一個真實的實盤數據,就像剛才說的,我們看曲線說話,看數據說話,敢於面對自己的錯誤或者敢於面對自己的贏利和虧損。
第三個就是計劃交易,執行計劃。我在盤中我不思考,或者我不改變,我在盤後我才會思考我明天要做什麼或者說下個月要做什麼,一旦做完以後我就不去動它,因為在盤中容易出現一個人性。還有需要持續不斷的學習,我覺得這個對於我來說是特別重要。因為什麼,因為剛才我們的沈總說的屌絲,現在所謂他給我評價叫做高富帥,雖然不高也不怎麼富,但是至少跟之前的屌絲比稍微好一點,原因就是我在持續不斷的吸收外界的東西。就像我們來這邊今天有好幾位我的老師,還有我們的同班學習的都有。在我的觀念裡面是什麼,你只有持續不斷的去吸收別人的東西,那麼你才能夠去有一個台階提升,我個人給自己定位的和我經常跟我助理講的,最主要的是我們學習是有方法的。第一個,我們前期如果沒什麼條件,那我們透過什麼學習呢?透過網絡,透過論壇,透過群,透過微信,透過我們的期貨中國裡面的那些高手訪談,這些東西其實都很重要。大部分我覺得它好就要去看一下,這種是無成本的,我們的成本僅僅是時間成本而已。所以這種我覺得很多的,接下來還可以做什麼呢?可以看一些書,還有去參加一些比如說免費的論壇、免費的培訓。這些也沒什麼成本,就是交通費。後面如果你再有條件還想再深入一點,那就是付費去學習,那我在美發行業我覺得這點倒是很重要的,我很看重,就是全國各地任何一個學校,只要它有名,我必須去報道,到後來的話,到日本,到韓國,我都去,為什麼?我認為能改變我的命運我就去。像投資一樣的,很多我們都見過,原因是什麼,我走的地方也多了,因為自身的文化不多,自身不夠聰明,只能去學習。曾經我花三萬塊錢跟一個私募公司的老總,就兩個人一對一教學,就兩天,一起喝茶,就聊一下,三萬塊錢,那我覺得值。為什麼?因為沒學到東西,那他也給我驗證我的思路,對不對?他講的不對,如果覺得它不適合我,那我沿用我原來的老方法,如果只要有一句話給我帶來新的啟發,那絕對不止三萬塊錢。所以我做實業也是經常遵循這樣一個原則來做的,我覺得總結就是這四點。
還有一個就是編程要點,那我想問一下,在座的各位,是做程序化的,做了一年以上自動化交易的懂嗎?舉手我看一下,有沒有?真的嗎?這麼幾位,可能高手都不善於表露出來,那編程的這幾個要領,第一個我認為是邏輯性,就是你的邏輯性,這點很重要,就是我為什麼要開,我在什麼樣的情況下平,我是怎麼做的,先要有你這個想法,才能產生所謂的信號,如果說你亂扭一通,你說就出現一個聖杯,那這個聖杯一定是中看不中用的,所以有的朋友給我打電話說,我現在研究有一個很好的策略,你要不要試一下,一年大概有80萬的贏利,要不要試一下?我說,算了,不試了。為什麼?因為我不知道你的思路,我不知道我自己是怎麼死的,或者是怎麼活的,我虧錢我要虧的有原因,因為我知道原因了就懂得怎麼去改良它,如果我不知道原因,那我只能愣虧。第二個,溝通語句是否對稱,之前我也參加過一些模型對換、模型交換,模型交換就是把別人的模型,比如說20個人,一人出一個模型,我也出一個模型,這20個模型就共享了,那這種情況,我其實就看到有一個曲線非常漂亮,有未來嗎?沒未來。信號散嗎?也不散。那為什麼它那麼漂亮呢?源碼打開一看,它是做空條件,很松,很容易達到;做多條件很緊,過濾很多,不容易達到。那有人問,為什麼曲線好呢?是因為從2010年到2012年的時候它一路下跌,對不對?一路下跌所以它做空條件多的話,松的話它肯定曲線要少一點,那萬一2013年開始就走牛市呢?那肯定是虧的。所以我驗證模型一定是要用金字塔裡的K線反轉,轉一下,它就原來開多的條件,就變成開空的了,原來開空的條件變開多的了。我這樣對換一看,反轉了也有收益,正的也有收益,曲線相關不大,那代表它是多空對稱編寫的,它不是那種不對稱的,或者說是根據歷史的數據去研發的,那容易出現問題。還有一個是參數的適應性,參數適應性我個人認為是盡量的少寫參數,在我的程序裡面我盡量是把參數鑲在裡面,是什麼意思呢?我不寫在那個參數表裡面,為什麼任何一個程序化裡面的它都有一個參數表,這個參數表是干嘛的呢。它是做優化用的,我最終定完型的模型我都不給它寫在參數表裡面,因為我認為這個東西我盡量的讓它保持它的適應性。
那這個什麼意思呢?我舉個例子,如果要說參數的一個適應性,比如說我們用一個跟蹤止損,跟蹤止損什麼是不容易適合的呢,不是很好適應的。比如說10個點的止損,這就不是很好適應,為什麼呢?因為現在股指是2050點,如果未來6000點,你要用10個點行不行,那你就可以改成20個點,那就代表這個點適應性不夠,那我們能不能用什麼呢?用個百分比,比如1%或者0.5%,這種的它2000點,它會自動去運算,它1%就是20點。6000點它就是60點,那這種的就是一個不管它行情怎麼變,最終我們得出來的參數是一個自適應的,還有可能用波動性,波動性也可以。所以我在實盤過程中,通常很少用固定點數,一個點或者是10個點這個我很少用。
第四個我認為在寫程序的過程中一定是化繁為簡,就是盡量的簡化,能夠用一句話表達的,那我們就用一句話,能少用一個條件就少用一個條件。盡量的簡化,能夠用同一種指標去做一些過濾或優化那就用一種指標,不要用第二種指標。因為你條件用的越多,那你的語句就越復雜,越復雜就代表未來行情的適應性就會越差一點,相對來說會差一點。
第五個精細化控制,細節化、精細化,那前面講的就是化繁為簡,要簡單應用要精細,這是不是有矛盾呢?在我的理解裡就是沒有矛盾的。就是你的邏輯是簡單的,是精簡的,但是你控制的語句一定是精細的,在什麼點位進去,或者要怎麼進去,或者考慮到當前市場的一個反映狀態。這些我覺得就很重要,我之所以能做到剛才說的萬分之零點五的滑點,還有就是其中有一個帳戶還是算下來它基本上不用手續費,可以賺手續費,那之所以原因就在這裡,精細化控制,要考慮當前的市場。所以我們在編寫過程中這個代碼用的相對來說就是比較復雜,但這個復雜是不存在邏輯關系的,那也沒有關系,多寫幾行也沒有關系。但是整體的一個邏輯性,一個架構一定是簡單,盡量簡單一點,我上半部分就講到這裡。
我們接下來講下面的這個部分,我們先看一下程序化優勢。2009年時候我去文華那邊學,全班也就10來個人,很多人是抱著試試看的態度。2013年開始,程序化的普及率就非常快。以前像前面那些程序化的前輩們,零幾年是爆賺,2000年到2010年,這個階段都是爆賺,這幾年好像不怎麼樣,很大的因素就是大家都意識到做程序化的優勢,我也是正因為有了這個程序化的東西,我才敢進入期貨。因為我本人的性格是非常保守型的,因為以前是窮慣了,窮怕了,小的時候在家裡印象最深的一點就是糧食不夠,在家裡就看老媽拿著一個米斗出去借米,借米的時候沒借到,回來和老爸吵架,印象很深。這種安全意識對我來說很重要,那為什麼選擇期貨?對於我們農村裡的人來說,那不是跳樓嗎,選擇自殺嗎?因為做期貨的很容易就聽來就是一夜破產,就是這樣子的。那我們看一下,我認為做程序化第一個優勢是什麼呢?它的客觀優勢,它跟手工不一樣,就相對來說,它比較客觀,為什麼這樣說,我強調自己是什麼呢?我盤中不干涉,我一旦定了十手的手數,我絕對不可能說今天我會加到十一手,那是不可能的。但很多的手工交易可能就不一樣了,今天行情好,可能加一手,或者加一半,有這種情況。但是什麼是行情好,可能就是你賺錢了,你的貪婪或者你的功利心上來了,那你可能加進去,那加進去可能出現一個問題,行情可能更好,那你賺錢了。那認為是對的嗎?但這種就容易出現一個不穩定,不可復制,容易出現這種情況。做程序有一個好處就是十手它一定十手,不可能十一手。它能夠在執行的過程中可以避開人性的貪婪和恐懼,我覺得這兩點真的是做手工的也好,程序的也好,都很重要。不能說虧錢就怕,賺錢就喜或者賺錢覺得這個期貨市場真好,這輩子我一定要賺多少多少錢,虧錢的時候不敢做,停掉,容易出現這種情況。我一直在告誡自己不能有貪婪和恐懼,我一定要保持客觀的心去看待這個市場,虧錢也很正常,賺錢也很正常。虧自己認為虧的明白的錢,賺自己賺的明白的錢,那就可以了。
第二個就是交易速度的優勢,什麼叫做交易速度的優勢?我們從信號到成交回報,都是在一百毫秒以內完成的,也就是說我要到一千點買進去,價格真的到一千點了,這個時候人的肉眼是看到一千點,手去找鼠標去找賬號去掛單在這個執行過程中,最快的也要以秒計算,在程序裡面它就“咯哒”成交搞定。是以毫秒級別來做的。也就是在我的程序裡面我允許自己的速度是在50毫秒到60毫秒,從信號處發到成交,不是委托到成交。所以這個速度是非常快的,那可以解決這個速度的問題。
第三個就是交易組合的優勢,交易組合的優勢是什麼呢?就是策略可以針對不同品種、不同周期、不同市場同時運行,也就是說我一個策略可以在全市場運行。或者說不僅在期貨市場運行,我可以在股票市場運行,人工就容易出現一個問題,你最多只能做兩個品種,三個品種,五個品種,如果你做日內高頻,你只能做一個品種,而且做完以後是兩眼花花。如果程序就不是了,它可以同時操作N個品種,進行毫秒級的運算、監控、成交。這個就是我認為程序化交易的好處。那為什麼要組合呢?因為組合是我們現在程序化裡面公認的就是做到最後必須要組合,到後面就是多品種、多周期、多策略進行組合。為什麼這樣子?因為我們最終得出到一個是什麼呢?投資組合的一個最大優勢是贏利是相加的,虧損是相互抵消的。就相當於比如我做一百個的組合,我每個組合賺一塊錢,那我肯定是賺100塊,但是如果我100個組合每個組合虧1塊錢,那我絕對不是最大回撤絕對不是100塊。我可能就60塊,為什麼,因為A賺錢的過程中,B可能在虧錢,所以它會相互抵消,那你的回撤就會控制下來,這就是我們組合就是現在公認的一個邏輯,所以我們一直在用組合。
還有一個就是交易連續性的優勢,策略始終保持毫秒級的運算級別,也就是說不管你是什麼策略,現在我們都是一千毫秒,也可以做到五百毫秒來監控。不管是日線的,比如說日線是一個月出一次信號或者說半個月出一次信號。那麼人來監控,那我想絕對不可能百分百執行,為什麼,因為你不可能一直盯著它,一個月就盯了一個月就下了一個單子,那不可能的。但如果說用程序來做,那它始終就這樣監控著,不管是一分鐘也好,還是要日線級別也好,一天交易十次也好,還是一年交易十次也好,它都是始終能完美的運行,可持續的關注,這我認為這人工跟這個就是不一樣的。當然人工也有人工的優勢。
第五個是交易策略的回測性,可分析策略在歷史行情中的表現,這我認為做程序的一個重要的一大原因。人工在做的就是我感覺這思路好,那我就開始用實盤,因為你不知道這個東西到底好不好?但是做程序它是這樣的,我感覺這個東西好,我先能寫出來,寫出來以後,我再用歷史的N年的數據來測試一下。在測試的過程中,它確實是賺錢的,那我覺得就推算未來賺錢的可能性就會比較高一點,如果說你這個策略感覺比較好,寫出來曲線是曲直向下的,那代表什麼?代表就是你賺錢的可能性也會比較低。所以我覺得測試報告也比較重要,
對我來說我覺得程序化太好了,因為我不是全職做這一塊的。我平時在研究,研究完以後,把策略丟到數據庫裡面,在用一個連接,連接的一個金字塔裡面的一個策略服務器,把這行代碼丟給我的助理告訴他今天你上線就可以了,他就可以運行了。那我在做的時候,我在做他每天傳數據給我的時候,收盤後傳數據給我的表現。這樣的話我很輕松,就像我現在做實業一樣,我也覺得我現在做的差不多是程序化了。比如說我到國外去玩個幾天,前段時間到泰國去玩了一周,家裡也沒發生什麼事情,都是自動化運作,交易上面用程序,找一個助理看一下信號,實業上面我們的分配機制,我們的店長自動運行,出了問題找什麼,我覺得這個問題很重要,對我們人很輕松。
我們花比較多的時間放實盤策略編寫步驟。這個也不是標准答案,在座的各位應該是高手比我厲害多了,那我在編寫實盤的一個策略步驟過程中第一個是想問題,先想,先問自己,我想捕捉市場哪些行情特征?就是我想做什麼,我要什麼?這是我第一個要問自己的問題,那也就是說我到底是要哪一段行情的,是震蕩的,還是趨勢的?如果是趨勢的我想吃哪一段?是起點的位置,還是中間部分?那任何一個方法都是雙刃劍,有利必有敝,也就是說如果我從起點開始,做進去。我要吃,從起點開始吃一直吃到底的這種行情,那勢必你試錯的成本就要高很多,如果你只吃中間部分,那你的過濾這塊要注意了。所以就是要問自己想捕捉什麼行情。第二個我的開平倉條件是什麼?我要吃這些行情那我要利用什麼樣的一個計算機語言來做呢?如果我用MACD可不可以,我用均線可不可以,我用波動率可不可以,我用突破可不可以,都可以,那它也沒有說絕對MACD好,均線好,沒有,它也是雙刃劍,有利必有敝。第三個,就是策略的原碼編寫,我們在執行過程中,我們在編寫的過程中的步驟,第一步干嘛,第二步干嘛,第三步干嘛,都給它一一的規劃。假設這一步,我們實現了,那接下來是什麼呢?一定要做件事情,就是核對信號與思路是否一致,什麼意思?我現在信號出來了,跟我這個思路是不是一致的?還有一個叫無未來,什麼叫無未來,就是說沒有欺騙自己的東西。如果說用一個未來函數那你的曲線會非常的漂亮,但那種是中看不中用的。我們一定要遵循一個真實性,因為我們不是拿來展示的,不是拿來炫耀的。經常在群裡面看到很多都是一年賺個一兩百萬,那種我覺得除非他真的實盤真的跑出來,那這個人可以厲害。但如果說他僅僅是發個測試報告給你看,那算什麼?我一撈一大把,這一天賺十萬元沒問題,用未來函數嘛。所以到這個過程中我們的信號和思路要核對一下,至少你的信號跟思路的一個准確性。第四,測試模板導入,這應該是我的獨創吧,我不用金字塔的測試報告的,我很多數據都是自己寫的,我也不喜歡那種測試報告,因為測試報告這個東西不是很真實。我就自己寫一個模板,然後導入進去,任何一個策略寫出信號以後,導入測試報告,一進去以後所有數據就出來了,那多爽,而且找到自己想要的幾個關鍵性的數據,適合自己的。比如說你最看中的什麼,那數據就給它編寫出去,你的個性化的一個模板。第六個就是增加過濾條件或優化策略,也就是說第一個我們是這是一個思路;第二個,我們要用什麼指標來執行;第三個那就是我的編寫過程;第四個我核對信號和我的思路我的指標是否一致並且確保它是一個無未來函數的一個模型;第五個我就開始導入測試模板,導入測試模板以後出現了一個叫做數值,這個策略在未來,在歷史過程中它到底是賺錢還是虧錢呢?曲線是什麼樣子的?好,那接下來我們就開始反思,我們要開始反思什麼?這個感覺沒我們當初想象的那麼好,那我能不能再做一些過濾呢?或者優化呢?可不可以,那到後期我們就可以增加一些條件。第七步,就是實盤模板的導入和或者是模擬測試或者是少量的實盤。那我遵循的是,寫出一個模型,以前我是要跑模擬的,現在我是不跑模擬了,我直接上實盤。那上實盤的過程中我們就很少,先一手,做做做做,兩手,再做做做,三手、五手這樣子,是這樣一個過程。那這樣做的話,為什麼我現在一開始就上實盤,因為我知道我自己寫的過程,我寫的東西,我知道我這個不會出什麼亂子。如果人家給你一個很漂亮的信號,那你拿了你敢用嗎?不敢用吧,因為你不知道他裡面寫什麼東西,或者是不是符合你,好,那這個就是我們七個步驟,接下來我們一步步開始來實現。
接下來大家可以看到在這裡,我編輯了一個用戶名,這裡一個文件夾,文件夾裡面有步驟。第一個,我想要吃什麼行情,那我就需要先把它技術指標做出來,那我現在說做一個趨勢的行情,那我們看,在編寫過程中,我就省略了,因為時間有點長。大家可以看到這個像什麼?MACD是不是,有點像MACD那我們就認為是MACD。那麼我在下面這裡畫了一條線,這條線比較粗,是綠色的,在上面畫的一條紅線,這條線,是紅線和綠線,這樣看的話,你是根本不知道它是怎麼組成的,或者怎麼寫出來的,那我們來看一下源碼,源碼很簡單,第一行數字就是設定了一個參數,在編寫的過程中,一定是要有參數的,其實這個程序只有一行代碼,就是這條多分線,我把它定義成多分線,它的運算方式是什麼呢?運算方式是50減100乘以前期最高,這個是什麼前期最高?是35天的前期最高,再減去它當前的一個收盤價,除以最高價前35天的最高減去前35天的最低,那它就會得出一條多空線,這條多空線我用柱狀圖把它畫出來,那它出來就是這個。就是這個很像MACD,那這個思路是怎麼走來的?就是我在想MACD,如果用MACD容易出現一個問題,我們都知道MACD是由均線組成的,那麼均線的話容易出現一個問題,MACD經常出現背離,像這種行情,上漲的行情中,它反而是跌的,原因在於它這一段短期均線上穿長期均線,所以它就會反而是這樣走的。那我認為這就容易出現一個捕捉不到該有的行情,那我們就給它用了一個用價格來畫一條類似MACD。這是我們的第一個步驟。接下來我們在這做了一個極值,極值就是上面這條線和下面這條線,做多線和做空線永遠就是45,因為它的這條多空線,它永遠是在最高值是在50,最低值是就是負50。那我做多線就是45,做空線就是負45,我們先不評論這個指標好壞,我們再繼續。接下來我們開始構建開平倉,構建開平倉很簡單,當我們的收盤價收完以後,這個做多線在45以上,我們就開多,在負45以下,就平多,翻空,就這麼簡單。那我們看一下,現在信號出來了。接下來在我們再做一件事情就是檢查,就核對信號是不是我想象的,做多的那我們來看一下,這個剛好,可以看到這個是做空線,就是開空,是不是,這最下面的多空線是48,負48那就是小於負45了,那我就應該開空,之後這邊的話大於45,那我們就開多,如果真的是在寫模型過程中我們是要從有效數據中開始一個一個的去檢查。我通常是寫完以後就開始,這樣子開始推,一直推,推到哪裡?這裡,好像有一個小於極值的,那這裡有沒有出一個信號,沒有的話,那就有問題了。那接下來我們再看一下,這裡面實現的源碼的全過程。首先我們還是一樣的設定參數,為什麼要設定參數,是因為我們在編寫的過程中最終還要有一個優化的過程,就是還要讓計算機把所有的參數去跑一遍,看看出現什麼情況,那我寫程序的過程中,通常我會先在前面加中文,這個就是注釋,參數模塊,這個板塊。接下來看一下中間的變量,中間的變量其實就是一條語句,就是多空線,還有45的話就是一個極值,就這條多空線最重要,就這一條,完了以後我們遵循的就是計算機運算方式就是先平倉後開倉的原則。先平後開,開始寫平倉語句,平多,如果有多單,會多空線小於作多線,那麼我就開始如果有多單我就平掉,我用什麼平呢?我用C平,那代表是沒有未來函數的,那同樣的,平空也是一樣的,開多如果當前是空倉,那我就達到這個條件,那我就開一手,做空也是一樣的道理。寫完以後,我們進行信號檢測,沒問題。接下來再再進入第三板塊,導入測試模板。導入測試模板先給大家看一下測試模板裡面到底導入了什麼?上面的源代碼全部沒有改,還是跟第二步是一模一樣的,跟上面的是一模一樣的。接下來就是最下面的是我額外加進去的,叫做測試報告數據分析變量。最下面一段代碼主要呈現出幾個數字呢?就是在這裡顯示的,測試報告的數字顯示,這些都是為了達到下面這些數據的一個中間變量。那麼第一個我要它從我有效交易日以來,我總共交易了多少次,我要知道這個交易次數,第二個我要知道上一次的開倉價格或者平倉價格;第三個,我要知道我從歷史以來我的最大回撤是多少。第四個,我要知道總盈利除以總虧損是多少,還有我要知道它的平均單筆利潤是多少,因為我除以它總交易數,而且是減掉100萬,那麼當天贏虧也要寫進去,淨利也要寫進去,這個就是測試報告。接下來我們在這裡可以看一下,我們的測試,因為是收盤價模式,我們用萬分之一的測試法,如果說按我現在用的模板它是用萬分之零點零五的來測的,那我們用萬分之一來測。之後我們開始,也要應用上去,應用上去以後它的曲線就出來了,這曲線一般,紅色這條就是資金曲線,還有紅色這條很細的就是我們的最大回撤,信號出來以後大家可以看到,總的從這個位置到這個位置我們的交易次數是535次。最近一次的信號價是2404點,最大回撤是16萬9,贏虧比只有1.17,平均利潤只有1000塊錢,當天贏虧上周五賺了一千塊錢。接下來,我們就開始增加過濾條件,如果這種正反手模型寫進去,肯定容易出現一個問題是什麼?因為你是永遠在實施策略,出現這種的問題必不可免,就是這種曲線一直虧一直虧的這種。為什麼,因為任何策略都有不適應的時候,在你不適應的時候你虧的是非常快的,那我們為了解決這個問題就要讓它增加過濾條件,也就是我不要讓它永遠在試,我要讓它有休息的時間。原則還是這樣子的,那我們怎麼做呢?假設我們增加的過濾條件是什麼?這裡寫了一個參數,叫做過濾參數,上面的還是沒有變,我做了一個在10個周期裡面,多空線小於做空線,是有兩次應該做出過濾參數是兩次,那麼我就開始平,否則我不平,就是這麼一個簡單的過濾機制。當然我們在實盤中可能會增加更多,那下面的測試報告還是會繼續保留。
接下來我們進入第四步,第四步我們進行應用。可以看到,又出來了不一樣的曲線,因為被過濾過了,那還是一樣的,出現的問題是有峰谷而且會疾速下跌。這個疾速下跌是什麼?我們再看看,從這個位置做進去,一直到這裡才平,有人說這裡理論來說還多了。原因就是被我過濾掉了,這裡沒有開多,因為它的10個周期裡面只發生一次,那在這裡它為什麼開呢?因為在10個周期裡發生了第二次,所以才開。在接下來,這樣曲線好像還不行,回撤過大,由原來的16萬變成26萬,接下來我們在增加一個止損,就是在原來的這個邏輯裡面我們給它增加止損。這個止損是一個跟蹤止損,我們跟蹤止損是用百分比來算的,用一個非常簡單的一個數字就是1%,跟蹤止損的一個1%。那我們進入第四步,加了一個1%的跟蹤止損,出現的數字是總交易數是497次,信號價這個不重要,最大回撤6萬1,贏虧比由原來的1.1增加到1.5,平均利潤1800,而且可以看到,這個贏虧比發生了很大的變化,還有次數也發生了減少,大家可以看到第三步的時候我們就是一個裸的思路,很裸的一個思路,非多即空,第四步增加了這個條件以後,從500多次的交易次數,減少到300多。那就相當於交易量在減少,但是它的贏虧比很少,單筆利潤提高了一點點。那我們再看,如果說增加了呢?這贏虧比,因為我們說贏虧比是最重要的,還有一個最大回撤,由剛才的最大一個虧損,最大回撤是26萬,現在減到6萬,贏虧比由之前的1.1增加到1.5,平均利潤由1000增加到1800,交易次數反而比剛才過濾的更多了,原因是什麼?原因是我們平倉更松了,平倉的多了,所以開倉也容易多,但是它在場的時間是減少了。大家認為這樣的曲線怎麼樣?不錯是吧,就一句話,那有人說一句話真的能寫出模型嗎?實踐起來畫了75行,這75行都是廢話或者都是執行或者都是你要實踐這句話的過程用了75行。而且大家可以看到,我們這個是沒有未來函數的,不可能有未來函數的,我可以直接實盤的,為什麼這樣子呢?你看到這一點,我就把它改掉了,用O價,有人會說O價不是未來函數嗎?大家看到前面有個ref,它不可能會少,就相當於前一根周期實現了我在下一根K線的開盤價格,我為什麼要這樣做?因為我有一個跟蹤止損,我的跟蹤止損一定是動態的,每一秒鐘掃描一次,不是走完K線,因為走完K線容易出現一個問題,就是被秒,光大事件那種,如果一分鐘它可以漲50個點,裡面有幾十手的話,那就完蛋了。那我們就必須采用指令價模式,用指令價我們下面也必須用指令價,那我們就得用O價,那下面就是測試報告,認為這種不錯啊,那這種失效概率有多少?不知道,是吧?但是你讓它長期做,會大虧嗎?我認為也不怎麼會大虧。
接下來我們再看測試反轉一下,K線反轉。這條線,紅色線,它是向上的,再接下來,我們再來一次多周期的進行,因為我們用的是當前K線的前35周的最高、最低做,所以我們多周期應該可以看出什麼樣的效果。看看10分鐘的,淨利潤應該有56,K線反轉就不用看了,反正是對稱編寫的,它一定差不了,15分鐘的,是這樣的;30分鐘的,是這樣的;1個小時的,這樣的;5分鐘的,還有3分鐘的。那至少它都是有贏利的,當然很多人是追求完美的,認為這種曲線太差了,比如說我們來看一下,我們來寫個未來函數,寫個未來函數直接在這邊加個O,就閃到你眼睛都睜不開了,就這樣是不是很漂亮,這種曲線就很漂亮、完美是吧?咋會虧呢?這期貨市場不是指日可待成首富了嗎?所以這種思路一定不能分享出去,是吧?可以看到它的贏虧比是多少?3.16,總交易數896,而且平均利潤3700,爽歪歪了。最關鍵的它從開始到現在賺了338萬的利潤,而且最大回撤是多少,才5萬2,是不是亮到眼瞎,但這個是不可能的,沒有這種聖杯的,所以有人說勝率可以達到百分之六七十,我認為真的趨勢策略能達到,就是你正常一點的不要加一些小竅門的那種,你就把這個35到45之間吧,那有些趨勢策略它可以達到百分之五六十,我也就可以寫出來,跟大家說一下怎麼寫出來,利潤沒增加,勝率上去了,怎麼寫的,就是我們把硬性止損,比如說我們的硬性止損是10個點,我們在寫的過程中漲了十個點以後,我們就拉到成本價附近,那我不拉成本價,我就拉到比成本價高一點,高一跳或者高一個點,這樣子的話,長期以來,它一定是大於50%的勝率,但那個沒意義,勝率是高的,但是沒意義的,跟勝率百分之三十幾是一樣的。
還有一個環節,就是模擬測試或者少量實盤。在這裡我也寫了一個模板就是直接的,其實現在對於我來說,我只做一、二、三、四、五,到五步,其實第三步我就跳過了,因為這個模板我已經有了,第二步我也跳過了,這個模板我也有了。這個出來的就不是信號了,就直接的來一根線。這根線是什麼呢?這根線就是我要交易的東西,這根線,當這根線為1的時候就代表我當前的倉位是一手;當這根線是0的時候,就代表當時是空倉;當這根線是-1的時候,就代表我有一手空單。這個我沿用金字塔,分享的東西就是後台模板,當時給它加了一個改良的東西就是我有測單功能,這個就不用詳細講了。比如我這個策略我現在覺得表現不錯,我要做兩手,在這個地方只要改一下,乘以二,它就可以了,就兩手,實盤過程中,那這邊就是兩手。我如果說我有N個策略,那我干嘛呢?在這邊重新起一行,CC1、CC2、CC3一直到CC10到後面CC全部加從CC1加到CC10,下面都不用動了,下面測帳戶給它動一個,完了以後抄價也不用動了,就是這樣子,這個也就是我為什麼做金字塔,因為金字塔這一塊,對我來說是蠻好,因為我只負責模型編寫,研究到後期的實盤這一塊已經有很成熟的東西,直接弄上去就行了。
還有一個部分就是我們的“倚天劍”實盤策略, “倚天劍”大家有看CCTV應該都知道,我是在裡面展示時間最久的一位,是兩年前,在那邊展示用的策略,就用三個主策略。跟大家分享一下,同樣的,我用的是三個主策略,我分別給它取名叫做”傳奇變量五”那就代表這個策略已經升級到第五代了,在下次的話估計就是“傳奇變量六”了,每一代我都會留底,然後是“動量變量五”、“均線變量五”那什麼意思呢?“傳奇變量五”你們不知道,但動量你們應該知道,它是一個波動率的,均線它是用均線的。那看一下,我們是在一分鐘裡面做的,這個是一個指令價模式,我是用萬分之一點五的測試數據來做的。可以看到這個數據是一個什麼樣的概念呢?總手數十手,也就是說,我這套策略裡面,有十手就是最多會加到十手,總交易數,最大回撤,這個最大回撤是當一筆就是一手回撤2萬4,之後贏虧比是多少呢?2.25,平均利潤5900、6000塊,淨利潤500萬,那大家有沒有發現從這個位置到這個位置,都蠻像的,就到這個位置就不像了。因為我這個過程中都是這樣用的,當然前面是改良過的之前的策略沒有那麼好。今年如果說本本分分的用這一個策略我就是賺錢的,但是今年最終淪落到虧錢,原因就是不本分,不本分也有好處就是總結經驗,至少讓我知道是什麼原因虧錢的。這個我定位成一個中性的策略,它的進攻性不是很強;這個是一個防守型策略。當然我能做實盤是不可能的,這麼多源碼,這個肯定是不可能的,但相對來說我們做實盤只加的300根K線,甚至200根K線。這個是一個防守型策略,前面很漂亮,這個地方挖了一個大坑,最終上去了,這段時間有回撤,前段時間還有一個大行情,也上去了,那如果說上去了今年也不虧錢。這裡是今年,我們看一下我們的測試數據一定是萬分之一點五,不是萬分之一,如果萬分之一的話,這麼多年下來,曲線就會更好一點。那這個策略的話,我們有多少源代碼呢?有250行代碼,後面都是一個測試報告的部分,前面才是在做的這些東西,變量。那思路簡不簡單呢?思路也是簡單的,我之前都是用的這些,這裡是沒加滑點,但你可以看到這裡有個買點優化。買點優化是什麼東西?買點優化就是我對市場的理解加了一點點東西進去,跟別人有一點點不一樣,那我們每一個買點優化都不一樣,有0.8、0.4、1.0都有。還有看一個均線變量,這個都是同樣的萬分之一點五的數據,總手數都是十手。所以到現在我總結起來認為最終可能還是加倉策略最穩定,市場怎麼再殘酷,使用加倉策略,不可能虧的太多。只要有一點行情,它就容易上去。這個就是一個進攻型的策略,這段時間創下了歷史最大回撤,之前的最大值是1萬7,現在是3萬1,最大回撤是3萬1,但它的盈虧比還能達到2.0以上。所以這些就是我在做程序化這麼多年的所理解的一些結果或者說所研究的一些層面,今天跟大家分享的這些都是我認為沒有太多花俏的東西,就是以真實的一面,面對大家的,不管講的好與不好,不好的多批評,好的希望能夠有一個起到借鑒的作用或者說起到一個啟發的作用,也沒有太多的所謂的神奇指標,謝謝大家。
  歡迎訪問 外 匯 邦 WWW.WaiHuiBang.com
  • 上一个财经:
  • 下一个财经:
  •   風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
    比特財富網 版權所有 © www.emoneybtc.com