您現在的位置:程序化交易>> 程序化交易>> 程序化新手>>正文內容

文華財經模型與函數詳解二[程序化新手]

4.邏輯判斷



BETWEEN(A,B,C)
 
判斷條件“A位于B及C之間”是否成立,如果條件成立則返回1 (yes),否則返回0 (no)。

例:BETWEEN(CLOSE,MA5,MA40); 表示收盤價介于5日均線與40日均線之間。
 
CROSS(X,Y)
 
表示X上穿Y。

例:CROSS(CLOSE,MA(CLOSE,5));表示收盤線從下方向上穿過5日均線
 
FILTER(COND,N) 過濾連續出現的信號。

用法:

FILTER(COND,N) 當COND條件成立時,將其后N周期內的數據置為0。

例:FILTER(CLOSE>OPEN,3) 查找陽線,3天內再次出現的陽線不被記錄在內

注:不能與BKPRICE,BARSBK,SKPRICE,BARSSK一起使用
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日均線
 
IFELSE(C,A,B) 如果條件C成立則取A值,否則取B值

例:A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));當MA5>MA10時,取是否滿足DIFF上穿DEA,否則(MA5不大于MA10),當K,D死叉時,令A賦值為2,若上述條件都不滿足,A賦值為0

A=1,BPK;//當MA5>MA10,以DIFF上穿DEA作為開多倉條件

A=2,SPK;//當MA5不大于MA10,以K D死叉作為開空倉條件
ISDOWN
 
判斷該周期是否收陰。
 
ISEQUAL
 
判斷該周期是否平盤。
 
ISUP
 
判斷該周期是否收陽。
 
VALUEWHEN(COND,DATA)
 
當條件COND滿足時,取當時的DATA的值,否則取得前面一個滿足條件COND的值。

例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示當前最高價大于前五個周期最高價的最大值時返回當前最高價。
 

5.數學運算



ABS(X)
 
求X的絕對值

例:ABS(SAR(17,0.03,0.3));返回拋物轉向SAR(17,0.03,0.3)的絕對值。
 
ACOS(X)
 
求X的反余弦值
 
ASIN(X)
 
求X的反正弦值
 
ATAN(X)
 
求X的反正切值
 
COS(X)
 
返回X的余弦值
 
EXP(X)
 
返回e的X次冪
 
CUBE(X) 返回X的三次方。
CEILING(X)
 
向上舍入,返回沿X數值增大方向最接近的整數。
 
FLOOR(X)
 
向下舍入,返回沿X數值減小方向最接近的整數。
 
INTPART(X)
 
取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,500);收盤價除以500所得余數
 
NOT(X)
 
當X為0時返回1,否則返回0。

例:NOT(TIME=090530);表示該周期對應的時間不是9:05:30AM。
 
POW(A,B)
 
得到A的B次冪。

例:POW(CLOSE,2);求得收盤價的2次方。
 
REVERSE(X)
 
取反,返回符號相反的數值。

例:REVERSE(LOW);返回-LOW。
 
RANGE(A,B,C) 表示A大于B同時小于C時返回1,否則返回0
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),秒級周期返回值范圍為:0-235959。
 
WEEKDAY
 
取得當前周期的星期數(0-6)。
 
YEAR
 
取得當前周期的年數(1970-2034)。
 
CLOSEMINUTE 距收盤前時間。

用法:

CLOSEMINUTE 返回當前系統時間距收盤前的時間(單位:分鐘),方便收盤前及時平倉。

例:TIME>1445&&CLOSEMINUTE=1,SP;//距閉市還有1分鐘平多單。


7.繪圖



BACKGROUNDSTYLE(i) 設置背景的樣式。

用法:

BACKGROUNDSTYLE(i)設置背景的樣式。

i = 0 或 1。
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取1,則為空心柱;如果Empty取0,則為實心柱。

例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示當開盤價大于收盤價時,從開盤價到收盤價畫青色的實心柱,即K線陰線的實體部分。
 
VERTLINE

(COND,COLOR)
 
畫垂直線,當條件COND滿足時,畫垂直線。

例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED); 表示在價格創30天新高時畫垂直線。
 
RGB(R,G,B) 自定義顏色函數。R,G,B的數值范圍都在0~255之間,例:RGB(225,225,225)表示白色
 
COLORSTICK 畫彩色柱線
VOLUMESTICK 畫成交量線
BAMBOOLINE 畫竹線
CIRCLEDOT 畫圓
OPISTICK 畫持倉量柱線
DRAWKLINE 自定義K線顏色,實空心及寬度。

用法:

DRAWKLINE(WidthRatio,COLOR1,EMPTY1,COLOR2,EMPTY2)。按照寬度比例WidthRatio畫線,陽線以COLOR1和EMPTY1判斷,陰線以COLOR2和EMPTY2判斷。WidthRadio從0到1,COLOR1、COLOR2代表顏色,Empty非0為空心。

例:DRAWKLINE(0.75,COLORRED,1,COLORCYAN,0);繪制K線寬度比例為0.75,陽線為紅色空心,陰線為藍綠色實心。


8、顏色常數

COLORRED
 
紅色
 
COLORGREEN
 
綠色
 
COLORBLUE
 
藍色
 
COLORMAGENTA
 
紅紫色
 
COLORYELLOW
 
黃色
 
COLORLIGHTGREY
 
淺灰色
 
COLORLIGHTRED
 
淺紅色
 
COLORLIGHTGREEN
 
淺綠色
 
COLORLIGHTBLUE
 
淺藍色
 
COLORBLACK
 
黑色
 
COLORWHITE
 
白色
 
COLORCYAN
 
青色
 

9、頭寸函數

SETDEALPERCENT 設置模型每次下單按資金的比例下單。

用法:

SETDEALPERCENT(fPercent)表示每次按資金的fPercent下單。

例子:SETDEALPERCENT(0.2); //每次按資金比例的%20下單

注:不可與SETDEALVOL函數同時使用

交易系統必須啟動

效果測試不執行此函數
SETDEALVOL 設置模型每次下單按設置的手數下單。

用法:

SETDEALVOL(nVol)表示每次模型下nVol手單。

例子:SETDEALVOL(2); //模型每次下單2手

注:不可與SETDEALPERCENT函數同時使用

交易系統必須啟動

效果測試不執行此函數

10、信號記錄函數

BKPRICE
 
模型買開信號價位。

用法:BKPRICE返回上一次模型買開倉價。
 
BARSBK
 
上一次買開信號位置

用法:BARSBK返回上一次買開倉距離當前k線的k線數。
 
SKPRICE
 
模型賣開信號價位。

用法:SKPRICE返回上一次模型賣開倉價。
 
BARSSK
 
上一次賣開信號位置

用法:BARSSK返回上一次賣開倉距離當前k線的k線數。
 

11、畫線函數



ANGLELINE 角度返回值。

用法:

ANGLELINE(COND1,DATA1,COND2,DATA2,RATIO);

從起始位置,以相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點,在角度線段高度比例為RATIO處形成角度線,函數返回K線對應的角度值。。

例:ANGLELINE(C>O,H,O>C,L,1);相距最近的陽線最高價與陰線最低價構成起止點形成角度線,返回K線對應的角度值。
GOLDENLINE 黃金分割返回值。

用法:

GOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO);

從起始位置,以相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點,在差額的RATIO比率處形成黃金分割線,返回K線對應的黃金分割值。

例:GOLDENLINE(O>C,H,C>O,H,0.3);相距最近的陰線和陽線,以各自最高價作為起止點,在差額區間內的0.3比率處形成黃金分割線,函數返回K線對應的黃金分割值。
HORIZONTALLINE 水平返回值。

用法:

HORIZONTALLINE(COND,DATA);

從起始位置,滿足條件COND的DATA值形成水平線,函數返回K線對應的水平值。

例:HORIZONTALLINE(C>O,H);以陽線的最高價為起點,截至下一根陽線為止,返回K線對應的水平值。
TRENDLINES
 
趨勢返回值。

用法:

TRENDLINES(COND1,DATA1,COND2,DATA2);

從起始位置,以相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點形成趨勢線,函數返回K線對應的趨勢值。

例:TRENDLINES(O>C,H,C>O,H);相距最近的陰線和陽線最高價形成一條趨勢線,返回K線對應的趨勢值。
WAVERULER 波浪尺返回值。

用法:

WAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO);

從起始位置,以相距最近三根分別滿足條件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值構成三點,在第三點偏離前兩點差額的RATIO比率處形成波浪尺線,返回K線對應的波浪尺值。

例:WAVERULER(C>O,H,C>O,H,C>O,H,0.3);相距最近的三根陽線,以各自最高價作為三個點,在第三點偏離前兩點差額的0.3比率處形成波浪尺線,返回K線對應的波浪尺值。
DRAWANGLELINE 畫角度線。

用法:

DRAWANGLELINE(COND1,DATA1,COND2,DATA2,RATIO,COLOR);

從起始位置,連接相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點,在線段高度比例RATIO處畫角度線,顏色為COLOR,截至下一根滿足COND1條件的K線處。

例:DRAWANGLELINE(C>O,H,O>C,L,1,COLORGREEN);連接相距最近的陽線最高價與陰線最低價為起止點,畫高度比例為1的綠色角度線,截至下一根陽線為止。
DRAWGOLDENLINE 畫黃金分割線。

用法:

DRAWGOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO,COLOR);

從起始位置,連接相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點,在差額RATIO比率處畫黃金分割線,顏色為COLOR,截至下一根滿足COND1條件的K線處。

例:DRAWGOLDENLINE(O>C,H,C>O,H,0.3,COLORGREEN);連接相距最近的陰線和陽線,以各自最高價作為起止點,在差額區間內的0.3比率處畫綠色黃金分割線,截至下一根陰線為止。
DRAWHORIZONTALLINE 畫水平線。

用法:

DRAWHORIZONTALLINE(COND,DATA,COLOR);

從起始位置,滿足COND條件K線的DATA值處畫水平線,顏色為COLOR,截至下一根滿足COND條件的K線處。

例:DRAWHORIZONTALLINE(C>O,H,COLORGREEN);以一根陽線的最高價為起點,畫綠色水平線,截至下一根陽線為止。
DRAWTRENDLINE
 
畫趨勢線。

用法:

DRAWTRENDLINE(COND1,DATA1,COND2,DATA2,COLOR);

從起始位置,連接相距最近兩根分別滿足條件COND1的DATA1值和COND2的DATA2值構成起止點,畫趨勢線,顏色為COLOR,截至下一根滿足COND1條件的K線處。

例:DRAWTRENDLINE(O>C,H,C>O,H,COLORGREEN);連接相距最近的陰線和陽線的最高價為起止點,畫綠色趨勢線,截至下一根陰線為止。
DRAWWAVERULER
 
畫波浪尺線。

用法:

DRAWWAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO,COLOR);

從起始位置,連接相距最近兩根分別滿足條件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值構成三點,在第三點偏離前兩點差額的RATIO比率處畫波浪尺,顏色為COLOR,截至下一根滿足COND1條件的K線處。

例:DRAWWAVERULER(C>O,H,C>O,H,C>O,H,0.3,COLORGREEN);連接相距最近的三根陽線,以各自最高價作為三個點,在第三點偏離前兩點差額0.3比率處畫綠色波浪尺線,截至下一根陽線為止。
WAVEPEAK 返回K線圖波峰位置。

用法:

WAVEPEAK(N) 如果當前K線最高價大于前后N根K線的最高價返回1,否則返回0。

例:WAVEPEAK(10); //如果當前K線最高價大于前10根K線最高價且大于后10根K線最高價返回1,否則返回0
WAVEVALLEY
 
返回K線圖波谷位置。

用法:

WAVEVALLEY(N) 如果當前K線最低價小于前后N根K線的最低價返回1,否則返回0。

例:WAVEVALLEY(10); //如果當前K線最低價小于前10根K線最低價且小于后10根K線最低價返回1,否則返回0


12、未來函數

 

#IMPORT
 
引用某品種在某個周期上加載了某個指標的數據。

用法:

#IMPORT AS VAR。 引用 CODE 所對應的合約 PERIOD 周期下指標 FORMULA 的數據。

CODE 文華碼,PERIOD 周期,FORMULA 引用指標名,VAR 定義變量名

注意:1.只能引用 .FML/.XFML文件

2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH

3.只能短周期引用長周期

4.被引用的指標中不能存在引用

5.如果不寫文華碼,默認引用當前合約
PEAK 取波峰值。

用法:

PEAK(X,P,M,C) 取得ZIGZAG的前M個波峰的值。

例:PEAK(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰的數值;PEAK(MA(HIGH,34),100,1,0);表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰的數值。

本函數運算量很大,將占用很多的CPU資源,導致行情刷新速度變慢,請謹慎使用!
PEAKBARS 取波峰的位置。

用法:

PEAKBARS(X,P,M,C) 取得ZIGZAG的前M個波峰的位置。

例:PEAKBARS(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰到當前的周期數;

PEAKBARS(MA(HIGH,34),100,1,0);表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰到當前的周期數

本函數運算量很大,將占用很多的CPU資源,導致行情刷新速度變慢,請謹慎使用!
 
TROUGH
 
求前M個波谷的值。

用法:

TROUGH(X,P,M,C) 求ZIGZAG前M個波谷的值。

例:TROUGH(LOW,10,1,1);表示最低價的10%的之字轉向的上一個波谷的數值;

TROUGH (MA(LOW,34),100,1,0);表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷的數值

本函數運算量很大,將占用很多的CPU資源,導致行情刷新速度變慢,請謹慎使用
TROUGHBARS 求前M個波谷的位置。

用法:

TROUGHBARS(X,P,M,C) 求前M個波谷的位置。

TROUGH(LOW,10,1,1);表示最低價的10%的之字轉向的上一個波谷到當前的周期數;

TROUGH (MA(LOW,34),100,1,0);表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷到當前的周期數

本函數運算量很大,將占用很多的CPU資源,導致行情刷新速度變慢,請謹慎使用!
 
ZIGZAG 求之字轉向。

用法:

ZIGZAG(X,N,C)求X的在條件N下的之字轉向值。

例:ZIGZAG(HIGH,10,1);表示最高價的10%的之字轉向ZIGZAG(MA(HIGH,34),100,0);表示34個周期內最高價均線的100個價位的之字轉向
 
ISLASTBAR
 
判斷該周期是否為最后一根k線。

用法:

ISLASTBAR 如果是最后一個K線返回1(Yes),否則返回0(No)

本函數運算量很大,將占用很多的CPU資源,導致行情刷新速度變慢,請謹慎使用!

 

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 日本亚洲欧美在线视观看| 亚洲欧美色鬼久久综合| 你懂的在线免费观看| 亚洲国产精品福利片在线观看 | 亚洲精品无码久久久| 乱中年女人伦av三区| 中国老太大bbw| 4虎永免费最新永久免费地址| 麻豆视频免费观看| 精品欧美一区二区三区精品久久| 欧美精品香蕉在线观看网| 日本bbwbbwbbw| 国美女福利视频午夜精品| 国产亚洲美女精品久久久久| 人久热欧美在线观看量量| 久久精品中文无码资源站| ass亚洲**毛茸茸pics| 青苹果乐园在线影院免费观看完整版 | 绿巨人黑科技地址入口| 欧美成人国产精品高潮| 成年女人黄小视频| 国产精品美女久久久久av福利| 国产91小视频| 亚洲一区在线视频| 一区二区三区亚洲视频| 国产精品www| 爽爽yin人网| 无码精品日韩中文字幕| 国产精品怡红院在线观看| 免费看成人aa片无码视频吃奶| 久久经典免费视频| 91精品91久久久久久| 精品日韩一区二区| 日韩欧美亚洲天堂| 日本一区高清视频| 国产视频二区在线观看| 又大又黄又粗又爽的免费视频| 乱人伦人妻中文字幕| 97精品依人久久久大香线蕉97 | 精品久久天干天天天按摩| 日本熟妇人妻xxxxx人hd|