2009年9月12日 星期六
HTS程式碼範例:在畫面顯示當日損益
這個標題跟我接下來要講的東西其實不是那麼完全的Match,這一篇應該是僅限在"當沖"這樣在每天收盤前一定清倉不留部位過夜的模式。方式其實跟上回講在畫面上顯示進出訊號的價位那篇大同小異,只是這一次要引入過去的「從績效累計計算下次交易口數的初步」那篇使用到的一個函數:I_ClosedEquity,部位結束後的帳戶餘額。
廢話不多說,先看程式碼:
Value129= iff(T=134500, I_ClosedEquity, Value129)
if T=134500 then
TXT_Content = "$"+NumToStr( I_ClosedEquity-Value129[300/BarInterval],0 )
TXT_onChart = TXT_New(Date, Time, iff(Value129-Value129[300/BarInterval]>0, Lowest(L,300/BarInterval), Highest(H,300/BarInterval)),"")
TXT_SetString(TXT_onChart, iff(Value129-Value129[300/BarInterval]>0, "|n"+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"+TXT_Content, TXT_Content+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"+"|n"))
TXT_SetStyle(TXT_onChart, iff(Time<111500,0,1), 2)
TXT_SetColor(TXT_onChart, iff(Value129-Value129[300/BarInterval]>0, DarkRed, DarkGreen))
end if
我們用一個變數(Value129)來記錄每天當天收盤時帳戶餘額,之後再用盤中當下的帳戶餘額減去昨天收盤時的帳戶餘額就可以知道今天一整天的損益了。這樣的方式我還沒有經過盤中的檢查實驗,只是我今天閒得無聊想到的。想像中的狀況是盤中會僅有一個數值在顯示著已經實現的當日損益,不需要等到收盤。
隨手"做"幾個訊號來掛上上面那段程式碼,並且也把顯示訊號價位的一併帶進來,得到畫面如下:
如果有注意到那些點位的加減計算,應該會覺得帶有$符號的當日損益的合計數值不大對?是的,因為 I_ClosedEquity 這個函數的所拉出的數值是會把我們對於程式所設定的滑價與交易成本通通計算進去。所以,自己當天真實的執行損益,也可以跟這個數值比較看看,實際損益比訊號所計算的損益有多少差距。
熱門文章
-
這個秘密我過去只在課程或是講座中才會提。今天把它公開,為什麼我以前下大台,到了近年卻下起小台來了。理由就是...這是天上掉餡餅的好事啊!不費吹灰之力就可以提昇自己的交易系統績效的期望值,何樂而不為! 首先,你應該會覺得小台的手續費比大台貴,怎麼可能不下大台改去下小台?簡...
-
在 MultiCharts 裡,本來我以為 EntryPrice(0) 就代表了最後一個進場的成本價,經過測試後,確定了 EntryPrice( 0 ) 不是最後一次進場價,而是最後進場方向的第一筆價格(可查閱"程式交易語法大全 page 255")。什麼意思...
-
這一篇講的是如何把交易系統的倉位訊號在結算日清空部位,但是在隔天建立同方向且口數相同的訊號。也就是說,如果你的交易系統是屬於持有口數會變化的那種的話,就會需要(適用)以下這種方式。 這個方式會讓你的系統有結算日當天最後一根的K棒沒有部位,因為每個人所採用的週期時間不同,所以清...
-
在 myCTA 的基礎上,我有把這個基礎擴展到多商品,過去曾經有極為少數的幾位朋友上過 myCTA 多商品版本的的課程(當時取名為 SmartCTA),但後來就不再開課,coding 難度實在太高了~ 因為要交易多商品,造成在下單設定上的困擾。當你要同時交易 50、100、20...