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!
熱門文章
-
在 MultiCharts 裡,本來我以為 EntryPrice(0) 就代表了最後一個進場的成本價,經過測試後,確定了 EntryPrice( 0 ) 不是最後一次進場價,而是最後進場方向的第一筆價格(可查閱"程式交易語法大全 page 255")。什麼意思...
-
去年開發「 把策略訊號轉換成選擇權去執行 」的時候,一直有個實務上的困擾:標的物價格。 我要把訊號轉成選擇權的時候,事前不能精準的知道要交易哪一個履約價、Put 或 Call,需要在訊號或市況變化的當下才決定交易標的。但在 MultiCharts 的運作架構上,需要開啟欲取...
-
看到朋友分享的一篇文章( https://www.facebook.com/eric.hsu.73/posts/9305791976115818 ),截圖如下: 簡單總結一下: 決策是否投入賭局,要在賭局對自己呈現正期望值,並且如果賭輸的損失發生時自己仍能多次承受的前提下才...
-
在 MultiCharts 或是 TradeStation 中都有 Set開頭的一些指令可以運用,比如 停損─SetStopLoss、停利─SetProfitTarget,這些都是所謂的 ThisBar 模式運作的特殊指令,它們讓你在條件成立的當根K棒就可以做出對應動作,而不是一...