腳本類型 | 資料讀取範圍 |
指標 | 指標總共要畫多少筆K棒,不包含當日即時的K棒範圍。 預設值是商品的全部資料長度。 |
警示 | 警示腳本要先執行多少筆之後開始進行即時的洗價以及是否要觸發。請注意這個範圍不包含當日即時的K棒。預設值是200。假設資料讀取範圍是10的話,那警示腳本會先執行當日之前的10根K棒,接下來執行當日即時的K棒,接下來等待收到即時資料後在執行時才會判斷是否要觸發。 |
選股 | 選股腳本要執行多少筆之後才判斷最後一根K棒是否觸發。 預設值是10。假設資料讀取範圍是10的話,則表示選股腳本總共要跑10筆資料,同時判斷第10筆資料是否ret=1。 |
最大引用範圍
執行腳本時,除了資料讀取筆數這個參數會影響腳本執行的筆數之外,另外由於腳本內常常需要讀取之前的資料來做計算,例如要計算3日收盤價平均值時,會引用到上一根K棒的收盤價以及上上一根K棒的收盤價:Value1 = (Close + Close[1] + Close[2]) / 3;所以在腳本要執行之前,系統除了要準備資料讀取範圍內的K棒資料之外,另外也需要往前多準備一些K棒資料:在上面圖示內,資料讀取範圍左邊的這一個黃色區塊,就叫做最大引用範圍。這個範圍的目的是為了讓腳本可以正確的參考到目前執行的這根K棒往前的資料。同樣的,這個範圍的大小,會跟腳本內會參考到幾期前的資料有關。系統在開始執行時會提供一個預設值,如果在執行過程內腳本參考到了範圍之外的資料而發生錯誤的話,系統還是會繼續執行,改由下一根K棒開始重新計算。在下面這張圖內,假如腳本的內容是
Value1 = Close - Close[5]; {計算5日漲幅}由於最大引用筆數只有4筆,所以腳本要去讀取Close[5]的時候會發生錯誤。這時候系統就會重新調整執行的範圍,從發生錯誤的下一筆開始重新執行。
發生錯誤之後系統自動重新調整最大引用範圍
注意到系統會往右一筆重新執行,讓最大引用範圍變大,這樣子一來,執行的筆數會變少,可是就不會發生錯誤了。由於系統執行時會自動處理這種情形,使用者在大部分的情形底下可以完全忽略最大引用範圍這個參數。可是如果腳本的引用範圍很大的話,那則可以從腳本內透過函數的呼叫來告訴系統這個參數,已減少執行時發生錯誤的機會。這部分在底下會有範例說明。講完了基本的觀念之後,接下來我們來看不同類型的腳本的設定方式。XS自訂指標
在技術分析圖形上面放入XS自訂指標時,目前系統預設指標腳本的資料讀取筆數就是這個商品的全部歷史資料,技術分析的設定畫面上也就不提供指定資料讀取範圍的參數,你只要把指標放到技術分析圖上面就對了!!針對特殊的情境,可以在屬性設定的視窗,直接指定計算資料的長度或起始日或是可以透過以下的函數從腳本內控制指標資料的長度:SetTotalBar(300);如果在指標腳本內引用SetTotalBar(300)的話,那這個指標就只會畫最新的300筆資料(不包含當日即時的資料)。如果你希望可以從某個指定日期開始畫圖,可以使用這一版新提供的SetFirstBarDate函數:
SetFirstBarDate(20150101);這樣子的話指標就會從20150101日開始畫圖。至於最大引用範圍這個參數,系統會根據使用者指定的資料範圍來推算一個預設值。使用者也在腳本內透過SetBackBar這個函數來做控制:
SetBackBar(50);另外還有一個 SetBarBack函數,他的用途跟SetBackBar是一模一樣的。