2007年6月26日 星期二
在分線中抓取日線的價格
在HTS中,也許有人會需要抓取日線的價格(開、高、收、低)的資料來使用,但是在分線中除非你用時間的限定加上INDEX去抓取特定時間的價格,不然是抓不到日線的資料的,尤其是昨天、前天、大前天...前N天的日線資料。
HTS中有內建在分線中抓日線資料的函數,但是使用上卻不是直接抓取就行,必須如下的架構。
************
//先宣告一個陣列
Array:MyArray[84](-1)
VALUE1=HighOfDay(0,MyArray)//這就是今天的日線高點
VALUE2=HighOfDay(1,MyArray)//這就是昨天的日線高點
VALUE3=HighOfDay(2,MyArray)//這就是前天的日線高點
VALUE4=CloseOfDay(0,MyArray)//這就是今天的日線收盤
VALUE5=LowOfDay(1,MyArray)//這就是昨天的日線低點
VALUE6=OpenOfDay(2,MyArray)//這就是前天的日線開盤
************
然而,如果你直接這樣去取很多個日線的資料來運用,你會發現...錯亂!!
我猜測這算是HTS的一個BUG吧,不過,你可以這樣去取「1」個日線資料來用。
如果你一定要抓好幾個來用,比如要在分線中知道日線的5日均線,就必須要知道5天的收盤價來相加除以5,但是在程式中取5個如下的資料卻會發現是取不到的,用PRINT指令去檢查就知道你只會抓到最近的一個。
這時候,請你「自創函數」,也就是說自己做函數,來抓取「今天的日線收盤」、「昨天的日線收盤」、「前天的日線收盤」...AND SO ON
然後再用運用函數的值來計算,很複雜吧^^,加油!!
我舉個例:這就是自己做一個3天前的日線收盤的函數。
塞入如下程式碼
*******
Array:CloseArray[84](-1)
CLOSE_DAY_Y3 = CloseOfD ( 3, CloseArray)
*******
那麼你作了「一堆」這樣的函數之後,想在分線中計算日線的5日線就可以這樣寫了:
*******
VALUE1=( CLOSE_DAY_Y0+CLOSE_DAY_Y1+CLOSE_DAY_Y2+CLOSE_DAY_Y3+CLOSE_DAY_Y4 ) / 5
*******
Now,try it!
熱門文章
-
這個秘密我過去只在課程或是講座中才會提。今天把它公開,為什麼我以前下大台,到了近年卻下起小台來了。理由就是...這是天上掉餡餅的好事啊!不費吹灰之力就可以提昇自己的交易系統績效的期望值,何樂而不為! 首先,你應該會覺得小台的手續費比大台貴,怎麼可能不下大台改去下小台?簡...
-
在執行多策略組合交易的時候,每個策略圖表獨立運作,各自下各自的單。但我們常常可以發現在某些時候(特別是開盤),出現 A策略要翻多、B策略卻要翻空,對我們的帳戶來說,因為策略圖表獨立運作的原因,實際上卻幾乎同時發出買進、賣出的委託單,而成交回來的價格又往往是買外盤、賣內盤,這完全是...
-
承繼自上篇「 函數:十進位轉二進位 」。 說實在的,這篇文章在我自己的心中就像是在引導讀者走向 Curve over fitting。這個方法,基本上這麼做跟把圖表攤出來,搞 DataMining 也滿接近了 XD 過去,我們會在策略的測試中使用"參數"...
-
緣起於某位參加我課程的同學來信問我的問題:要如何以最佳化的方式測試各種不同出場方法的組合可能?(實際內容就不在這邊贅述了)。一開始,我們用了 Switch... case 的方式去做,透過 case 的數值來做最佳化,以最佳化的方式去做,是為了大量測試。但這只能得擇一的測試結果。...