K棒頻率的指定語法
雖然說,XS的語法是建構在K棒的時間序列上,理論上,可以適用於各種頻率,但有時候我們在語法寫作時,會特別針對某種頻率去設計,這時候就需要在腳本中,特別註明,並且安排一些敘述式,用來在當使用者把該腳本拿去用不合適的頻率啟動策略雷達時,可以讓系統發出警語。
這樣的語法,它的語法是一個內建的函數叫作barfreq,這個函數是用來傳回K棒目前頻率的單位,以字串型式表示,在XS中,K棒的頻率可以有以下幾種
K棒頻率
|
語法的表達方式
|
Tick
|
Tick
|
分鐘線
|
Min
|
小時線
|
Hour
|
日線
|
D
|
週線
|
W
|
月線
|
M
|
季線
|
Q
|
半年線
|
H
|
年線
|
Y
|
日線以上都為一個字母,日線以下則為簡寫。
所以如果我們寫了一個腳本只想把它用在日線時,我們就可以寫成以下的敘述式:
if barfreq <> "D" then return ;
指定時間間隔的語法
有了barfreq這樣的語法,我們可以指定腳本適用在tick,分鐘,小時,日,週,月等等不同的頻率,但我們無法指定腳本適用在幾分鐘線,或是幾小時線,例如一分鐘線,或是五分鐘線。
這時候我們可以使用另一個XS內建函數:
barinterval。
barinterval意思是K棒跟K棒中間的間隔。如果barinterval=1那代表間隔就是1,所以如果我們希望我們寫的腳本只適用在5分鐘線
我們就可以寫出如下面這個敘述式
if barfreq<> "Min" or barinterval
<> 5 then return;
透過barfreq跟barinterval這兩個內建的函數,我們可以指定任何的K Bar頻率,來作為腳本的應用頻率。
指定特定時間的語法
我們在撰寫腳本的時候,有的時候必須把時序的概念加進去。
例如我們可能會尋找一開盤就大漲的股票,我們可能會尋找拉尾盤的個股,一開盤或是殺尾盤都有指定時間的概念。
例如我們可能會尋找一開盤就大漲的股票,我們可能會尋找拉尾盤的個股,一開盤或是殺尾盤都有指定時間的概念。
XS提供了一個內建函數叫作currenttime來傳回現在的時間,我們可以用它來顯示目前電腦的時間,格式為hhmmss
hh從00到23
m m從00到59
ss從00到59
m
ss從00到59
如果現在的時間是早上的九點三十分二十秒,那我們如果寫一個value1=currenttime
如果有個腳本我們希望是從早上九點到中午12點的時間才執行,我們可以像下面這麼寫
if CurrentTime > 090000 and CurrentTime < 120000 Then…………………..
限定在今天的K棒才運算
除了currenttime之外,如果我們在用日線以下頻率寫腳本的時候,然後又希望電腦從今天開盤的第一根才開始運算時,系統提供了另一個函數叫作currentdate
,當您使 這個函數時,電腦會傳回現在的日期,傳回值的格式為yyyyMMdd
yyyy為西元?年
MM為月份,從01到12
dd為日期,從01到31
yyyy為西元?年
MM為月份,從01到12
dd為日期,從01到31
所以如果是2014年元旦使用currentdate時,它會傳回來的數值就是20140101。
之前我們有介紹過在系統內建的回傳值中,除了開高低收成交量之外,還有日期(date)及時間(time),所以我們要確定腳本是在當天才被執行時,我們可以寫成
if currentdate =date 這樣的敘述,這個敘述式如果要是true,一定要K棒的日期是屬於今天才會是True。
例如當我們用1分鐘線的腳本來尋找開盤連五分鐘都上漲的股票,我們可以這麼寫
又或者我們可以把當日限定的語法寫成像下面這一行
if date <> currentdate then return; {只有在今天才執行動作,以節省資源}
透過上述的幾個語法,我們可以
1.指定腳本的執行頻率。
2.指定腳本的執行時間間隔。
3.指定腳本執行的起始與結束時間。
4.指定腳本執行的時間是否為今天才執行。
透過上述的幾個語法,我們可以
1.指定腳本的執行頻率。
2.指定腳本的執行時間間隔。
3.指定腳本執行的起始與結束時間。
4.指定腳本執行的時間是否為今天才執行。