搜尋

搜尋結果

【James Altucher的Unilateral Pairs Trading 策略- 5年回報627.75%】
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2024-07-22

在金融市場中有一個人物頗具爭議性,他曾經身家由逾千萬美元跌至一無所有,其後又輾轉變得富有。他便是James Altucher,現在大家基本上經常看到他演講的內容都是與個人成長及心靈有關。 James Altucher試過銀行戶口只剩下143美元,但其後又把身家翻至1500萬美元,要說心靈的故事他自然有很多東西可以發表。但他除了創業做生意外,由於曾在多家對沖基金工作,所以一直都有投資股票及加密貨幣。 對他有興趣的讀者也可以留意他的blog httpsjamesaltucher.comblog 圖一 他blog內的內容有些其實也有參考價值,例如他寫過一篇題目為《THE PERFECT INVESTMENT STRATEGY》的文章,他會說自己本質上是一個非常簡單的人,並不真的喜歡投資,只喜歡學習,喜歡遊戲,喜歡看電視,寫作,做播客等等,還有非常喜歡睡覺。他認為完美的交易策略就是在生活中找到最具潛力的領域,然後買入這個行業中全部的股票。 例如你在1970年到1990年間看好電腦行業,然後你投資每一家即將要上市的公司,假設你買入了合共100家電腦公司股份,每家用1,000美元去買,那你總共投資了10萬美元。但這100家公司中有98家公司最後都破產,不過這並不重要,因為存活下來的2家公司能把你的資產翻至350萬美元。若超過兩家公司能存活,你能賺取的利潤會更多。 除了blog外,他還寫過兩本書,分別是《Trade Like a Hedge Fund》及《Choose Yourself》。圖二 《Trade Like a Hedge Fund》這本書在2004年已出版,筆者就頗為喜歡,若中文版的名稱應該較多人聽過,中文譯名為《20招成功交易策略》,書中他提及的分析方法其實很值得參考。首先他認為交易策略應該簡單的策略才是交易中最穩鍵的。但所謂簡單的策略,又不是像Larry Connors那種初級班的策略。 可以說James Altucher的策略是由複雜的策略進行簡化,目的就是提高真實交易時的執行加,這與那些RSI2超賣再超賣的策略並不相同。 James Altucher在《Trade Like a Hedge Fund》中曾經提及一套名為「Unilateral Pairs Trading」的策略便很值得參考,筆者研究Pair Trade的方法已經很久,而James Altucher也在書中道出了Pair Trade的關鍵,他認為Pair Trade雖然對市場的方向是中立的,意思是你沒有估市況升跌,但實際上對兩個產品的差價是有偏見的,做Pair Trade的人是在估計差價會擴大還是縮小,所以也會要去估,而非完全沒有任何預測就能賺錢。 但Pair Trade的問題是,炒家同時運用兩個「工具」來做交易,在真實交易時當兩個工具的價格也變得不尋常之時,炒家就不只面臨一個資產的風險,要處理的事情就會更多,而且也存在兩個資產同時虧損的可能性。圖三 不過,運用Pair Trade的人都是十分擅長去估計兩個工具之間的差價,有些人擅長預測股價,有些人則會認為預測兩個工具的差價變動會較容易。不過,差價的波動會較股價為少,而且若市場越來越多的人在做Pair Trade,差價會變得更少,因此炒家若要追求更高的回報,就需要利用槓桿,但風險也會因而提升。 所以James Altucher認為,其實可以進行單邊對沖交易,那就是雖然觀察兩個資產的價格差距來做交易,但最終只會買入或沽空其中一個資產,他認為這樣做其實更好,因為其中一個資產的價格變得很不合理時,炒家會預測價格會回歸正常值,假設兩個資產中更為波動的一個資產偏高時便直接沽空,偏低時便直接買入,根本不用兩個資產同時交易,最終也是能達到預測價差收窄的結果,但進行單邊對沖交易就更加有靈活性,而且風險相對較低。 但「Unilateral Pairs Trading」不只適合交易正股,若用以交易流動性更大的ETF如QQQ及SPY等,James Altucher認為效果會更佳。筆者則把相關策略修改,再用SQQQ的數據作測試,結果也證實不俗。下一篇文章會告訴大家 James Altucher所研究的「Unilateral Pairs Trading」詳細內容。 來看Patreon文章 筆者Patreon httpswww.patreon.comquantshk 網頁www.quants.hk

測試即市交易系統的竅門
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2015-03-25

即市走勢中,一個升浪或跌浪究竟平均會運行多久,大家有統計過嗎 很多Trader只會注意「空間」的止損,而不會考慮時間因素。只要價格跌到某個事前設定的價格,就會止蝕離場,這就是空間止損。空間止損法的好處在於,可以減低你的壓力,當帳面虧損到了你接受不到的程度時便平倉止損,但缺點在於即使到了止損的階段,因走勢突變,你的虧損也可以比預期更大。其實很多Trader都面對這個問題,為此,便需要引入時間止損的概念。時間止損是根據升浪或跌浪平均運行的時間來做止損,甚至更改為入市訊號。 不過首先要介紹運用時間加入個人交易系統的概念,其實在做backtesing時大家可以統計一下,假設過去一百個交易日,每一個升浪運行的時間,即市走勢中,一個短的升浪可以運行數分鐘,也可以運行數小時,若然你發現在過去一百個交易日中,即市走勢中一個最長的升浪也只運行兩小時,那當某日你發現一個升浪已維持了接近兩小時,若然你已持有好倉,那便代表了已到達你需要平倉的時間,又或已是反手造淡的時間。 這種統計方法對提高交易的回報很有幫助,當然有經驗的Trader應立即想到一個問題,究竟應如何介定一個升浪完結 升浪可以調整過後又再上升,那在即市走勢中,究竟如何去計算這個升浪維持的時間有多長 最簡單的統計方法是,一個即市走勢中的升浪展開後,先計算由升浪底部計起所上升的幅度,若其後出現調整,調整幅度是升浪的「三分之一」以上,那便代表整個升浪已完結,其後即使在調整後再展升浪,也屬於第二個升浪的開始。當然,大家也可用同一種方式去介定一個跌浪已完結,並同時統計在過去一百個交易日中,跌浪維持的時間平均有多長,藉此判斷若持有淡倉應何時平倉,同時又應何時反手造好。用這種方式去計算一個升浪或跌浪究竟平均會維持多少時間,這比你繼續研究何時入市最好,不斷去尋找新的入市方法更有效 例子一 請留意圖中如何介定升浪已完結 例子二 請留意圖中如何介定跌浪已完結 現在大家應有了對分析升浪或跌浪維持時間的概念,回說如何去避免只做「空間」止損,而需要加入「時間」止損。在做backtesting時,除了可以統計一下升浪或跌浪平均運行的時間外,也可以統計一下,每一個入市訊號後,究竟平均需要多少時間才會展開升浪或跌浪,比如你設計了一套交易系統,由MACD與STC這兩個技術指標組成,當兩個技術指標同時發出買入訊號時,你便會入市造好,但你入市後常會遇到一個問題,雖然交易訊號出現了,但市況並非立即上升,很可能只是在整固,又或很少幅度的調整,但你看到價格雖沒有上升,又有跌至你的止損價位,你運用的「空間」止損法,根本派不上用場。其後價格整固了一段時間後突然急跌,下跌的速度可以很快很快,當你決定止蝕時,很可能根本已錄得比你預期更大的虧損。 又或交易訊號出現後,你同樣按訊號入市造好,但市況只是在整固,整個的時間可能長達兩小時,甚至更久,你上午的市況中已買入,但就是不想持倉過午市,結果提早平倉離場,不過訊號的威力卻在下午市況中才發揮出來,你上午平倉之時可能錄得輕微虧損,但下午市況中的升浪你卻沒有把握得到,「一來一回」其實你的損失經已很大。 故此,我們要做的,除了統計交易訊號的獲利比率外,也要統計一下交易訊號出現後,究竟平均要多少時間才會展開較明顯的升浪或跌浪。例如,在過去一百個交易日中,出現了一百五十個造好的交易訊號,而這一百五十個造好的交易訊號,平均需要十至十五分鐘才會展開較明顯的升浪,那這個統計數據對你來說便很有參考價值,因為你入市後,若然市況只是在整固,即使出現帳面虧損,只要未到達你止損的程度便什麼也不用去做,但若然整固的時間已維持了達十五分鐘,由於已超過了你統計的平均時間,那便需要用「時間」止損的方式來止損平倉,這樣是避免冒上不必要的風險。 此外,在做backtesting時,最好是要同時統計一下,入市訊號出現後,雖然按預期出現升浪,但平均需要多少時間才會到達目標價。例如,在過去一百個交易日中,出現了三百次造好及造淡的訊號,究竟這三百個交易訊號中,平均需要多少時間才到達目標價。這點十分重要,因涉及你是否應該持倉過午市,同時你要考慮一點,由於你是Day Trader,若然你的統計結果是三百個交易訊號中,平均需要三十分鐘才會升或跌至目標價,而最長的一次則需要一小時才到達目標價,當交易訊號出現在三時四十六分,你便要十分小心,甚至應放棄入市,因為期指市場是在四時十五分收市,離收市根本不足三十分鐘,或許在你的統計中,曾有些交易訊號是在短短數分鐘便展開升浪並升至目標價,但這個不是一個平均數,你統計過一百個交易日,甚至更多的交易日後,取其平均數值才值得參考的,單憑一次或次的交易經驗不能作準,故此為了避免冒上不必要的風險,這種情況便應放棄入市。 那若然距離收市的時間有三十分鐘以上,但統計結果顯示最長的一次則需要一小時才到達目標價又應否入市 答案是需要的,因為不能因少數出現的特殊數據而放棄一個獲利機會,但這種情況下,Day Trader只有緊記一點,必需堅持只做即市交易的原則,即使收市前仍未到達目標價也需要平倉離場。 將「時間」止損加入你的交易系統內是提高回報的最有效方法之一,特別是即市交易,這能避免了很多市況突然大逆轉所帶來的重大虧損。其實所謂的backtesting絕對並非只在尋找入市方法這樣簡單,需要統計的事項十分之多,但作為Trader與其他行業也是一樣,你付出越多,你的收穫便相對越多。

用Trading View寫Machine Learning算法(二)|將簡單訊號變成實用策略|Random Forest (隨機森林)|動態計算訊號權重|麥振威
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2025-03-11

用Trading View寫Machine Learning算法二|將簡單訊號變成實用策略|Random Forest 隨機森林|動態計算訊號權重|麥振威 上一段影片已介紹了KNN算法,自己一直也強調有很多的演算法其實也適合用來設計交易策略。要學習AI、Machine Learning就要明白各種的演算法,這次介紹的Random Forest也是常用的演算法,若配合「權重投票」,可以寫成很多不同的策略。 雖然大部份人都會運用Python來寫Random Forest,但我們可用Trading View 的pine script,配合array的寫法,不斷「動態」去計自每個入市訊號的權重。 例如以下四個十分簡單的入市準則 1MACD的快線是否高於慢線 股價是否上升下跌 2Zero lag MACD的快線是否高於慢線 股價是否上升下跌 3RSI升穿或跌穿50 股價是否上升下跌 4ATR是否升穿或跌穿其SMA10 股價是否上升下跌 例如MACD的快線升穿慢線,其後股價真的上升的話,這個訊號的的權重就會增加0.1,若果股價下跌,這個訊號的權重就減0.1,不斷「動態」咁去計算每個入市準則既權重,權重越高,之後再有訊號出現時,重要性就越高。用這種方法,一樣可以有Random Forest的效果,而且一些好簡單的入市準則,只要經過這個步驟來組合之後,效果都可以提升。 重點是用「動態」的方法去計算每個入市訊號的權重,只要學懂這種方法,過去大家想過很多的交易策略,都可以嘗試去改良。例如你同時運用了1分鐘圖、5分鐘圖、15分鐘圖、小時圖的訊號綜合一齊變成一個買入策略,但有時候1分鐘圖、5分鐘圖的訊號配合,股價便已上升,但有時候則確實要四個timeframe的訊號也配合才算準確,原因就是市場的波幅會不斷變化,透過「動態」的方式去計算毎個timeframe的訊號權重應多大,整個策略的效果就會有很大的不同。