begin..end

By | 2015-10-19

有的時候,當符合if後面的敘述式時,我們希望電腦幫我們執行的,不只一行的敘述式時, 電腦要怎麼知道有那敘述是在前面條件符合時批次都要執行的呢?我們在DJ Script的語法中,使用begin …….end;的方式, 來標示所有要執行的敘述式。單條件多敘述

例如若要找出前N日漲幅超過X%且今天跳空開高超過Y%的股票,我們可以寫一個腳本如下:

//宣告參數:利用input宣告輸入的參數。
input:N(3);//前N日
input:X(10);//前n日漲幅%
input:_Y(4);//缺口大小%
if open>high[1] then //跳空開高
//用begin來呈現if 之後要執行的不只一件的事情
begin
value1=(1-close[1]/close[N])*100;//計算前N天的漲幅
value2=(open-high[1])/close*100;//計算跳空缺口的大小
 
end;
//最後用end來宣告if之後要執行程式的結束
 
if value1>=X and value2>=_Y
then ret=1;
 多條件多敘述簡單模式這樣的流程控制算是if ….then裡最複雜的,用白話文說就是如果……那就開始一連串的動作,反之如果不符合上述條件,就開始進到第二個如果…..那就開始另一連串的動作 以上述的例子的引申為例,我們也可以把上面的例子改寫成以下的腳本 :
多條件多敘述簡單模式sample
這腳本的意思是當一開盤就漲停時,我們幫它加一個條件:如果過去十根K棒漲幅都沒有超過2.5%就觸發, 至於對於那一些開盤沒有馬上漲停,但開高後在9:15之前就漲停的股票,如果過去十天漲幅不到兩成,就觸發警示。 這樣的流程基本上就可以同時COVER各種觸發的條件。
多條件多敘述複雜模式
這樣的流程控制結構就更複雜,它是用兩個條件式來把流程引導向三種不同的運算,我們最常用它來安排不同的觸發警示條件。 我們可以把上述的腳本再更進一步加上後面的另一種觸發警示的條件如下 :
多條件多敘述複雜模式sample

這腳本的意思是說有三種情況請電腦觸發警示 :

  1. 開盤就漲停且過去十天沒有一天漲超過2.5%。
  2. 開盤沒有漲停,但開高超過2.5%且9:15之前就漲停,而且過去十天合計漲幅小於兩成。
  3. 開盤沒有漲停,9:15之前也沒有漲停,但現在漲停了而且過去十天合計漲幅小於一成。

從上述的例子,我們就可以了解,這樣的流程控制,可以讓使用者像剝洋?一樣,把一個結果(漲停)安排出不同情境下的不同觸發但書。

 

你可能會有興趣的文章

回應