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天前的日線收盤的函數。
Image Hosted by ImageShack.us


塞入如下程式碼
*******
Array:CloseArray[84](-1)
CLOSE_DAY_Y3 = CloseOfD ( 3, CloseArray)
*******

Image Hosted by ImageShack.us



那麼你作了「一堆」這樣的函數之後,想在分線中計算日線的5日線就可以這樣寫了:
*******
VALUE1=( CLOSE_DAY_Y0+CLOSE_DAY_Y1+CLOSE_DAY_Y2+CLOSE_DAY_Y3+CLOSE_DAY_Y4 ) / 5
*******


Now,try it!

熱門文章