『分享』同花順公式編寫 |
語言規范: 在自定義公式里面的各種符號(如,“;” )只能用半角不能用全角。
關鍵字
|
if else while break continue return (無大小寫之分)
|
常數
|
浮點數、整數、字符串
|
分隔符
|
“ ” ‘ ‘ ( ) ; { } 注釋/* */
|
標識符
|
由字母和數字組成,由字母開頭,不分大小寫
|
運算符(優先級從高到低排列,同級同行)
|
* /
|
+ -
|
== != > < >= <=
|
And
|
Or
|
語句
|
賦值 a = b
|
條件 IF (a==b) c=d;
|
循環 while a==b c=d;
|
函數調用 func(a,b)
|
直接訪問數據項的函數 例如:OPEN[t] 為t周期之前的開盤價 所有行情數據項(CLOSE等)都與此相同。
標識符: 標識符在表達式中只存名稱,值保留在符號表。標識符包括函數名、參數名和變量名。函數名用來傳遞函數返回值;參數名用于函數調用時的參數傳遞;變量名在計算中存儲中間計算結果。 分隔符:
符號
|
含義
|
“ ”
|
引用字符串
|
‘ ‘
|
引用字符
|
( )
|
控制運算的優先級
|
;
|
每行語句的結束標志
|
{ }
|
將多個語句組合成一個語句體
|
/* */
|
注釋,無任何實際功能
|
賦值語句: 其一般形式為: a=b; 含義為將b的值付給a。 幾個運算符“=”“:=”“:”“:>”。其含義分別為“賦值”、 “賦值”、“賦值并輸出數值或字符串”、“賦值并輸出圖形”。 注意:“=”和“:=”兩個運算符的意義、用法完全相同。這樣做主要是為了更好地兼容市場上目前的各種帶有公式編輯功能的分析軟件。 條件語句: 其一般形式為: IF(邏輯表達式) 語句1; ELSE 語句2; 上述結構表示: 如果邏輯表達式的值為非0(TURE)即真, 則執行語句1, 執行完語句1從語句2后開始繼續向下執行; 如果表達式的值為0(FALSE)即假, 則跳過語句1而執行語句2。 注意: 1、條件執行語句中"ELSE 語句2;"部分是選擇項, 可以缺省, 此時條件語句變成: IF(邏輯表達式) 語句1; 表示若邏輯表達式的值為非0則執行語句1 , 否則跳過語句1繼續執行。 2、如果語句1或語句2有多于一條語句要執行時, 必須使用"{"和"}" 把這些語句包括在其中, 此時條件語句形式為: IF(邏輯表達式) { 語句體1; } ELSE { 語句體2; } 這里語句體指多個語句,每個語句都必須以“;”結尾。 3. 條件語句可以嵌套, 這種情況經常碰到, 但條件嵌套語句容易出錯, 其原因主要是不知道哪個IF對應哪個ELSE。 例如: IF(x>20 OR x<-10) IF(y<=100 AND y>x) A="Good"; ELSE B="Bad"; 對于上述情況, 規定: ELSE語句與最近的一個IF語句匹配, 上例 中的ELSE與IF(y<=100 AND y>x)相匹配。為了使ELSE與IF(x>20 OR x<-10)相匹配, 必須用花括號。如下所示: IF(x>20 OR x<-10) { IF(y<=100 AND y>x) A="Good"; } ELSE B="Bad"; 4. 可用階梯式IF-ELSE-IF結構。 階梯式結構的一般形式為: IF(邏輯表達式1) 語句1; ELSE IF(邏輯表達式2) 語句2; ELSE IF(邏輯表達式3) 語句3;
循環語句: while循環的一般形式為: while(條件) 語句; while循環表示當條件為真時, 便執行語句。直到條件為假才結束循環。并繼續執行循環程序外的后續語句。 注意: 1、可以有多層循環嵌套。 2、語句可以是語句體, 此時必須用"{"和"}"括起來。 break語句 break語句通常用在循環語句中。當break語句用while循環語句中時,可使程序終止循環而執行循環后面的語句, 通常break語句總是與if語句聯在一起。 即滿足條件時便跳出循環。 注意: 1、break語句對if-else的條件語句不起作用。 2、在多層循環中, 一個break語句只向外跳一層。 continue 語句 continue語句的作用是跳過循環本中剩余的語句而強行執行下一次循環。 continue語句只用在while循環體中, 常與if條件語句一起使用, 用來加速循環。
函數調用: 調用函數的基本方式為:函數名(參數,參數,…) 其返回值為函數里面的return語句規定的返回值。若無return語句,則返回被調用函數里,以函數名命名的變量的值。若無以函數名命名的變量,則返回最后一個輸出的值。若無輸出的值,則返回最后一個被調用的語句的值。 例如:調用KDJ指標。KDJ函數的名稱為kdj,其參數和內容如下http://www.:
參數名
|
最小值
|
最大值
|
默認值
|
N1
|
1
|
100
|
9
|
M1
|
2
|
40
|
3
|
M2
|
2
|
40
|
3
|
函數內容為:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3*K-2*D 則當您在其它函數里輸入a=KDJ(8,6,6)的時候,相當于計算N1=8,M1=6,M2=6時的J值,并把這個值賦給a。 注意: 1、當傳遞的參數數目不等于被調用函數設置的參數數目時。 a、沒有傳遞參數。則采用原來設置的默認參數計算。 b、傳遞參數少于被調用函數設置的參數數目。則將參數傳過去,依次改變前面同樣數目參數的值,后面其它的參數采用原來設置的默認參數計算。 c、傳遞參數大于被調用函數設置的參數數目。則將參數傳過去,依次改變被調用函數的參數值,多余的參數不起作用。 2、函數名稱不區分大小寫。 3、新建的函數,其函數名可能與其它以存在的函數里面的內部變量重名。這樣在調用那個函數時,那個內部變量將變成對這個新建函數的函數調用,從而產生錯誤。所以,在新建函數起名時要注意。 返回值:自定義公式里面如果有多數據項輸出,則調用此函數的時候返回值默認為最后一個輸出。如果希望確定某項輸出則可用return,或者將函數名指定為其中一項輸出。 關于“空”: 所謂“空”即指沒有數據。在某些情況下,一些數據項可能取不到數據,這時返回值為“空”。例如,yearrep(&jlr,4),其含義為取該公司3年前年報的凈利潤。如果某家公司上市時間較短,而無三年前的年報數據,則其值為“空”。 1、“空”與任何數據作計算時,相應計算被取消。 例如:7×NULL(即“空”)得到的結果為7。 2、“空”與任何數據比較大小時,“空”較小。 例如:-7>NULL(即“空”)得到的結果為1(即條件滿足)。 這樣的結果可能與您原來希望得到的數值不符,如果您想避免這種情況可以用ISNULL函數來判斷某個數據是否為“空”(相關說明見后面的系統函數說明部分)。
|
公式編寫規則 |
代碼與周期: 由于證券市場里的各項數據都與代碼、時間密切相關,所以在這里的各項數據都只能用于特定的一類或幾類代碼及相應的一個或幾個周期。(注意:同一個數據項可能適用于多類代碼及多個周期,其具體的數值也將不同。) 代碼的分類:個股(含債券)。滬深指數(僅1A0001(統計上海A、B股基金)、1A0002(統計上海A股)、1A0003(統計上海B股)、399001(統計深圳A、B股基金)、399002(統計深圳A股)、399003(統計深圳B股)六個指數)。期貨。 周期分類:實時(記錄當前傳過來的數據)、成交明細(記錄每一筆成交的數據)、分時(記錄每分鐘成交的數據)、分鐘K線(以1分鐘為單位的K線數據)、日K線(以1個交易日為單位的K線數據)。 注意: 一、分時與分鐘K線的區別在于:分鐘K線數據較多,包含了與K線相關的高、開、低、收、成交次數等數據。二、滬深指數沒有成交明細周期的數據。三、適用于分鐘K線、日K線周期的所有數據,都同時適用于個股與滬深指數,只不過其數據內容不同而已。 由于行情數據和財務數據同屬于基本數據項,即其數值是主站端直接發過來,所以他們自身并不帶周期。而其它計算項,即由客戶端編寫公式計算得到的數據項都是帶有周期的。也就是說在編寫一個公式的時候我們需要確定一個周期(由于分鐘K線、日K線周期里的各項數據僅有微小差別,所以統稱為技術分析周期),并且想清楚這個公式里調用的各項基本數據在這個周期下的具體含義。以后只有在這個周期下才能調用這個公式。 注意: 基本數據項自身并不帶周期,也就是說編寫公式的時候,如果所選用的周期不在此數據項的適用范圍內,測試公式的時候系統是不會報錯的,但這個數據項的數值將為“空”,即取不到任何數據。 注意: 所有的基本數據項都可以直接拖到表格里,它將依照表格的代碼、周期而顯示相應的數值。也都可以直接拖到窗口里作為一個曲線輸出,但一般不推薦這樣做,如果要畫曲線最好新編寫一個“曲線公式”。 另外,各個數據項用于期貨時的意義另文說明。 通用數據項: NEW(現價) 含義:用于個股時為最近一筆成交的價格。用于滬深指數時為最近一次從交易所傳來的指數值。 用于:個股的實時、成交明細周期。滬深指數的實時周期。 NEWVOL(現手) 含義:用于個股時為最近一筆成交的成交量。用于滬深指數時為對應市場的所有股票的最后一筆成交量之和。 用于:個股的實時、成交明細周期。滬深指數的實時周期。 INVOL(內盤)、OUTVOL(外盤) 含義:內盤、外盤(又稱為主動性拋盤、主動性買盤)成交量。判斷依據為若某筆成交,其價格小于等于前一次傳過來的買一的價格,則稱為內盤;若其價格大于等于前一次傳過來的賣一的價格,則稱為外盤。(注意,內外盤之和一般不等于總成交量)在周期為“實時”、“分時”時,為當日的內、外盤。在周期為“分鐘K線”和“日K線”時,分別為某一分鐘和某一日的內、外盤。用于指數時指所有相應股票的內、外盤之和。 用于:個股的實時、分時、分鐘K線、日K線周期。滬深指數的實時、分時、分鐘K線、日K線周期。 OPEN(開盤)、HIGH(最高)、LOW(最低) 含義:在實時周期時,為當日的開盤價、最高價、最低價。在分鐘K線、日K線周期時,分別為當周期的開盤價、最高價、最低價。 用于:個股的實時、分鐘K線、日K線周期。滬深指數的實時、分鐘K線、日K線周期。 CLOSE(收盤) 含義:當周期的收盤價。 用于:個股的分鐘K線、日K線周期。滬深指數的分鐘K線、日K線周期。 PRE(昨收) 含義:上一交易日的收盤價。(注意,在分鐘K線周期,也是昨日收盤價,而不是上一周期的收盤價。)如果當天有除權,則其值為除權之后的昨日收盤價。例如:某股票昨天收盤20元,今天除權,10送10。則今日PRE值為10元。 用于:所有類型、所有周期。 MONEY(金額) 含義:在實時、分時周期時代表當日的成交金額只和。在分鐘K線、日K線周期時代表那一個周期的成交金額只和。當用于指數時,指此指數所包含所有交易品種成交金額之和。 用于:個股的實時、分時、分鐘K線、日K線周期。滬深指數的實時、分時、分鐘K線、日K線周期。 VOL(總手) 含義:在實時、分時、成交明細周期時代表當日的成交量只和。在分鐘K線、日K線周期時代表那一個周期的成交量只和。當用于指數時,指此指數所包含所有交易品種成交量之和。 用于:個股的實時、分時、成交明細、分鐘K線、日K線周期。滬深指數的實時、分時、分鐘K線、日K線周期。(注意,VOL與MONEY相比多了一個成交明細周期。) OPENVOL(開盤量) 含義:開盤時第一筆成交的成交量。當用于指數時,指此指數所包含所有交易品種開盤集合競價成交量之和。 用于:個股的實時、日K線周期。滬深指數的實時、日K線周期。 ZQMC(名稱)、CODE&TYPE(代碼) 含義:證券的名稱、代碼。 用于:個股的所有周期。滬深指數的所有周期。 DATETIME(時間) 含義:顯示時間。當用于不同周期的時候,系統會自動傳送相應的時間類型。而具體的顯示方案則在“窗口屬性”的“時間坐標”項里的“時間格式”一欄里選擇。 用于:個股、滬深指數所有的周期。 VALIDBEGIN(起始)、VALIDEND(終止) 含義:區間統計的起始、終止時間。當用于不同周期的時候,系統會自動傳送相應的時間類型。而具體的顯示方案則在“窗口屬性”的“時間坐標”項里的“時間格式”一欄里選擇。與DATETIME(時間)的用法類似。 用于:個股、滬深指數所有的周期。 僅用于個股的數據項: FIVEDAYVOL(五日總量) 含義:過去五日各交易成交量之和。 用于:個股的所有的周期。(主要用來計算量比) BUYPRICE1(買一)、BUYPRICE2(買二)、BUYPRICE3(買三)、SELLPRICE1(賣一)、SELLPRICE2(賣二)、SELLPRICE3(賣三)、BUYCOUNT1(買一量)、BUYCOUNT2(買二量)、BUYCOUNT3(買三量)、SELLCOUNT1(賣一量)、SELLCOUNT2(賣二量)、SELLCOUNT3(賣三量) 含義:委托買入、賣出價格一、二、三及對應的委托數量。 用于:個股的實時周期。 VOLAMOUNT(成交次數) 含義:在周期為“實時”時,為當日的成交次數。在周期為“分鐘K線”和“日K線”時,分別為某一分鐘和某一日的成交次數。 用于:個股的實時、分鐘K線、日K線周期。 VOLCLASS(成交量分類) 含義:其數值與該筆成交的價位關系為:“3”為“成交價<=買三價”,“2”為“買三價<成交價<=買二價”,“1”為“買二價<成交價<=買一價”,“0”為“買一價<成交價<賣一價”,“5”為“賣一價<=成交價<賣二價”,“6”為“賣二價<=成交價<賣三價”,“5”為“賣三價<=成交價”。(注意,這里的買賣盤的價格都是指上一次傳過來的價格,與內外盤原理相同。也可以將“成交量分類”視為劃分更為詳細的內外盤。) 用于:個股的實時、分時、成交明細。 SELLPRICE(賣出)、BUYPRICE(買入) 含義:本次成交時的委托賣出、買入價。即用于成交明細的買一價、賣一價。 用于:個股的成交明細周期。 僅適用于大盤的數據項:
SELLCOUNT(委賣)、BUYCOUNT(委買) 含義:當前本類指數所有股票的賣出數量、買入數量之和。 用于:滬深指數的實時、分時周期。 FALLTREND(下跌趨勢)、RISETREND(上漲趨勢) 含義:當前本類指數所有下跌、上漲股票的最新價之和除以本類指數所有股票的最新價之和。 用于:滬深指數的實時、分時周期。 FALLCOUNT(下跌家數)、RISECOUNT(上漲家數) 含義:當前本類指數所有下跌、上漲股票的家數之和。 用于:滬深指數的實時、分時周期。 INDEXLEAD(領先指標) 含義:即不加權的指標漲跌幅再乘以10000。具體地說就是,設A=“當前本類指數所有股票的最新價之和”,B=“當前本類指數所有股票的昨日收盤價”。那么INDEXLEAD=(A-B)/B×10000。 用于:滬深指數的實時、分時周期。 TOTALSTOCK(本類股票總數) 含義:本類股票家數之和。 用于:滬深指數的實時周期。
|
其它數據項: CODETYPE(證券類型) 含義:指明當前商品的類型。當返回值是0時為指數、1是A股、2是B股、3是債券、4是基金。 用于:個股、指數的各種周期。 MARKETTYPE(市場類別)、INDEXTYPE(指數種類) 這兩個數據項屬于保留數據項,目前暫時沒用,可能會在以后用到。
|
財務數據說明 |
這里的財務數據項都是根據財政部制定的《企業會計制度》(于2001年1月1日起執行)里面規定的季報、中報、年報的各種報表里面的項目編列的。每一項的具體含義都與《企業會計制度》(2001)里面的規定完全相同。另外我們還依照上市公司的特性將十大股東的名稱、持股數,股東人數,股本結構,權息資料都列在財務數據項中。 由于數據眾多(公司、基本有1300多家,幾乎每家的數據項都達400多項,且每項又分不同的時期)所以這個數據庫相當龐大,檢索起來較慢且消耗大量系統資源。因此我們設立了“常用數據項”目錄,這里面有100項左右常用的財務數據,含蓋了股民在絕大多數情況下的需求。這些數據被放在一個特殊的數據文件里面檢索速度很快且系統資源占用量較小。所以大家一般編寫公式就在“常用數據項”目錄里面找相關的數據就可以了。而其它的那些數據都是用SQL數據庫檢索,建議只提供給少數重要客戶。 注意: 用純財務數據寫的計算項放在表格里面的時候,周期要選擇日線,否則無法顯示。而在其它情況下,財務數據項適用于任何周期。
|
|
資訊數據說明 |
這里列出了您可以使用的各種資訊數據。您可以將這些資訊數據加入到頁面和表格里面。 例如:您可以將“維賽特資訊”——“個股資訊”——“個股歷史資訊”項拖到K線圖里,您可以看到出現一個個與相應資訊所對應的圖標,即我們通常說的信息地雷。 注意: 這里的各個資訊數據項要主站的支持,即主站要有數據。
|
財務分析說明 |
“比較”目錄下面是相應數據從97年到2001年年報數據的輸出,共5項輸出,在表格里先選擇“支持多數據項目分解”再拖進去就可以看見5年的內容了。 注意: “股東權益”等同于“凈資產” MGXJZJ,每股現金及現金等價物凈增加額。 計算方法: 現金及現金等價物凈增加額/股數 JYXJLRBL,經營活動產生的現金流量凈額與凈利潤比率。 計算方法: 經營活動產生的現金流量凈額/凈利潤 XSXJZYSRBL,銷售商品收到現金與主營業務收入比率。 計算方法: 銷售商品、提供勞務收到的現金/主營業務收入×100 含義: 正常周轉企業該指標應大于1。如果指標較低,可能是關聯交易較大、虛構銷售收入或透支將來的銷售,都可能會使來年的業績大幅下降。 ZCBL,資產倍率。 計算方法: 每股市場價/每股資產值 ZZCHBL,總資產回報率。 計算方法: 凈利潤/總資產期末數×100 JZCSYL,凈資產收益率。 計算方法: 凈利潤/凈資產×100 含義: 又稱股東權益收益率,這個指標反應股東投入的資金能產生多少利潤。 ZCSYL,資產收益率。 計算方法: 凈利潤×2/(期初資產總額+期末資產總額)×100% 含義: 資產收益率反應了企業的總資產利用效率,或者說是企業所有資產的獲利能力。 SHLRL,稅后利潤率。 計算方法: 凈利潤/主營業務收入×100 SQLRL,稅前利潤率。 計算方法: 利潤總額/主營業務收入×100 YYLRL,營業利潤率。 計算方法: 營業利潤/主營業務收入×100=(主營業務利潤+其它利潤-營業費用-管理費用-財務費用)/主營業務收入×100 ZYYWLRL,主營業務利潤率。 計算方法: 主營業務利潤/主營業務收入×100 含義: 一個企業如果要實現可持續性發展,主營業務利潤率處于同行業前列并保持穩定十分重要。但是如果該指標異忽尋常地高于同業平均水平也應該謹慎了。 XSMLL,銷售毛利率。 計算方法: (主營業務收入-主營業務成本)/主營業務收入×100 YYCBBL,營業成本比率。 計算方法: 營業成本/主營業務收入×100 含義: 在同行之間,營業成本比率最具有可比性,原因是原材料消耗大體一致,生產設備及工資支出也較為一致,發生在這一指標上的差異可以說明各公司之間在資源優勢、區位優勢、技術優勢及勞動生產率等方面的狀況。那些營業成本比率較低的同行,往往就存在某種優勢,而且這些優勢也造成了盈利能力上的差異。相反,那些營業成本比率較高的同行,在盈利能力不免處于劣勢地位。 QTYSZKL,其他應收帳款率。 計算方法: 其他應收帳款/流動資產 含義: 其他應收帳款主要核算與生產經營銷售活動無關的款項來往,一般應該較小。如果該指標較高則說明流動資金運用在非正常經營活動的比例高,就應該注意是否與關聯交易有關。 GDQYZZL,股東權益周轉率。 計算方法: 銷售收入/平均股東權益(注意:此處平均指的是期初值和期末值的算術平均值) ZZCZZL,總資產周轉率。 計算方法: 銷售收入/平均資產總額 含義: 該指標越大說明銷售能力越強。 GDZCZZL,固定資產周轉率。 計算方法: 銷售收入/平均固定資產 含義: 該比率是衡量企業運用固定資產效率的指標,指標越高表示固定資產運用效果越好。 ZHZZTS,存貨周轉天數。 計算方法: 360天×(期初存貨+期末存貨)/銷貨成本×2 ZHZZL,存貨周轉率。 計算方法: 銷貨成本×2/(期初存貨+期末存貨) 含義: 存貨周轉率(天數)表達了公司產品的產銷率,如果和同行業其它公司相比周轉率太小(或天數太長),就要注意公司產品是否能順利銷售。 SXFYHJ,三項費用合計。 計算方法: 營業費用+管理費用+財務費用 含義: 三項費用之和反應了企業的經營成本如果三項費用合計相對于主營業務收入大幅增加(或減少)則說明企業產生了一定的變化,要提起注意。 GLFYL,管理費用率。 計算方法: 管理費用/主營業務收入 YYFYL,營業費用率。 計算方法: 營業費用/主營業務收入 CWFYL,財務費用率。 計算方法: 財務費用/主營業務收入 YXFZBL,有息負債比率。 計算方法: (短期借款+一年內到期的長期負債+長期借款+應付債券+長期應付款)/股東權益期末數×100 含義: 無息負債與有息負債對利潤的影響是完全不同的,前者不直接減少利潤,后者可以通過財務費用減少利潤;因此,公司在降低負債率方面,應當重點減少有息負債,而不是無息負債,這對于利潤增長或扭虧為盈具有重大意義。在揭示公司償債能力方面,100%是國際公認的有息負債對資本的比率的資本安全警戒線。 GDQYYGDZCBL,股東權益與固定資產比率。 計算方法: (股東權益總額/固定資產總額×100 含義: 一個財務結構穩定性指標。 CQFZBL,長期負債比率。 計算方法: 長期負債/資產總計×100 ZBFZBL,資本負債比率。 計算方法: 負債合計/股東權益×100 含義: 比資產負債率這一指標更能準確地揭示企業的償債能力狀況,因為公司只能通過增加資本的途徑來降低負債率。資本負債率為200%為一般的警戒線,若超過則應該格外關注。 ZCFZBL,資產負債比率。 計算方法: 負債總額/資產總額×100% 含義: 反映總資產中有多大比例是通過借債得來的。 GDQYBL,股東權益比率。 計算方法: 股東權益總額/資產總額×100 含義: 反映所有者提供的資本在總資產中的比重,反映企業的基本財務結構是否穩定。一般來說比率高是低風險、低報酬的財務結構,比率低是高風險、高報酬的財務結構。 YSZKZZTS,應收帳款周轉天數。 計算方法: 360天×平均應收帳款/銷售收入 含義: 表達年度內應收帳款轉為現金的平均天數。影響企業的短期償債能力。 YSZKZZL,應收帳款周轉率。 計算方法: 銷售收入/平均應收帳款 含義: 表達年度內應收帳款轉為現金的平均次數。如果周轉率太低則影響企業的短期償債能力。 XJBL,現金比率。 計算方法: 貨幣資金/流動負債 含義: 現金比率反應了企業償還短期債務的能力。 SDBL,速動比率。 計算方法: (流動資產-存貨)/流動負債 含義: 由于種種原因存貨的變現能力較差,因此把存貨從流動資產種減去后得到的速動比率反映的短期償債能力更令人信服。一般認為企業合理的最低速動比率是1。但是,行業對速動比率的影響較大。比如,商店幾乎沒有應收帳款,比率會大大低于1。影響速動比率的可信度的重要因素是應收帳款的變現能力。 主營業務收入增長。 計算方法: (本期主營業務收入-上年同期主營業務收入)/上年同期主營業務收入×100 含義: 一般當產品處于成長期,增長率應大于10%。
|
系統函數說明 |
板塊函數: 1、板塊平均:求板塊里某一數據項的平均值。 用法:BLOCKAVG(&N),N表示選擇的數據項。例如:BLOCKAVG(&NEW)表示這個板塊里所有股票當前時刻的平均價。 2、板塊最小值:求板塊里某一數據項的最小值。 用法:BLOCKMIN(&N),N表示選擇的數據項。例如:BLOCKMIN(&LOW)表示這個板塊里所有股票當天的最低價。 3、板塊最大值:求板塊里某一數據項的最大值。 用法:BLOCKMAX(&N),N表示選擇的數據項。例如:BLOCKMAX(&HIGH)表示這個板塊里所有股票當天的最高價。 4、板塊求和:求板塊里某一數據項的和。 用法:BLOCKSUM(&N),N表示選擇的數據項。例如:BLOCKSUM(&VOL)表示這個板塊里所有股票當前時刻的總成交手數。 5、取板塊領先股票:取板塊指數的所屬個股中數據X最大的股票的數據Y。適用于板塊指數。 用法:BLOCKLEAD(&X,&Y) 取板塊指數中個股數據X最大的股票的數據Y。例如:BLOCKLEAD(&VOL,&ZQMC)取該板塊指數中成交量最大的股票名稱。
財務函數: 1、季報:調用季報數據項。 用法:QUARTERREP(&N,K,L),N為財務數據項,K可以是1(表示最近一次的季報)、2(表示上一次的季報)、3、4等或者直接輸入希望調用的年份,L可以是1或3即第一季度或第三季度的季報。注意L僅在K選擇年份的時候適用。 2、年報:調用年報數據項。 用法:YEARREP(&N,K),N為財務數據項,K可以是1(表示最近一次的年報)、2(表示上一次的年報)、3、4等或者直接輸入希望調用的年份。 注意:N要為基本的財務數據項,而不能是編寫的計算項目,即N為功能樹里公式欄里面的“財務數據”目錄下面的數據項。 3、中報:調用中報數據項。 用法:MIDREP(&N,K,L),N為財務數據項,K可以是1(表示最近一次的中報)、2(表示上一次的中報)、3、4等或者直接輸入希望調用的年份。 4、同期報表:調用最近一次報表或與其同類型報表的數據項。 用法:REP(&N,K) N為財務數據項,K為1(表示最近一次公布的報表)、2(表示去年與最近一次公布報表同類型報表)、3、4等。 5、取報表日期:取某個財務數據項的報表日期。 用法:REPDATE(&N,M,K), N=財務數據項。M=引用周期數,與YEARREP等的調用相同。K=1、一季度報表,2、中報,3、三季度報表,4、年報。 如REPDATE(&ZGB,1,4),表示取最近總股本年報的報表日期。 指標函數: 1、成本:成本分布情況。 用法:COST(10),表示10%獲利盤的價格是多少,即有10%的持倉量在該價格以下,其余90%在該價格以上,為套牢盤。該函數僅對日線分析周期有效。 2、分價函數:用來制作分價表。 用法:在制作分價表的時候選擇多數據項輸出,然后直接將這個函數拖進數據項選擇框就可以了。 3、成本分布:用于畫成交分布云。 用法:用于畫成交分布云。例如CM(0,1,2,0)。參數含義:1、計算天數,0表示計算全部天數。2、當日成本算法:0=平均分布,1=三角分布。3、精度:一般是2。4、起始位置:0是從當天開始計算,1是從前一天開始算,類推。5、換手:缺省是3,即300%換手。參數5可以沒有。 基本原理:我們對歷史籌碼是依后面的換手率而遞減的。我們相信這樣基本反應了一個事實即歷史越悠久的成交,對當前的影響越小。比如說,1000萬的盤子,前天均價為10元,成交量為200萬,也就是20%換手率;昨天以均價11元又成交300萬,也就是30%換手率;那前天的200萬成交量怎么樣了呢?成本分析假定,前天的200萬在昨天也以11元被30%換手了,那么,前天以10元成交的成交量還剩了200*(1-30%)=140萬;若今天以均價12元又成交了400萬,同理可算,現在的籌碼分布是:10元籌碼為200*(1-30%)*(1-40%)=84萬,11元的籌碼為300*(1-40%)=180萬,12元的籌碼是400萬。 4、之字轉向。 用法:ZIG(K,N),當價格變化量超過N%時轉向,K表示0:開盤價,1:最高價,2:最低價,3:收盤價。例如:ZIG(3,5)表示當前收盤價超過上次ZIG轉向輸出值的+5%或-5%,則輸出當前收盤價并ZIG轉向。 5、獲利盤:表示獲利盤比例。 用法:WINNER(CLOSE),表示以當前收市價賣出的獲利盤比例。例如返回0,1表示10%獲利盤;WINNER(10,5)表示10,5元價格的獲利盤比例。該函數僅對日線分析周期有效。 6、拋物轉向:計算拋物轉向。 用法:SAR(N,S,M),N為計算周期,S為步長,M為極值。例如,SAR(10,2,20)表示計算10日拋物轉向,步長為2%,極限值為20%。 7、遠期獲利盤比例:計算遠期獲利盤比例。 用法:PWINNER(10,CLOSE) 表示10天前的那部分成本以當前收市價賣出的獲利盤比例,例如返回0.2表示20%獲利盤;該函數僅對日線分析周期有效。
邏輯函數: 1、條件函數:根據條件求不同的值。 用法:IF(X,A,B)若X不為0則返回A,否則返回B。 例如:IF(CLOSE>OPEN,HIGH,LOW)表示該周期收陽則返回最高值,否則返回最低值。
參見“ 條件語句”。
引用函數: 1、滿足條件的周期數:統計滿足條件的周期數。 用法:COUNT(X,N),統計N周期中滿足X條件的周期數,若N=0則從第一個有效值開始。例如:COUNT(CLOSE>OPEN,20)表示統計20周期內收陽的周期數。 2、第一個條件成立到當前的周期數:統計第一個條件成立到當前的周期數。 用法:BARSSINCE(X):第一次X不為0到現在的天數。例如:BARSSINCE(HIGH>10)表示股價超過10元時到當前的周期數。 3、上一次條件成立到當前的周期數:上一次條件成立到當前的周期數。 用法:BARSLAST(X),上一次X不為0到現在的天數。例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1,1)表示上一個漲停板到當前的周期數。 4、有效周期數:求總的周期數。 用法:BARSCOUNT(X),第一個有效數據到當前的天數。 5、向前賦值:將當前位置到若干周期前的數據設為1。 用法:BACKSET(X,N),若X非0,則將當前位置到N周期前的數值設為1。例如:BACKSET(CLOSE>OPEN,2)若收陽則將該周期及前一周期數值設為1,否則為0。 6、求和:求總和。 用法:SUM(X,N),統計N周期中X的總和,N=0則從第一個有效值開始。例如:SUM(VOL,5)周期設為日線時,表示最近5個交易日的成交量之和。SUM(VOL,0)表示從傳數據過來第一天起的成交量總和,具體如在區間統計里統計“總手” SUM(VOL,0)即是指全區間的成交量之和。 7、移動平均:求移動平均。 用法:SMA(X,N,M),求X的N日移動平均,M為權重。算法: 若Y=SMA(X,N,M)則 Y=[M*X+(N-M)*Y‘]/N,其中Y‘表示上一周期Y值,N必須大于M。例如:SMA(CLOSE,30,1)表示求30日移動平均價。 8、向前引用:引用若干周期前的數據。 用法:REF(X,A),引用A周期前的X值。例如:REF(CLOSE,1)表示上一周期的收盤價,在日線上就是昨收。 9、簡單移動平均:求簡單移動平均。 用法:MA(X,N),求X的N日移動平均值。算法:(X1+X2+X3+,,,+Xn)/N。例如:MA(CLOSE,10)表示求10日均價。 10、最低值:求最低值。 用法:LLV(X,N),求N周期內X最低值,N=0則從第一個有效值開始。例如:LLV(LOW,0)表示求歷史最低價。 11、最高值:求最高值。 用法:HHV(X,N),求N周期內X最高值,N=0則從第一個有效值開始。 例如:HHV(HIGH,30)表示求30日最高價。 12、指數平滑移動平均:求指數平滑移動平均。 用法:EMA(X,N),求X的N日指數平滑移動平均。算法:若Y=EMA(X,N)則Y=[2*X+(N-1)*Y‘]/(N+1),其中Y‘表示上一周期Y值。例如:EMA(CLOSE,30)表示求30日指數平滑均價。 13、動態移動平均:求動態移動平均。 用法:DMA(X,A),求X的動態移動平均。算法: 若Y=DMA(X,A)則 Y=A*X+(1-A)*Y‘,其中Y‘表示上一周期Y值,A必須小于1。例如:DMA(CLOSE,VOL/CAPITAL)表示求以換手率作平滑因子的平均價。 14、最高值周期數:求上一高點到當前的周期數。 用法:HHVBARS(X,N):求N周期內X最高值到當前周期數,N=0表示從第一個有效值開始統計。例如:HHVBARS(HIGH,0)求得歷史新高到到當前的周期數。 15、最低值周期數:求上一低點到當前的周期數。 用法:LLVBARS(X,N):求N周期內X最低值到當前周期數,N=0表示從第一個有效值開始統計。例如:LLVBARS(HIGH,10)求得10日最低點到當前的周期數。 16、加權移動平均:求加權移動平均。 用法:WMA(X,A),求X的加權移動平均。 算法:若Y=WMA(X,A) 則Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1) X0表示本周期值,X1表示上一周期值...。 例如:WMA(CLOSE,20)表示求20日加權均價。 17、求和:向前累加到指定值到現在的周期數。 用法:SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區間的周期數。例如:SUMBARS(VOL,CAPITAL)求完全換手到現在的周期數。
時間函數: 1、總開盤分鐘:求當前代碼類型的開市交易時間。 用法:TRADETIME。返回交易時間,單位為分鐘。目前一般市場都返回242,與日期或具體的股票無關。 2、距開盤分鐘:求當前時刻距開盤有多長時間。 用法:FROMOPEN。返回當前時刻距開盤有多長時間,單位為分鐘。例如:當前時刻為早上十點,則返回31。 3、距午夜秒:求當前時刻距開盤有多長時間。 用法:FROMNIGHT。返回當前時刻距午夜有多長時間,單位為秒。例如:當前時刻為早上十點,則返回36000。 4、時間格式:轉換時間格式。 用法:FORMATTIME(N)。目前只支持 N=1 把當前時間轉換成距開盤分鐘數返回。例如:分時中的量比曲線公式:(VOL*(TRADETIME+1)*5)/(FORMATTIME(1)*FIVEDAYVOL)。 5、時間差:計算兩個時間之間的差。 用法:COUNTTIME(N,L,K)。N、L為時間,其格式為YYYYMMDD。K為1、2或者3。當K為1時返回第二個之間比第一個時間晚多少年。當K為2時返回第二個之間比第一個時間晚多少月。當K為3時返回第二個之間比第一個時間晚多少日。例如:COUNTTIME(20000808,19990606,2)其返回值為-2。注意:這里返回值有正負號。 算術函數: 1、絕對值:求絕對值。 用法:ABS(X)返回X的絕對值。例如:ABS(-34)返回34。 2、介于:介于兩個數之間。 用法:BETWEEN(A,B,C)表示A處于B和C之間時返回1,否則返回0 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盤價介于5日均線和10日均線之間。 3、最大值:求最大值。 用法:MAX(A,B)返回A和B中的較大值。例如:MAX(CLOSE-OPEN,0)表示若收盤價大于開盤價返回它們的差值,否則返回0。 4、最小值:求最小值。 用法:MIN(A,B)返回A和B中的較小值。例如:MIN(CLOSE,OPEN)返回開盤價和收盤價中的較小值。 5、求模運算:求模運算。 用法:MOD(A,B)返回A對B求模。例如:MOD(26,10)返回6。 6、求邏輯非:求邏輯非。 用法:NOT(X)返回非X,即當X=0時返回1,否則返回0。例如:NOT(5>3)返回0。 7、范圍:介于某個范圍之間。 用法:RANGE(A,B,C)表示A大于B同時小于C時返回1,否則返回0。例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盤價大于5日均線并且小于10日均線。 8、求相反數:求相反數。 用法:REVERSE(X)返回-X。 例如REVERSE(CLOSE)返回-CLOSE。 9、余弦值:求余弦值。 用法:COS(X)返回X的余弦值。 10、正弦值:求正弦值。 用法:SIN(X)返回X的正弦值。 11、平方根:開平方。 用法:SQRT(X)為X的平方根。例如:SQRT(CLOSE)收盤價的平方根。 12、上穿:兩條線交叉。 用法:CROSS(A,B)表示當A從下方向上穿過B時返回1,否則返回0。例如:CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均線與10日均線交金叉。 13、維持:兩條線維持一定周期后交叉。 用法:LONGCROSS(A,B,N)表示A在N周期內都小于B,本周期從下方向上穿過B時返回1,否則返回0。例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均線維持5周期后與10日均線交金叉。 14、空:判斷是否為空。 用法:ISNULL(A)表示如果A為空(即沒有數據)則返回1,否則返回0。 15、冪:求冪。 用法:POW(X,Y)。求X的Y次冪。例如:POW(2,3)為8。 統計函數: 1、標準差:求標準差。 用法:STD(X,N)為X的N日估算標準差。 2、商品數據:求與具體某種商品相關的數據。 用法:INDEXDATA(“N”,&X,K)。N為商品代碼。X為數據項。K為周期數(可以不加)。INDEXDATA(“1A0001”,&LOW,3)為3天前上證指數的最低點位。 3、線性回歸斜率:求某個數據的線性回歸。 用法:SLOPE(X,N)為X的N周期線性回歸線的斜率。例如:SLOPE(CLOSE,10)表示求10周期線性回歸線的斜率 4、線性回歸預測值:以某個數據的線性回歸斜率向后延伸一個周期得到的數值。 用法:FORCAST(X,N)為X的N周期線性回歸預測值。例如:FORCAST(CLOSE,10)表示求10周期線性回歸預測本周期收盤價。 5、總體標準差:求總體標準差 用法:STDP(X,N)為X的N日總體標準差。 6、估算樣本方差:求估算樣本方差。 用法:VAR(X,N)為X的N日估算樣本方差。 7、總體樣本方差:求總體樣本方差。 用法:VARP(X,N)為X的N日總體樣本方差。
|
基本公式 |
這里的各種公式都是一些用于設置“同花順”各種表格曲線的公式,我們預先寫好您直接調用就可以了。當然您也完全可以根據個人愛好自己編寫。 注意: 基本公式是用于編寫配置用的,即只有高級版用戶才能看到這個目錄。 這里主要有如下幾類公式:板塊統計、區間統計、報價公式、分時公式、技術分析、文本瀏覽、期貨公式、籌碼分布、大單公式、曲線標志、其他。 板塊統計: 這里有4個用于統計板塊數值的公式。 1、板塊均價。 BLOCKPRICE,用于計算板塊最新的平均價。 2、板塊最低價。 BLOCKLOW,用于計算板塊的最低價。 3、板塊最高價。 BLOCKHIGH,用于計算板塊的最高價。 4、板塊總手。 BLOCKVOL,用于計算板塊的板塊總手。 區間統計: 這里面是各種用于區間統計的公式,在做區間統計表格的時候,要將這里面的公式拖到表格里,而不能用普通的行情數據項。 報價公式: 一般實時數據都是由交易所直接發過來的。那些需要計算得出來、且周期為實時的數據并不多,都是一些與大盤統計相關的公式,放在這個目錄下。 大盤目錄:EQUALCOUNT(平盤家數)、DaPanWeiCha(委差)、DaPanWeiBi(委比)。 這三個函數都是直接調用不附帶參數。其值分別為大盤指數對應的股票的平盤家數、所有對應的股票的委差之和、及以此計算的委比。 分時公式: 5ZSZBH(五分鐘總市值變化)、FiveRiseCount(五分鐘漲跌)、FiveRise(五分鐘漲幅)。 這三項都是統計與5分鐘相關的幾個數據。 FenShiVolClass(分時成交量顏色),這是用來顯示分時成交量顏色的公式。點修改,可以看到這個公式的輸出為“黃”、“陰”、“平”三個曲線標志。在“輸出方案設置”里面我們知道,當“輸出顏色設置”選擇“其它數據的顏色表示漲跌色”,而當其它數據輸出為“曲線標志”時,則顯示其標志的顏色。所以,這里通過三個“曲線標志”的顏色來顯示分時成交量的顏色。 技術分析: 這里前5項都是與K線相關的數據項。 VolColor(成交量顏色),其原理與上面介紹的“分時成交量顏色”類似,用于顯示K線的成交量的顏色。 文本瀏覽: 這里是用于建文本窗口的公式。如,用于F10頁面的“個股資料”。 期貨公式: 用于建期貨頁面的公式。這里的公式都是用“期貨數據”編寫的。 籌碼分布: 這里是籌碼分布和火焰山公式。其詳細含義、用法參見《籌碼分布及火焰山》。 大單公式: 這里放有做各種不同“大單表”的公式。 曲線標志: 這里是各種用于畫在曲線上的標志圖形,使用時將其拖到窗口里面就可以了。如,除權標志。 還有幾個最常用的曲線,如K線、分時走勢、均線、及其成交量的柱狀圖等。在 “技術指標”下面的“曲線”目錄里面。
|
條件選股 |
條件選股是根據提供系統或用戶編制的條件選股公式進行選股選定一個條件選股公式或多個組合條件后,計算機自動幫您選出當時或歷史上某一段時間內滿足條件的所有股票,列在行情顯示窗口,同時可保留成板塊。 實時預警根據投資者設定的條件監控整個股票市場的動向,幫助投資者發現可能忽略或者不能注意到的風吹草動!投資者可以自己定義漲跌幅度、量比、絕對價位、成交量異動、指標突破價位、封停和打開停板等一系列的預警條件,系統將在條件滿足時提醒投資者有異動的股票及其異動的特征。 這里放置各種用于選股及預警的公式。 條件選股公式的編寫方法與其它公式編寫方式相同。選股條件公式的核心內容為一個條件判斷語句SELECT語句,其運算結果為“0”或者“1”即“不滿足條件”或者“滿足條件”。當然一般的公式也能用于選股,依結果為“非1”或者“1”來判斷,即只有運算結果為“1”時才能選出來。參見 “智能分析”。
|
技術指標 |
技術指標是在K線圖中用于分析股票走勢的曲線。這個目錄下含有“同花順”為您提供的200多種技術指標。參見 “技術指標簡介”。 |
交易系統 |
交易系統就是設定某種買賣條件,當滿足條件的時候就在 K 線上畫出買入、賣出的提示箭頭,用于分析買賣策略的一種工具。從某種意義上說交易系統也是一種繪圖曲線,也是通過編寫公式完成的,這里列出了“同花順” 提供的各種交易系統。 編寫交易系統的方法與編寫一般曲線類似,是不過一般曲線是連續的輸出,而交易系統是滿足買賣條件的時候輸出買入、賣出的曲線標志而已。輸出曲線標志用“ :> ”。 例如, MACD 交易系統的公式內容如下http://www.: DIFF= EMA ( CLOSE ,SHORT) - EMA ( CLOSE ,LONG); DEA = EMA (DIFF,M); MACD1 = 2 *(DIFF-DEA); IF ( CROSS (diff,dea)) a :> "buy" ; IF ( CROSS (dea,diff)) b :> "sell" ;
|
五彩K線 |
五彩 K 線是依照一定規則將普通 K 線標成多種不同的顏色,以突出某種 K 線形態的曲線公式。這里列有早晨之星、黃昏之星、十字星、長十字星、紅綠燈等各種五彩 K 線。 五彩 K 線的編寫方法與一般 K 線類似。只是一般 K 線公式以開盤價、收盤價為顏色判斷的依據,而五彩 K 線則采用各種不同的形態為顏色判斷依據。下面列出普通 K 線公式與“三紅兵”五彩 K 線公式: 普通 K 線公式:
IF ( CLOSE > OPEN )
RETURN " 陽 " ;
ELSE IF ( CLOSE < OPEN )
RETURN " 陰 " ;
ELSE IF ( CLOSE == OPEN AND OPEN >= CLOSE [ 1 ])
RETURN " 陽 " ;
ELSE IF ( CLOSE == OPEN AND OPEN <= CLOSE [ 1 ])
RETURN "陰" ;
“三紅兵”五彩 K 線公式:
IF ( CLOSE [ 2 ]> OPEN [ 2 ] AND CLOSE [ 1 ]> OPEN [ 1 ] AND CLOSE > OPEN AND
CLOSE [ 1 ]> CLOSE [ 2 ] AND CLOSE > CLOSE [ 1 ])
{ RETURN BACKSET ( "colorred" , 2 );}
ELSE RETURN "colorgreen" ;
|
|
|