[TS懶人包] [保險服務]

2009年8月24日 星期一

HTS 中 Highest 和 Lowest 的問題

其實我到現在還不是很了解這個問題到底是怎麼產生的…不過他就是產生了…就是在 HTS 內如果有 If 判斷內使用 Highest 或是 Lowest 來抓取最高、最低值的時候…常常會和預期中的值不一樣。

這個情況我想都是出現在 IF 的判斷式中…

請先看看下面的程式碼:

if date >= 1090824 then
print(date, time, lowest(low[1], 10))
end if

看起來很簡單對吧…就是在日期大於 8.24 號(也就是今天)的時候把前十根 k 線的最低價抓出來,然後將資料印在 debug 上…以下是印出來的結果:

1090824.00 85000.00 0.00
1090824.00 85500.00 0.00
1090824.00 90000.00 0.00
1090824.00 90500.00 0.00
1090824.00 91000.00 0.00
1090824.00 91500.00 0.00
1090824.00 92000.00 0.00
1090824.00 92500.00 0.00
1090824.00 93000.00 0.00
1090824.00 93500.00 6591.00

結果前九根得到的數值都是 0 …會有這樣的結果…實在是出乎意料之外…這應該算是一個很嚴重的 bug 了…程式內如果有用到 Highest 或 Lowest ,請多加注意這個 bug。因為這樣的結果決對不會是你所希望的。

至於要怎麼修正這個 bug…也許你可以把程式碼改成這樣:


value9 = lowest(low[1], 10)
if date >= 1090824 then
print(date, time, value9)
end if


出來的結果:

1090824.00 85000.00 6553.00
1090824.00 85500.00 6553.00
1090824.00 90000.00 6553.00
1090824.00 90500.00 6553.00
1090824.00 91000.00 6569.00
1090824.00 91500.00 6572.00
1090824.00 92000.00 6591.00
1090824.00 92500.00 6591.00
1090824.00 93000.00 6591.00

也就是在 If 判斷外面就先把 Highest, Lowest 的值取好,然後在 If 判斷內在直接去用已經取好的值。

5 則留言:

  1. DK版主你好,

    請教一下你這篇所提及的,
    highest/lowest問題,
    同樣程式碼在TS2000i版本中會有問題嗎?


    By 一直以來總是因為TS/HTS沒有完全結果而困擾的人

    回覆刪除
  2. dk大你好..請幫幫我這個新手 謝謝!
    1.在GS匯入資料中一個stmbol 是否只能存在著一個分時歷史資料?

    2.如果gs 的symblo中以有一個wtx& 商品 5分鐘, 之後在網路下載一個一分鐘歷史線圖 , 使用gs匯入時, 發現多出個fitx商品,但是他是一分鐘資料的,有什麼辦法可以把這一分鐘併入wtx&商品裡面並成只有一個商品

    回覆刪除
  3. shun: 1. 不太懂這個問題...一個 symbol 裡面應該就是一組資料而已..

    2. 那是因為該一分鐘資料原始匯出的時候就是 fitx 的名字..你可以試試把原本的 wtx& 匯出..然後刪掉 wtx&,再把 fitx 改 wtx& 然後再把剛匯出的資料匯入試試

    回覆刪除
  4. lowest的標準語法 好像應該是 lowest(low,10)[1]....是沒有版大說得問題的

    多空不敗留

    回覆刪除

請留下您的大名…匿名者恕不回應…

Related Posts Plugin for WordPress, Blogger...