搜尋

搜尋結果

新書《ChatGPT如配合Multicharts學習程式交易》近日各大書局已有售
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2023-12-20

新書《ChatGPT如配合Multicharts學習程式交易》近日在各大書局已有售。 若由一個完全新手要完全熟習Multicharts的語法Power Language,再學習輸入數據、做回測及連接Auto Trade等步驟可能真的需要一定時間。 不過,自ChatGPT出現後,讀者們已可以直接用中文或英文將交易策略寫出來,再運用ChatGPT直接編寫出答案,無論是簡單的技術指標運用,又或陰陽燭策略,甚至較複習的套利策略,ChatGPT都能運用Multicharts的語法直接編寫答案出來。 雖然ChatGPT的答案未必全部正確,但學員只要明白Multicharts語法的使用原理便能懂得直接修改,這種學習方式比過往需要背誦大量Multicharts語法例子的方法更為有效。 而且若大家要寫大量的交易策略做回測也更為方便,因為所有策略不用自己由頭寫起,ChatGPT寫出大部份內容後再修改便可以,最終能節省不少時間。 本書的例子中除了常見的技術指標使用,也有自行組合的陰陽燭形態,以及一些比較高階的短炒及Daytrade 策略,包括分析恒指重磅股走勢短炒期指的方法、長短倉短炒策略 同時買入騰訊沽空阿里巴巴等,這些策略只要ChatGPT及Multicharts同時配合使用,要寫出來及再修改也並不困難。 另外一些較少見的技術指標如適合Daytrade或短炒的Detrended Price Oscillator、Chande Kroll Stop、Super Trend、klinger Oscillator等,又或用以判斷單邊市及上落市的Choppiness Index,在交易時也有一定的參考價值,本書除了介紹這些指標的特別用法外,也會講解如何透過ChatGPT協助編寫這些指標,並同時在Multicharts上直接運用。

2015年每天只交易第一個MACD訊號也能賺錢?
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2015-09-15

近日有學員問及,若2015年每天只交易第一個MACD12,26,9的金叉或死叉訊號好像也能賺錢,原來這麼簡單的策略在2015年也能有不俗回報 但其後他再測試2014年的數據卻又發現虧損收場。 附圖是在2015年每天只交易第一個MACD12,26,9入市訊號的BACKTEST REPORT,結果是2015年1月2日至9月14日獲利41.77%,15萬元本金交易1張大期,資金累增至212652元扣除手續費手及滑價,但2014年卻虧損34.76%。 2015年回報 2014年回報 在這當然不是指只交易第一個MACD入市訊號便能賺錢,這絕不可能如大家自行測試,也可看到雖在2015年能賺錢,但部份交易坐倉的幅度達200點或以上,在真實交易時根本承受不了這份壓力。 以下是利用Amibroker簡單地寫出每日只交易第一個MACD入市訊號的方法, 1先開啟Amibroker的Formula Editor 2 把以下的language貼上 SetPositionSize1, spsshares;BuyCondition = CrossMACD12, 26, Signal12, 26, 9;ShortCondition = CrossSignal12, 26,9, MACD12, 26;CrossCondition = BuyCondition OR ShortCondition; CrossTotal = SumCrossCondition, BarsSince DateNum=RefDateNum,1;Buy = BuyCondition AND RefCrossTotal, 1==0;Sell = 0 OR TimeNum gt;= 160000;Short = ShortCondition AND RefCrossTotal, 1==0;Cover = 0 OR TimeNum gt;= 160000; ProfitPercent = Optimizeldquo;WinPercentquot;, 1.6, 0.2, 2, 0.1;LossPercent = Optimizeldquo;LossPercentquot;, 1.2, 0.2, 2, 0.1; ApplyStopstopTypeProfit, stopModePercent, ProfitPercent;ApplyStopstopTypeLoss, stopModePercent, LossPercent; 3 在backtest前根據以下做設定 一個十分簡單的策略,在2015年又好像比很多的策略回報更好 其實,既然單單是交易每天第一個MACD入市訊號也能在2015年賺錢,是否能根據這個觀念去作出修改 藉此想出一套個人的交易策略 比如出訊號後把入市位介定在其他水平,如平均線等 又或將1分鐘圖表改為3分鐘、5分鐘或10分鐘的圖表 另外,是否每天也需要交易 如附圖中便是將這個簡單得不可再簡單的策略,加上與上日收市的MACD作比較這個準則,藉此剔走一些入市訊號,結果2015年1月2日至9月14日獲利由41.77%提升至182.37%,15萬元本金交易1張大期,資金累增至423547元扣除手續費手及滑價。 以下是利用Amibroker簡單地修改上述策略的寫法 SetPositionSize1, spsshares;BuyCondition = CrossMACD12, 26, Signal12, 26, 9;ShortCondition = CrossSignal12, 26,9, MACD12, 26;CrossCondition = BuyCondition OR ShortCondition; CrossTotal = SumCrossCondition, BarsSince DateNum=RefDateNum,11;Buy = BuyCondition AND RefCrossTotal, 1==0;Sell = 0 OR TimeNum gt;= 160000;Short = ShortCondition AND RefCrossTotal, 1==0;Cover = 0 OR TimeNum gt;= 160000; ProfitPercent = Optimizeldquo;WinPercentquot;, 1.6, 0.2, 2, 0.1;LossPercent = Optimizeldquo;LossPercentquot;, 1.2, 0.2, 2, 0.1; ApplyStopstopTypeProfit, stopModePercent, ProfitPercent;ApplyStopstopTypeLoss, stopModePercent, LossPercent; 當然這個也只是作參考,並不是單單這樣便能賺錢 在課堂上向來也鼓勵學員多嘗試,如上述策略是每天開市後的第一個MACD入市訊號,那若然把策略改為每天「正股市場」開市後的第一個入市訊號,結果又會如何 利用程式的好處就是可以自行去測試,再加上自己經驗得來的交易觀念去修正任何一個策略,繼而進行程式交易。不過在這想提醒一點,2015年港股及期指的波動情況確實比過去五年中任何一年更大,這也令不少Trader的策略在2015年的回報與過去數年不同當然有些高手年年也大賺的。 此外,在這想指出一個問題,2015年港股及期指的波動情況與過去數年不同,相信滬港通的推出是其中一個原因,這點在滬港通剛推出時在講座中提及,但凡一些政策上的轉變,也會令市場的波動產生變化,正如2011年推出期指延長交易時間,大家在設計交易策略時便常遇到一個問題,策略放在2015、2014、2013、2012、2011年也可以賺錢,但在2010及之前的年份表現卻不同,這便是政策令市場波幅改變的結果。 如何去解決這個問題,如何在新政策推出後再修正個人的交易策略,這方面在課堂中會與大家探討

如何介定即市交易期指的最佳平倉時間
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2020-04-12

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