文華財經基本函數及語法


文華財經基本函數及語法

  (2015-11-15 12:07:37)
  分類: Finance
 
編輯平台支持的操作符
操作符
意義
加法
CLOSE+OPEN 表示求收盤價及開盤價的和。
CLOSE-OPEN 表示求收盤價及開盤價的差。
CLOSE*OPEN 表示求收盤價及開盤價的積。
CLOSE/OPEN 表示求收盤價及開盤價的商。
減法
*
乘法
/
除法
&&
與(並且)
CLOSE>OPEN 表示判斷當前周期是否收陽。
CLOSE=OPEN 表示判斷當前周期是否平盤。
||
或(或者)
>
大於
<
小於
>=
大於等於
<=
小於等於
<> 
不等於
=
等於操作符
:=
只定義一個局部變量
(這個變量在畫圖時是不畫的)
TMP1:=(OPEN+CLOSE)/2;
MA(TMP1,10);
上面的公式的第一個語句定義了一個局部變量TMP1,在下面一行中引用了這個局部變量,但是要注意的是這個公式在畫圖的時候只畫了第二條語句所求出的結果。
相反下面這個公式則需要畫出兩條線,第一條是自己定義的均價線,同時顯示了均價的名稱為AVP,第二條線是均價的簡單移動平均線。
AVP:(OPEN+CLOSE)/2;
MA(AVP,10);
聲明了一個變量,在畫圖時畫出它並且按這個名字顯示。
 
 
編輯平台支持的函數
1. 引用數據
AVPRICE
引用均價(在盤后對於國內三個期貨交易所指結算價)
CLOSE
引用收盤價(在盤中指最新價)
HIGH
引用最高價
LOW
引用最低價
OPEN
引用開盤價
OPI
引用持倉量
REF(X,N)
引用X在N個周期前的值
例:REF(CLOSE,5);表示引用當前周期前第5個周期的收盤價
REFX(X,N)
引用N個周期后的數據。(N為大於等於1的整數)(未來函數)
例:REFX(CLOSE,5);表示引用自當前周期后第5個周期的收盤價
SETTLE
引用結算價(只有盤后才能引用當日的結算價)
VOL
引用成交量

2. 金融統計
BACKSET(X,N)
若X非0,則將當前位置到N周期前的數值設為1。
例:BACKSET(CLOSE>OPEN,3);表示當K線收陽時,自當前位置到3周期前的數值設為1
BARSLAST(X)
求上一次條件成立到當前的周期數。
COUNT(X,N)
表示統計在N周期內滿足X條件的周期數。如果N為0則表示從第一天開始算起。
例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)); COUNT(WR>80,5);表示統計在5個周期內滿足WR>80的次數
DMA(X,A)
返回X的動態移動平均,其中A必須介於0及1之間。
計算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)為第(N-1)天的DMA值
EMA(X,N)
表示求X在N周期內的平滑移動平均。(指數加權)
計算方法:EMA(X,N)=[2*X+(N-1)*EMA(N-1)]/(N+1) 其中EMA(N-1)為第(N-1)天的EMA值
EMA2(X,N)
表示求X在N周期內的加權平均。(線性加權)
計算方法:EMA2(N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值...
HHV(X,N)
得到X在N周期內的最高值,如果N=0,則從第一個有效周期開始算起。
例:HHV(HIGH,13);求13個周期內的最高價的最大值。
HHVBARS(X,N)
得到X在N周期內的最高值位置到當前的周期數。如果N=0,則從第一個有效周期開始算起。
例:HHVBARS(VOL,0); 求歷史成交量最大的周期到當前的周期數
LLV(X,N)
得到X在N周期內的最小值,如果N=0,則從第一個有效周期開始算起。
例:LLV(LOW,25);表示求25個周期內最低價的最小值
LLVBARS(X,N)
得到X在N周期內的最小值的位置到當前的周期數。如果N=0則從第一個有效周期開始算起。
例:LLVBARS(VOL,0); 求歷史成交量最小的周期到當前的周期數
MA(X,N)
求X在N周期內的簡單移動平均。
計算方法:MA=(A1+A2+A3+A4+A5)/5 求A在5個周期內的簡單移動平均
ZIGZAG(X,P,C)
之字轉向(未來函數),當C取1,P為百分比數;當C取0,P為價位差值。
例:ZIGZAG(HIGH,10,1);表示最高價的10%的之字轉向
ZIGZAG(MA(HIGH,34),100,0);表示34個周期內最高價均線的100個價位的之字轉向
PEAK(X,P,M,C)
取得ZIGZAG前M個波峰的值。其中X為數據,P為轉折值(如果C為1的話,這個值為百分比,否則為絕對值),M為大於等於1的整數。(未來函數)
例:PEAK(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰的數值 PEAK(MA(HIGH,34),100,1,0);表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰的數值
PEAKBARS(X,P,M,C)
取得ZIGZAG前M個波峰到當前周期的周期數。(未來函數)
例:PEAKBARS(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰到當前的周期數
PEAKBARS(MA(HIGH,34),100,1,0);表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰到當前的周期數
TROUGH(X,P,M,C)
取得ZIGZAG前M個波谷的值。(未來函數)
例:TROUGH(LOW,10,1,1);表示最低價的10%的之字轉向的上一個波谷的數值
TROUGH (MA(LOW,34),100,1,0);表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷的數值
TROUGHBARS(X,P,M,C)
取得ZIGZAG前M個波谷到當前周期的周期數 (未來函數)
TROUGHBARS(LOW,10,1,1);表示最低價的10%的之字轉向的上一個波谷到當前的周期數
TROUGHBARS(MA(LOW,34),100,1,0);表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷到當前的周期數
SAR(N, Step, Max)
得到拋物轉向值。N為計算周期,Step為步長,Max為極值。
例:SAR(17,3,30);表示計算17個周期拋物轉向,步長為3%,極限值為30%
SMA(X,N,M)
得到X在N個周期內的移動平均,M為權重。
計算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N
SUM(X,N)
得到X在N周期內的總和,如果N=0,則從第一個有效周期開始算起。
例: SUM(VOL,10);表示統計10周期內的成交量總和
SUMBARS(X,A)
得到X向前累加直到大於A時的周期數。
TRMA(X,N)
求X在N周期內的三角移動平均。
TSMA(X,N)
求X在N周期內的時間序列移動平均。
計算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N)

3. 數理統計
AVEDEV(X,N)
求X在N周期內的平均絕對偏差。
DEVSQ(X,N)
數據偏差平方和。
FORCAST(X,N)
得到X的N周期線性回歸預測值。
例:FORCAST(CLOSE,5);表示求5周期線性回歸預測
SLOPE(X,N)
得到X在N周期內的線性回歸的斜率。
例:SLOPE(CLOSE,5);表示求5周期線性回歸線的斜率
STD(X,N)
得到X在N周期內的標准差。
STDP(X,N)
得到X在N周期內的總體標准差。
VAR(X,N)
得到X在N周期內的樣本方差。
VARP(X,N)
得到X在N周期內的總體樣本方差。
數理統計舉例說明:
設一個數列,數列中數據的總個數為N,以今天(2005-10-14)五天內的A0605收盤價為例,N就為5。數列的內容為:{2766,2805,2814,2886,2885}。
1、算術平均值MA(CLOSE,5):數據總和除以總個數N。 (2766+2805+2814+2886+2885)/5=2831.20。可以用公式MA(CLOSE,5),從今天的值上看出。
2、偏差:每個數據,減去算術平均值的結果。 2766-2831.20=-65.2, 2805-2831.20=-26.2, 2814-2831.20=-17.2, 2886-2831.20=54.8, 2885-2831.20=53.8, 各偏差相加,應該是等於0的。
3、平均絕對偏差AVEDEV(X,N):將偏差的絕對值相加,除以總個數N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44
4、數據偏差平方和DEVSQ(X,N):將偏差的平方相加。 (-65.2)²+ (-26.2)²+ (-17.2)²+ (54.8)²+ (53.8)²=11130.80
5、總體樣本方差VARP(X,N):將偏差的平方相加,總和除以總個數N。用公式可以這樣算: (-65.2)²+ (-26.2)²+ (-17.2)²+ (54.8)²+ (53.8)²/5=2226.16
6、樣本方差VAR(X,N):是總體方差的N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算樣本方差,總比總體樣本方差大一點,當N夠大時,兩者趨於相等。
7、總體標准差STDP(X,N):方差的開方。 [(-65.2)²+ (-26.2)²+ (-17.2)²+ (54.8)²+ (53.8)²/5]½=47.18
8、標准差STD(X,N):估算樣本方差的開方。 [2226.16*5/(5-1)]½=52.75 同樣,估算標准差也比總體標准差大一點,當N夠大時,兩者趨於相等。

4. 邏輯判斷
BETWEEN(A,B,C)
判斷A是否位於B及C之間,如果A介於B,C之間則返回1,否則返回0。
例:BETWEEN(CLOSE,MA5,MA40); 表示收盤價介於5日均線與40日均線之間
CROSS(X,Y)
如果X上穿Y則返回1(yes),否則返回0(no)。
例:CROSS(CLOSE,MA(CLOSE,5));表示收盤線從下方向上穿過5日均線
EXIST(COND,N)
判斷過去N個周期內是否有滿足條件COND。
例:EXIST(CLOSE>REF(HIGH,1),10);表示10個周期中是否存在收盤價大於前一個周期的最高價
EVERY(COND,N)
判斷過去N個周期內是否一直滿足條件COND。
例:EVERY(CLOSE>OPEN,5);表示5個周期內一直是陽線
LAST(COND,N1,N2)
判斷過去N1到N2周期內是否一直滿足條件COND。
例:LAST(CLOSE>OPEN,10,5);表示從過去第10個周期到第5個周期內一直是陽線
LONGCROSS(A,B,N)
如果A在前N個周期內都小於B,本周期上穿B,則返回1。否則返回0。
例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盤線在10日均線之下持續20周期后從下向上穿過10日均線
NOFILTER
信號過濾函數。
公式后加“NOFILTER;”是指不需要過濾,出現任何交易指令都會執行。公式后不加“NOFILTER;”是指當連續出現同方向的交易指令時,系統只顯示出第一個交易指令,其他交易指令自動被過濾。
IF(C,A,B)
如果C成立返回A,否則返回B。
例:IF(CLOSE>REF(CLOSE,1),1,0);表示若今日收盤價高於前一日收盤價,則返回1,否則返回0
ISDOWN
如果該周期收陰則返回1,否則返回0。
ISEQUAL
如果該周期平盤則返回1,否則返回0。
ISUP
如果該周期收陽則返回1,否則返回0。
ISLASTBAR
取得當前周期是否為最后一根K線。最后一個周期返回值為1,其余為0。
VALUEWHEN(COND,DATA)
當條件COND滿足時,取當時的DATA的值,否則取得VALUEWHEN的前一個值。
例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示當前最高價大於前五個周期最高價的最大值時返回當前最高價

5. 數學運算
ABS(X)
求X的絕對值。
例:ABS(CLOSE-10) 返回收盤價和10的價差的絕對值
ACOS(X)
求X的反余弦值。
ASIN(X)
求X的反正弦值。
ATAN(X)
求X的反正切值。
CEILING(X)
向上舍入。返回沿X數值增大方向最接近的整數。
COS(X)
返回X的余弦值。
EXP(X)
表示求e的X次冪。
FLOOR(X)
向下舍入。返回沿X數值減小方向最接近的整數。
INTPART(X)
取X的整數部分。INTPART(X)返回沿X絕對值減小方向最接近的整數。
LN(X)
得到X的自然對數。以e為底的對數。
例:LN(OPEN);求開盤價的自然對數。
LOG(X)
得到X的常用對數。取得X的以10為底的對數。
例:LOG(OPEN);求開盤價的以10為底的對數。
MAX(A,B)
求A,B中的較大者。
例:MAX(CLOSE-OPEN,0);表示若收盤價大於開盤價返回它們的差值,否則返回0
MIN(A,B)
求A,B中的較小者。
例:MIN(OPEN,CLOSE);返回開盤價和收盤價中的較小值
MOD(A,B)
返回A對B得到模。
例:MOD(CLOSE,OPEN);收盤價除以開盤價所得余數
NOT(X)
當X為0時返回1,否則返回0。
例:NOT(TIME=0905);表示該周期對應的時間不是9:05AM
POW(A,B)
得到A的B次冪。
例:POW(CLOSE,2);求得收盤價的2次方
REVERSE(X)
取反。
例:REVERSE(LOW);返回-LOW
SGN(X)
得到X的符號,如果X>0則返回1,如果X<0則返回-1,否則返回0。
SIN(X)
得到X的正弦值。
SQRT(X)
得到X的平方根。
例:SQRT(CLOSE);收盤價的平方根
SQUARE(X)
得到X的平方。
例:SQUARE(CLOSE);收盤價的平方
TAN(X)
得到X的正切值。

6. 時間函數
BARPOS
取得當前K線的位置。
DATE
取得當前周期的日期數(700101-341231)。
DAY
取得當前周期的日數(1-31)。
HOUR
取得當前周期的小時數(0-23)。
MINUTE
取得當前周期的分鍾數(0-59)。
MONTH
取得當前周期的月數(1-12)。
TIME
取得當前周期的時間數(0-2359)。
WEEKDAY
取得當前周期的星期數(0-6)。
YEAR
取得當前周期的年數(1970-2034)。

7. 繪圖
DRAWLINE
(C1,P1,C2,P2, COLOR)
當條件C1及C2均滿足時,從P1畫直線到P2,顏色為COLOR。
例:DRAWLINE(MA18< CLOSE,OPEN,MA5 >CLOSE,CLOSE,COLORCYAN); 表示當收盤價大於18日均線並且小於5日均線時,從開盤價畫青色直線到收盤價。
DRAWTEXT(C,P,TEXT)
表示當條件C滿足時在P上寫TEXT文字。
例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,'注'); 表示連續兩日收陰並且成交量比前一日至少多10%時,在最低價上寫“注”字。
DRAWSL(COND,DATA,
SLOPE,LEN,EXPAND,
COLOR)
畫斜線,當條件COND滿足時,從DATA開始以每個周期相差SLOPE個點的斜率畫斜線,划線長度為LEN個周期,EXPAND為線段的延長方式(0:不延伸;1:向左延伸;2:向右延伸;3:雙向延伸)。
例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示當前最低價等於50周期內的最小值時,從當前最小值開始以每隔5個點的斜率畫長度為3個周期向右延伸的斜線,顏色為紅色
DRAWNUMBER
(COND,DATA,NUMBER,PRECISION,COLOR)
畫數字。當條件COND滿足時,在DATA位置寫數字NUMBER(為數組),精度為PRECISION(小數點后有幾位數字)。
例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示當日漲幅大於8%時在最高價位置顯示漲幅(相對開盤價的百分比)。
FILLRGN
(COND,DATA1,DATA2,COLOR)
填充區域,當條件COND滿足時,填充DATA1及DATA2包圍的區域。
例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10時以紅色填充MA5和MA10之間的區域。
POLYLINE
(COND,DATA,COLOR)
畫折線,當條件COND滿足時,連接各個DATA點。
例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盤價創100天新高點之間畫折線。
PARTLINE
(COND,DATA,COLOR)
同POLYLINE。
例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示當期最高價大於前期最高價用紅色繪制最高價連線。
STICKLINE
(C,P1,P2,Color,Empty)
如果條件C滿足時,從P1到P2畫柱線,顏色為Color,如果Empty不為0,則為空心柱,否則為實心柱。
例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示當開盤價大於收盤價時,從開盤價到收盤價畫青色的實心柱,即K線陰線的實體部分。
VERTLINE
(COND,COLOR)
畫垂直線,當條件COND滿足時,畫垂直線。
例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED); 表示在價格創30天新高時畫垂直線。
 
 
編輯平台可以使用的常數
常數
意義
COLORRED
紅色
COLORGREEN
綠色
COLORBLUE
藍色
COLORMAGENTA
紅紫色
COLORYELLOW
黃色
COLORLIGHTGREY
淺灰色
COLORLIGHTRED
淺紅色
COLORLIGHTGREEN
淺綠色
COLORLIGHTBLUE
淺藍色
COLORBLACK
黑色
COLORWHITE
白色
COLORCYAN
青色
COLORSTICK
畫彩色柱線
VOLUMESTICK
畫成交量線
BAMBOOLINE
畫竹線
CIRCLEDOT
畫圓
OPISTICK
畫持倉量柱線
注意:在公式內即使你定義了某種顏色,在顯示的時候也未必是此種顏色,取決於背景顏色當前頁面里是否保了該指標的顏色及您是否在顯示的時候改變了該指標的顏色設置。
 
 
編輯平台的語法
 
1.關於公式名稱:
公式的名稱不可以和已經存在的公式重復。

2.關於參數:
每個自編公式最多可以定義四個參數,參數的定義如下,首先是參數名稱,然后是參數的最小值,最大值,最后是參數的默認值。在定義參數時要注意的是參數名稱不可以重復。

3.關於變量名稱:
變量名稱不可以互相重復,不可以和參數名重復,不可以和函數名稱重復。

4.關於公式內容:
公式的每個語句應該以分號結束,包括最后一條語句。在數據公式的時候請您注意一定要使用半角輸入。在編寫公式的過程中,如果您不記得某個函數的確切寫法,可以選擇插入函數來插入函數。

5.如果您在編寫公式之后,想給這個公式加上注釋,說明之類的東西,可以使用公式說明來輸入。
 
 
 
請注意,在效果測試使用如下機制:
連續的開倉指令只使用第一個指令進行開倉,開倉時使用當時的全部資金,連續的平倉指令,只有第一個有效,平掉當時的全部持倉,其他的平倉指令算做錯誤指令!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM