【轉(zhuǎn)】同花順系統(tǒng)公式編寫教程及函數(shù)用法基礎(chǔ)(一)語言規(guī)范: 在自定義公式里面的各種符號(如,“;” )只能用半角不能用全角。 關(guān)鍵字 if else while break continue return (無大小寫之分) 賦值語句: 其一般形式為: a=b; 含義為將b的值付給a。 幾個運算符“=”賦值、 “:=” 賦值“:”賦值并輸出數(shù)值或字符串“:>”賦值并輸出圖形。 注意:“=”和“:=”兩個運算符的意義、用法完全相同。這樣做主要是為了更好地兼容市場上目前的各種帶有公式編輯功能的分析軟件。
邏輯函數(shù): 1、條件函數(shù):根據(jù)條件求不同的值。 用法:IF(X,A,B)若X不為0則返回A,否則返回B。 例如:(CLOSE>OPEN,HIGH,LOW)表示該周期收陽則返回最高值,否則返回最低值。 引用函數(shù): 1、滿足條件的周期數(shù):統(tǒng)計滿足條件的周期數(shù)。 用法:COUNT(X,N),統(tǒng)計N周期中滿足X條件的周期數(shù),若N=0則從第一個有效值開始。例如:COUNT(CLOSE>OPEN,20)表示統(tǒng)計20周期內(nèi)收陽的周期數(shù)。 2、第一個條件成立到當(dāng)前的周期數(shù):統(tǒng)計第一個條件成立到當(dāng)前的周期數(shù)。 用法:BARSSINCE(X):第一次X不為0到現(xiàn)在的天數(shù)。例如:BARSSINCE(HIGH>10)表示股價超過10元時到當(dāng)前的周期數(shù)。 3、上一次條件成立到當(dāng)前的周期數(shù):上一次條件成立到當(dāng)前的周期數(shù)。 用法:BARSLAST(X),上一次X不為0到現(xiàn)在的天數(shù)。例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1,1)表示上一個漲停板到當(dāng)前的周期數(shù)。 4、有效周期數(shù):求總的周期數(shù)。 用法:BARSCOUNT(X),第一個有效數(shù)據(jù)到當(dāng)前的天數(shù)。 5、向前賦值:將當(dāng)前位置到若干周期前的數(shù)據(jù)設(shè)為1。 用法:BACKSET(X,N),若X非0,則將當(dāng)前位置到N周期前的數(shù)值設(shè)為1。例如:BACKSET(CLOSE>OPEN,2)若收陽則將該周期及前一周期數(shù)值設(shè)為1,否則為0。 6、求和:求總和。 用法:SUM(X,N),統(tǒng)計N周期中X的總和,N=0則從第一個有效值開始。例如:SUM(VOL,5)周期設(shè)為日線時,表示最近5個交易日的成交量之和。SUM(VOL,0)表示從傳數(shù)據(jù)過來第一天起的成交量總和,具體如在區(qū)間統(tǒng)計里統(tǒng)計“總手” SUM(VOL,0)即是指全區(qū)間的成交量之和。 7、移動平均:求移動平均。 用法:SMA(X,N,M),求X的N日移動平均,M為權(quán)重。算法: 若Y=SMA(X,N,M)則 Y=[M*X+(N-M)*Y']/N,其中Y'表示上一周期Y值,N必須大于M。例如:SMA(CLOSE,30,1)表示求30日移動平均價。 8、向前引用:引用若干周期前的數(shù)據(jù)。 用法: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周期內(nèi)X最低值,N=0則從第一個有效值開始。例如:LLV(LOW,0)表示求歷史最低價。 11、最高值:求最高值。 用法:HHV(X,N),求N周期內(nèi)X最高值,N=0則從第一個有效值開始。 例如:HHV(HIGH,30)表示求30日最高價。 12、指數(shù)平滑移動平均:求指數(shù)平滑移動平均。 用法:EMA(X,N),求X的N日指數(shù)平滑移動平均。算法:若Y=EMA(X,N)則Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。例如:EMA(CLOSE,30)表示求30日指數(shù)平滑均價。 13、動態(tài)移動平均:求動態(tài)移動平均。 用法:DMA(X,A),求X的動態(tài)移動平均。算法: 若Y=DMA(X,A)則 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必須小于1。例如:DMA(CLOSE,VOL/CAPITAL)表示求以換手率作平滑因子的平均價。 14、最高值周期數(shù):求上一高點到當(dāng)前的周期數(shù)。 用法:HHVBARS(X,N):求N周期內(nèi)X最高值到當(dāng)前周期數(shù),N=0表示從第一個有效值開始統(tǒng)計。例如:HHVBARS(HIGH,0)求得歷史新高到到當(dāng)前的周期數(shù)。 15、最低值周期數(shù):求上一低點到當(dāng)前的周期數(shù)。 用法:LLVBARS(X,N):求N周期內(nèi)X最低值到當(dāng)前周期數(shù),N=0表示從第一個有效值開始統(tǒng)計。例如:LLVBARS(HIGH,10)求得10日最低點到當(dāng)前的周期數(shù)。 16、加權(quán)移動平均:求加權(quán)移動平均。 用法:WMA(X,A),求X的加權(quán)移動平均。 17、求和:向前累加到指定值到現(xiàn)在的周期數(shù)。 用法:SUMBARS(X,A):將X向前累加直到大于等于A,返回這個區(qū)間的周期數(shù)。例如:SUMBARS(VOL,CAPITAL)求完全換手到現(xiàn)在的周期數(shù)。 時間函數(shù): 1、總開盤分鐘:求當(dāng)前代碼類型的開市交易時間。 用法:TRADETIME。返回交易時間,單位為分鐘。目前一般市場都返回242,與日期或具體的股票無關(guān)。 2、距開盤分鐘:求當(dāng)前時刻距開盤有多長時間。 用法:FROMOPEN。返回當(dāng)前時刻距開盤有多長時間,單位為分鐘。例如:當(dāng)前時刻為早上十點,則返回31。 3、距午夜秒:求當(dāng)前時刻距開盤有多長時間。 用法:FROMNIGHT。返回當(dāng)前時刻距午夜有多長時間,單位為秒。例如:當(dāng)前時刻為早上十點,則返回36000。 4、時間格式:轉(zhuǎn)換時間格式。 用法:FORMATTIME(N)。目前只支持 N=1 把當(dāng)前時間轉(zhuǎn)換成距開盤分鐘數(shù)返回。例如:分時中的量比曲線公式:(VOL*(TRADETIME+1)*5)/(FORMATTIME(1)*FIVEDAYVOL)。 5、時間差:計算兩個時間之間的差。 用法:COUNTTIME(N,L,K)。N、L為時間,其格式為YYYYMMDD。K為1、2或者3。當(dāng)K為1時返回第二個之間比第一個時間晚多少年。當(dāng)K為2時返回第二個之間比第一個時間晚多少月。當(dāng)K為3時返回第二個之間比第一個時間晚多少日。例如:COUNTTIME(20000808,19990606,2)其返回值為-2。注意:這里返回值有正負號。 算術(shù)函數(shù): 1、絕對值:求絕對值。 用法:ABS(X)返回X的絕對值。例如:ABS(-34)返回34。 2、介于:介于兩個數(shù)之間。 用法: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,即當(dāng)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、求相反數(shù):求相反數(shù)。 用法:REVERSE(X)返回-X。 例如REVERSE(CLOSE)返回-CLOSE。 9、余弦值:求余弦值。 用法:COS(X)返回X的余弦值。 10、正弦值:求正弦值。 用法:SIN(X)返回X的正弦值。 11、平方根:開平方。 用法:SQRT(X)為X的平方根。例如:SQRT(CLOSE)收盤價的平方根。 12、上穿:兩條線交叉。 用法:CROSS(A,B)表示當(dāng)A從下方向上穿過B時返回1,否則返回0。例如:CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均線與10日均線交金叉。 13、維持:兩條線維持一定周期后交叉。 用法:LONGCROSS(A,B,N)表示A在N周期內(nèi)都小于B,本周期從下方向上穿過B時返回1,否則返回0。例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均線維持5周期后與10日均線交金叉。 14、空:判斷是否為空。 用法:ISNULL(A)表示如果A為空(即沒有數(shù)據(jù))則返回1,否則返回0。 15、冪:求冪。 用法:POW(X,Y)。求X的Y次冪。例如:POW(2,3)為8。 繪圖函數(shù) 位圖 含義:在圖形上繪制位圖。 填充背景 含義:根據(jù)條件填充背景區(qū)域。 畫圖標 含義:在圖形上繪制小圖標。 顯示文字 含義:在圖形上顯示文字。 RGB顏色 含義:指定顏色。 畫柱線 用法: 提示文字 TIPTEXT(COND,PRICE,TEXT),當(dāng)COND條件滿足時,在PRICE位置顯示圖標,若PRICE為0,則在圖形底部顯示圖標。 畫垂直線 含義:在圖形上繪制垂直線。 畫水平線 含義:在圖形上繪制水平線。
這里舉一些最簡單的例子,有些只有一條語句且函數(shù)簡單,較復(fù)雜的公式中函數(shù)復(fù)雜且語句較多。
CLOSE 均線的畫法 計算N日內(nèi)收盤價的算術(shù)平均值,公式為:MA(X,N)表示X的N日平均?! ±纾?MA1: MA (CLOSE,5) , coloryellow ; 表示為: 參數(shù)名 畫一條5日收盤價的均線 設(shè)置該線為黃色 換手率 換手率指當(dāng)期的成交量占流通股本的比例?!?br>公式: hs:VOL/CAPITAL; VOL為當(dāng)期成交量,CAPITAL為流通股本。 乖離率 當(dāng)前股價與均線的偏差的程度 量比 當(dāng)期成交量與5日均量的比
創(chuàng)新高 創(chuàng)新高指當(dāng)日最高價是最近一段時間的最高價: HIGH=HHV(HIGH,N) 其中的HIGH為當(dāng)期最高價,HHV(X,N)是求N周期內(nèi)X最高值。因此該公式的含義是當(dāng)日最高價創(chuàng)N日新高時返回值為1,否則為0。
放量、縮量(成交量函數(shù)為VOL) 上漲、下跌 上漲 今天的漲幅達到5%以上,表示如下: close>ref(close,1)>1.05; 下跌 今天的跌幅達到5%以上,表示如下: close/ref(close,1)<0.95; 描述K線 陽線 close>open; 陰線 close< open; 高開 open>ref(close,1); 低開 open< ref(close,1); 跳空高開(high為最高價) open>ref(high,1); 跳空低開(low為最低價) open< ref(low,1); 引用大盤數(shù)據(jù) INDEXDATA(“N”,&X,K) INDEXDATA 求某商品相關(guān)的數(shù)據(jù) 個股于大盤的比較 股價在N日線附近--這可是反映股價調(diào)整幅度的好公式(選股) 只顯示數(shù)值不顯示曲線 在曲線屬性-輸出線形的勾去掉,在公式語句使用輸出符出“:” |
|
|