2017年4月25日 星期二

策略管理機制的驗證:Random equity


程式交易小學堂─期貨投機事業的王道
前文說過,KPI 只是整個管理系統的起點,因為所有的管理動作,都必須有"衡量",而且是一致化、量化的衡量,不是隨個人喜好的衡量。

然而,我們會想出各種可能的 KPI,也可能因而衍生出各種不同的管理動作流程。這時,另一個問題就出現了:哪一個有效?又誰比誰更有效?有效又是表現在哪些面相?在每天的真實交易績效表現上,這是我們時刻要面對的,絕不能僅僅只是認定它有效就帶過。

2017年4月19日 星期三

券商版MultiCharts讀取文字檔的函數製作


程式交易小學堂─期貨投機事業的王道
因為要讀取文字檔,需要用到外部的 DLL 來完成。一樣的,這會使用到被 券商版-MultiCharts 攔截的關鍵字,所以操作流程與原理,跟之前的教學是一樣的:讓券商版 compile 一個函數出來,建立好內部的連結,再使用專業版 compile 過函數而產生的 dll(實際上的動作執行者),覆蓋掉券商版內的 dll,把實際的動作執行者,來個狸貓換太子。喔,不~是太子換狸貓 XD

這次示範所用到的函數程式碼就是舊文中的內容:http://www.yctseng.net/2015/07/elcollectionsdll.html

2017年4月11日 星期二

券商版MultiCharts也能調用外部DLL


程式交易小學堂─期貨投機事業的王道
一些 專業版-MultiCharts 能做,而券商版不能做的事情,除了圖表數量限制、投資組合回測外,最重要的就是在編輯程式碼之中,幾乎把要對外聯繫的關鍵字都給切斷了。這一篇就是教你,如何讓你的 券商版-MultiCharts 重新取回對外聯繫的能力。當初獲知的知識來源:http://www.coco-in.net/thread-15559-1-1.html

這個範例是以呼叫 DLL 的方式來做文字檔的輸出,同理,只要你拿到或著自做讀取文字檔的 DLL,甚至連接自己的資料庫,只要透過 DLL,都可以照樣套用,讓你的 券商版-MultiCharts 能對外寫入、讀取檔案,光是對外部的文字檔做讀與寫,就能創造類似資料庫的效用了。

本範例使用了凌波微步大分享的 outputfile.dll,我放在 C:\AutoTrading\ 下供 MultiCharts 調用。

我建議,當你需要做這樣類似 "越獄" 的功能,都以「函數」優先,因為在任何指標、訊號、函數要呼叫其他函數的的程式碼編譯,券商版編輯器是不會往前追查去攔截關鍵字的。

2017年3月31日 星期五

函數(_OptimalF):Optimal F


程式交易小學堂─期貨投機事業的王道
說起資金管理,大約都會耳聞過 Kelly formula,也會聽過它其實用在交易上的問題很大。後來有以 Kelly 精神生出了 Optimal F。而它的來由與計算方法,我就不多贅述,請自行參考:牧清華的文章

要把 Kelly formula 寫成 MultiCharts 函數在策略中或是其他引用,算是一小片蛋糕。這一篇要分享的是,我一開始看了牧清華介紹,覺得計算很麻煩的 Optimal F。

2017年3月29日 星期三

交易管理的源頭:圖表績效KPI


程式交易小學堂─期貨投機事業的王道
論述、講課了幾年後,最近,總算感受到台灣程式交易圈,交易是需要建立管理系統這個觀念,漸成顯學之勢。在交易管理系統中,對策略圖表的績效評分就是所有管理行為的源頭,先有了策略績效的評分,才以策略績效的評分作為資金分配的對應動作。

我與認識的友人絕大多數都是做順勢的投機交易,很習慣的把商品走勢本身的波動就等於策略是否能賺錢的等量指標。事實上,我認為這是錯誤的連想。就算商品價格真的有一個波段走勢的出現,你有沒有看過原本設計為順勢波段的策略卻是虧損的?當行情看似箱型、旗型整理、甚或大小喇叭走勢,自認為順勢波段的策略卻獲利了?如果你也有過這樣的經驗,就該回頭想想,商品價格本身的走勢類型,真的是能直接連動你的策略績效嗎?很明顯的,不是。過去,我們習慣以商品價格本身的波動來衡量風險的大小或利潤的預期,現在我認為,這樣的想法問題很大!

2017年2月26日 星期日

多策略多商品分散了風險?


程式交易小學堂─期貨投機事業的王道
我們堅持用簡單規則來開發交易訊號的話,幾乎難以避免的:很難取得看起來很漂亮的 Equity curve,即便只存在於回測不理會未來都很困難。於是,我們走向了不管是多策略或是多商品的組合(Portfolio)來產生更加線性的回測績效曲線,原因在於不同的商品或是交易規則,往往能因為各個策略的 Drawdown 發生的時間區間錯開(也許因為規則本身、也許因為商品本身),得到整體組合的 Drawdown 並不是各個策略的直接加總;但在每個交易訊號都被忠實執行的前提下,獲利會被直接加總,因而我們就看到了組合的報酬風險比上升,相對於單一策略。

或許是金融業的廣宣效果,又或許是學校的研究報告?我不知道何時開始,讓資金分散到不同的策略或是商品,被解釋成風險的分散。是因為 Portfolio 的 報酬風險比 遠較單一訊號、單一商品的更佳嗎?只是,過去幾年我也就這麼接受多商品多策略等於風險分散的論點。

直到最近兩年吧?我對把交易分散到多商品、多策略是否就是把風險分散的論點,越來越感到懷疑。

2017年1月28日 星期六

函數(_MonthlyProfit):過去第N個月的當月損益


程式交易小學堂─期貨投機事業的王道
這一篇文章根本就是用過去的一篇來做的修改,算是相同邏輯下的不同週期切割而已。

做個函數來取得以月為單位的損益數值。
函數名稱:_MonthlyProfit,參數 為 monthsAgo。參數輸入 0 可取得這個月的損益變化,輸入 1 則是上個月,2 則是上上個月... and so on。

函數(
數值、序列)程式碼如下:
input: monthsAgo(Numeric);
var: equity(0);
array: monthEquity[](0);


equity= i_OpenEquity;
array_setmaxindex(monthEquity, monthsAgo+1);


if month(D)<>month(D)[1] then
begin
  _arrayShift(monthEquity);
  monthEquity[1]= equity[1];
end;


if monthsAgo=0 then
  _monthlyProfit = equity - monthEquity[1]
else
  _monthlyProfit = monthEquity[monthsAgo] - monthEquity[monthsAgo+1];


效果:


熱門文章