2010年1月18日 星期一

Multicharts送訊號到algostars,net

當程式寫好後,要將multichars的訊號送到www.algostars.net的平台模擬測試,可以利用參考



2010年1月13日 星期三

程式交易測試準備

最近寫了幾支當沖程式,幾個心得分享

1.準備測試商品資料,以台指指數為例,先找出指數震動的幅度,以及將資料分類。
2004-2005年的資料為極度小幅盤整,2007年多頭震盪年,2008年大幅震盪,2009年反彈多頭年,可以再把資料分成區間分為高低100點收高,高低200點收高,高低300點收高:100點收低,200點.....

2.寫好的程式最好不要有太多參數,雖然免不了一定會有參數,但最好不要最佳化,若用TS跑回測,最好避免選擇最好的參數,而是選擇參數密集區。

3.一支程式測試不同年度同類型的資料,表現要有一致性,如果是寫得是趨勢系統,那在趨勢資料中表現要比較突出,另外把程式適合哪些盤型紀錄下來。以後可以作程式配置用。

4.選擇不同商品的資料,再將此程式測試一下,若勝率、drawdown、績效都可以接受的話,這支成式的穩定性較為OK。


5.寫好後,開始跑真實的交易資料,可以將訊號上傳到www.algostars.net,這個網站可以紀錄訊號成交的狀況,並做績效分析,可利用此網站的資料與TS跑回測的資料做比對。

6.經過3個月的測試,績效報酬為正,且最大的drawdown小於回測系統,也未出現異常表現

這個程式就真的可以投錢進入了,至少比較有印鈔機的樣子了。

2010年1月6日 星期三

2010/01/06人為干預下場很悲慘

這個月選了6支程式策略,2支逆勢,4支順勢,開年第1天慘賠28000,第2天續賠18,800,今天恢復正常終於賺了28,800。不過沒賺那樣多,why?

答案很簡單,兩天慘賠後的心理狀況產生變化,變的很膽小,不想再賠錢,第一件事就是把選擇的策略調成5支,減少一支順勢系統,另外盤中多花了一些時間看盤,盤中出現"豬手"行為,又做了人工干預的事情,結果帳戶只賺9800,如果5支正常跑不去干預應該賺28,800,上個月豬手才付出代價1萬6千多元,今天又犯了同樣的毛病,少賺19,000,很慘。奉勸利用程式下單的人最好減少看盤,遠離盤面。把時間花在做程式交易開發研究或跟家人相處,都比較有價值。
為了真實的反應自己在程式交易上操作的狀況,寫一篇短文警惕自己的行為。也希望跟我一樣患毛病的人可以擺脫不良的行為模式,早日進入心安程式交易的狀態。

2010年1月5日 星期二

狙擊手操作

本資料由 理財周刊 提供 第 217 期

有機會把下列的程式碼,用multicharts改寫一下code,追蹤這個方法在台灣或是在大陸市場是否可行。



大概除了索羅斯之外,幾乎所有的投資大師,包括了巴菲特、彼德林區,或是坦伯頓,給投資人的金科玉律中,一定都會有一條「要長期持有投資標的,從事短線交易是無法致富的」,而這一條規範也正是各投資大師們能夠致富的重要因素之一。但喬治.安傑羅(George Angell)卻以狙擊手操作(Sniper Trading)縱橫期貨及選擇權市場,每日以當日沖銷創造自身財富,更以其所發展的高效率LSS系統,聞名於華爾街。

擁抱風險 參予實戰 才能成為短線操作專家

有別於巴菲特或是索羅斯,喬治.安傑羅是從芝加哥期貨交易所的場內交易員起家,從來沒有擔任過基金經理人,自然也就不用受到基金規模及相關法律等先天上的限制,能夠以自身財富「有效率」的為自己創造出更大的財富。在剛踏入期貨圈時,喬治也與一般投資人相同,在還沒有搞清楚狀況時,投入銅期貨的交易,而且迅速賺入可觀的「帳面收益」,而此時也與初出茅廬的新生一樣,一下子就沖昏了頭,持續加碼投入,而且持續賺進數倍的利潤,之後,即使是漲停板也持續追價。沒多久,市場行情急轉直下,不但將之前所賺的全賠了回去,甚至連當初所投入的本金也賠了進去。


但在往後20多年的場內交易員生涯中,除了讓喬治.安傑羅鍛鍊出敏銳的市場嗅覺,更讓他培養出正確的操作觀念及心理,所以,喬治除了教授投資技術或擔任投資顧問外,更讓他能夠完成「靠操作過生活」的理想(其實已經到靠操作過富裕生活的地步),一直到今日都是如此。

雖然喬治.安傑羅是靠短線交易及當日沖銷致富,但其本人也承認,短線交易充滿陷阱,風險其實非常大,但對於一般投資人而言,實在很難真正了解,所以,這種「搶帽子」的金錢遊戲,並不是所有投資人都適合進場去玩,尤其是想要一夜致富的人更加不適合。因此,對於要靠短線操作致富的投資人,喬治.安傑羅所會給的第1個建議就要,要將「風險管理」視為核心要務,因為不論是過度操作、資金不足,或是心裡只想著錢而不知自律,這些人很快就會因為自己的愚蠢而被市場所遺棄。

而與索羅斯相同,喬治.安傑羅也認為唯有透過多次實戰的淬煉,才有機會成為市場的贏家,因為操作本身就如同在戰場上進行白刃戰,必須要提起勇氣去擁抱風險,並且不斷地去進行嘗試,才能夠成為磨練出膽識。安傑羅就曾說過,對於一個投機者而言,面對成功最大的障礙就在於,你是否有勇氣打電話給你的營業員下單,所以,投資必勝的途徑就在於勇敢擁抱風險。這不單純的只是在鍛鍊操作技術而已,而且也是在訓練自己的耐心、膽量,以及自律精神,尤其是短線操作者,更要有獨立判斷的能力,要當自己的主人,「因為只有自己知道自己在做什麼時,才可以投入資金到市場去冒險」。因此,安傑羅將操作妙喻為一個不折不扣的左右腦遊戲,學習市場運作機制是一回事,而實際操作又是另一回事,道理就在於此。


鎖定市場時間與空間 狙擊手操作法瞄準短線趨勢

狙擊手操作法是喬治.安傑羅長期追蹤每日指數走勢,並且透過研究5分鐘K線圖,甚至是1分鐘K線圖所發展出來的短線操作戰法。基本上,是透過對時間與價格的觀察,並且使之量化,進而判斷市場趨勢變化的一種方法。而這種方式也只著眼於極短的未來,而不會去預測1星期,甚至是1個月後的未來。


喬治.安傑羅發現,在每天的行情走勢中,都會出現一段主要的趨勢,而這個趨勢是由前後兩個部份構成,安傑羅稱這兩個部分為2支腳,而且可以找到這兩支腳具有明確的對稱型態,構成所需時間與價格區間也都相當接近。

投資人可以從每日指數的趨勢線下功夫研究,找到1天主要的趨勢後,從最高點抓到最低點,可以發現該趨勢是由兩支腳構成,而中間則會夾了一段盤整期。簡單的說,一個趨勢的完整型態應當包括1支腳,加上一個盤整期,再加上與第1支型態相似的第2支腳,利用這樣型態上的資訊,就可以算出買賣點及停損點的位置。但有時候,這一整個趨勢所構成的型態,會跨日才完成,也有許多時候,第2支腳的長度和第1支腳相比,會略為短一些些。

在實際操作上,要先確認第1支腳的價格區間及花了多少時間,然後在盤整區中確立均衡點,而均衡點的辨別就是在盤整區中連續2根K線都收在同一個價位,表示多空雙方力量短線在此達到均衡,一旦照原趨勢突破均衡點價位,指數就會再發動另一波攻勢。但如果找不到均衡點,也可以把盤整區的高低價格加起來除以2,把這個數字當成均衡點,而這個均衡點就是抓住第2支腳行情的買點,但這並不等於第2支腳行情的發動價格。接下來就是確立第2支腳的目標價,基本上,就是第2支腳的發動價格加上第1支腳的價格區間,如此一來,就可以完成一段短線交易的旅程。

但喬治.安傑羅也提醒投資人:

第一、 盤整拉回時,如果拉回幅度超過第1支腳價格區間的0.618倍,立即發出停損單結束交易,而在指數突破盤整區後又快速拉回至盤整區中,亦表示型態失靈,也要立刻出清手中部位。短線操作就必須嚴守停損紀律,不論之後行情怎麼走。

第二、 真正的市場並不會經常性的達到「完美的型態」,第2支腳的價格空間可能會比第1支腳短,或是第2支腳到達到原先設定的目標價所花的時間會比第1支腳來得長一些。所以,不要硬撐一定要賣在目標價,只要時間到了,而且與目標價相去不遠,就可以執行平倉的動作。記住,盤勢如潮汐,絕不能太固執。

第三、 狙擊手操作法在短線操作中風險並不算高,但利潤也是相對有限。然而長期短線操作就是如此,與其一步登天發大財,不如長期性賺進低風險的利潤還比較實在。

以南科(2408)今年9月23日走勢為例(附圖),一開盤開在當日最低點27.4元,之後走了55分鐘(11根5分鐘K線)來到28.1元高點,到此,第1支腳走完,價差0.7元。接著就開始進入2個多小時的盤整區,區間範圍在27.9~28.1元之間,推算出均衡點在28元,也可以在此買入。12點15分第2支腳行情發動,起漲點在27.9元,就可以推算出將在13點10分出現滿足點28.6元,不過,實際上,到了13時10分時價格只到28.4元,而KD值也在此時出現短線賣出訊號,可以在此時執行賣出,到了收盤前才看到最高點28.6元,符合原先第2支腳滿足點的推算。

擅用LSS操作系統 輕易找出買點與賣點

喬治.安傑羅認為,市場本身只不過是個機率或是百分比的遊戲而已,而所謂短線操作的專業人士就是具備一種專長,以市場豁然率來推算,就是知道今天的壓力及支撐在那裡,也清楚知道最佳停損點該放在那裡,更可以找到關鍵突破點會出現在那裡。而安傑羅也就是根據這種概念,發展出LSS操作系統,尋找出交易當日的壓力及支撐之所在,也可以算出當日關鍵突破點會發生在那裡。


LSS操作系統其實是以喬治.道格拉斯.泰勒(George Douglas Taylor)的「三日周期」為基礎所發展出來的系統。泰勒觀察到市場在第1天會出現最低點,而且市場將上漲,第2天則會出現短線最高點,市場交投熱絡,第3天則會先出現高點,之後市場就會回挫,所以泰勒分別將這3天稱為買進日(L)、賣出日(S),及放空日(SS),而市場會以這樣的脈動周而復始。所以操作者就可以運用近3日的高低點、漲跌價差等數值,計算出上下檔一連串相關數值,稱之為買入封套(buy envelopes)及賣出封套(sell envelopes),再由封套內的數值加以平均,就可以計算出下個營業日的買點與賣點。

而LLS系統就是以這個觀念加以延伸而成,其中投資人要注意的幾個重要數字是上漲值、買進高點、今日高點、LSS軸點突破買入值、下跌值、賣出低點、今日低點,以及LSS軸點突破賣出值。

*上漲值:近3日的(今日高點-昨日低點)之平均值

*買進高點:近3日的(今日高點-昨日高點)之平均值

*LSS軸點突破買入值:

((今日高點+今日低點+今日收盤價)/3)×2-今日低點

求得近3日上述公式所得數值所得之平均值

*下跌值:近3日的(昨日高點-今日低點)之平均值

*賣出低點:近3日的(昨日低點-今日低點)之平均值

*LSS軸點突破賣出值:

((今日高點+今日低點+今日收盤價)/3)×2-今日高點

求得近3日上述公式所得數值所得之平均值

由上漲值、買進高點、今日高點、LSS軸點突破買入值這4個數值就構成1組賣出封套;由下跌值、賣出低點、今日低點、LSS軸點突破賣出值這4個數值則構成1組買入封套。將買入封套的4個數值加以平均,就可以找到次日的買入點,反之,將賣出封套的4個數值加以平均,就可以找到次日的賣入點。LSS系統「看似」複雜,但實際上沒有艱澀的數學公式,真的是個簡單又實用的參考指標。

另外,LSS系統中另外設有2套公式來衡量市場強度,也很簡單。一個是LSS一日強度指標,公式是:

((收盤價-最低價) ×100)/(最高價-最低價))=一日強弱指數

如果數值大於50,表示後勢看漲機率較高。反之,數值小於50,則表示後勢看跌機率較高。另外,還有LSS五日擺盪指標,公式是

5日來最高價-5日前開盤價=X

最後收盤價-5日來最低價=Y

(5日來最高價-5日來最低價)×2=Z

LSS5日擺盪指標:(X+Y)/Z

如果LSS5日擺盪指標大於70%,表示後勢看漲,如果小於30%,則表示後勢看跌,若在30%至70%之間,則表示看法中立。

克服心理障礙 向真正的專家看齊

雖然,喬治.安傑羅擁有狙擊手操作法及LSS操作系統2大短線操盤利器,但他仍然強調,要成為成功的短線操作者,關鍵並不是在於操作技巧,而是要克服諸多心理障礙,其中包括對風險的恐懼、太過自信、心裡老是想著錢、不知自我節制而過度操作,以及不知檢討、不肯面對自己的失敗等,不管你的操作技巧再好,這些心理障礙及錯誤都會將你提早被市場給掃地出門。


另外,安傑羅也提醒投資人,真正的專家是有自己的操作風格,而且不會輕易由1個市場跑到另1個市場,像他本人就只專注於S&P500指數而已,因為每個市場都有其自己的脈動,而這個脈動不是偶而涉足的人所能看到的,而是長期沈浸於該市場的人才能掌握得住,所以,要花時間及精力去了解市場,才能夠看出市場未來的發展。

演算法交易(Algorithmic Trading)大舉入侵台指期

2009年12月末端順勢走勢告一個段落。2010開年後2天的交易上下震幅達百點,很巧的是兩天振幅最大的時間都發生在9:18-10:10。高點都在9:18分,1月4日低點在9:57,1月5日低點在10:09。隨後進行反彈,收盤收在8160附近。交易型態非常相似,而且這兩天觀察台指期貨每個交易月份發現好玩的現象,明顯有一個程式專門在每個月份掛單,取消,掛單口數都一樣,除了近月份的台指期偶有不同的交易人加入,遠月份的掛單口數幾乎相同。這個現象說明了演算法交易系統已經在台灣正式進入交易階段了。明天可再觀察是否還是有相同的走勢型態。

去年記得台灣期貨交易所曾經舉辦過一個演算交易的論壇,一家叫Gold Fish的演算交易法程式撰寫公司來分享一些經驗,經過測試的階段,我猜測應該有國外的演算法專家系統已經進入國內。這會對國內期貨造成哪些影響呢?
1.成交量擴大,賺小差價的交易量增加,且專家系統都帶有自動避險的交易系統,一旦掛的委買委賣的委託單成交,就立即進入避險系統,會有相對應的交易產生
2.期貨零合遊戲中,小散戶的贏面更低,部分價差波動的錢被演算交易系統抽走了。
3.人工交易判斷Trader 被演算法系統操作Trader取代。(美國是個明顯的例子,80%Trader都用演算交易系統)
4.IT系統業者代理國外知名演算交易法系統。期貨業界資訊系統平台技術進步。
5.期貨商手續費收的更低,且需要額外加強風險控制管理。
6.主管機關會想辦法要管理,管理是否得當會產生新的問題。
7.法人業務興起,個人業務式微。
8.部分程式交易會虧錢,整個交易型態改變,程式交易設計者要多留心,隨時準備調整程式交易系統,增加系統的變異性。特別要針對 Garilla,sniffer等演算法系統作防衛。
9.反演算法的交易興起(未來某一天會產生),因為期貨市場是個零合市場,一旦演算法交易規則被識破,對作的一方有機會獲利。
10. .................
........

進入了一個新的交易新紀元,值得期待。



註解: 演算法交易(algorithmic trading),就是把一個指定交易量的買入或者賣出指令放入模型,該模型包含交易員確定的某些目標。根據這些特殊的演算法目標,該模型會產生執行指令的時機和交易額。而這些目標往往基於某個基準、價格或時間。這種交易有時候被稱“黑箱交易”。

2010年1月2日 星期六

2009年12月當沖程式交易績效


2009年12月
淨損益 109,100
總獲利 204,000
總虧損 (94,900)
勝率 62.50%
交易天數 24
賠錢天數 (9)
賺錢天數 15
平均獲利 13,600
平均虧損 (10,544)
最大連賠 3天 (22,600)
最大連賺 3天 67,100
交易口數 115

10月份開始正式下海利用程式交易以及自動化交易系統交易。11月程式尚未完全建置成功,心理狀況以及設備環境還沒有充分準備,11月份虧損10萬多,所幸加緊努力,2009年12月份總共上了6隻當沖程式組合出的投資組合,其中2隻逆勢,3隻順勢,1隻綜合。心理狀況改善,整個月份扣除3天交易系統出點狀況,用人工調整,另外兩天手癢,加入人為判斷調整,結果多賠17800元,這兩天的教訓讓我乖乖的選擇跟程式交易,這個學費繳的不冤枉,其他的19個交易日完全按照程式交易系統運行,整個12月份的損益還算滿意。觀察12月份台指走勢,趨勢非常明顯,呈現出強勢的多頭格局,這樣的情況適合程式交易的使用,雖然比較單一買進持有策略,績效並不突出,但突破7800後,程式交易系統仍然按照其邏輯出現買進訊號,不會有高檔不敢買的人工缺點,自然可以搭上12月份多頭順風車,且仔細觀察程式之間彼此的互補性,符合設計原理,表現出應有的水準。且這個月份讓程式交易接手,時間空出許多,多出來的時間多研發了4個策略,商品也從台指交易跨到電子期貨以及大陸的銅商品期貨,1月份將把時間研究留倉順式系統、價差交易以及大陸商品期貨的資料測試,希望2010年可以完成多策略、多商品、跨市場等目標。