文華財經函數可是說是挺重要的一點了!因此RB找到了文華財經函數大全!方便大伙兒參考!查詢可以按ctrl+f進行快速查閱哦!記得收藏,免得以后找不到了哈!
1、引用數據
AVPRICE?引用均價(在盤后對于國內三個期貨交易所指結算價)
SETTLE?引用結算價(如果用在周期小于'日'的K線上如5分鐘K線,一小時k線,每根k線返回的值表示這根k線當日開盤時到這根k線的為止的結算價(均價)
如果用在周期大于等于'日'的K線上,返回當根K線結束時間所在日的結算價.)
CLOSE?引用收盤價(在盤中指最新價),也可簡寫為C。
HIGH?引用最高價,也可簡寫為H。
LOW?引用最低價,也可簡寫為L。
OPEN?引用開盤價,也可簡寫為O。
OPI?引用持倉量
REF(X,N)?引用X在N個周期前的值
例:REF(CLOSE,5);
表示引用當前周期前第5個周期的收盤價
REFX(X,N)?引用N個周期后的數據。(N為大于等于1的整數)
『未來函數』
例:REFX(CLOSE,5);
表示引用自當前周期后第5個周期的收盤價
VOL?引用成交量,也可簡寫為V。
GETPRICE(N)?根據文華碼取出某一品種的最新價。
例子:
GETPRICE(1209);返回文華碼為1209的合約品種的最新價。
BARSBK:取上一次買開倉位置
BARSSK:取上一次賣開倉位置
BKPRICE:取最近一次買開信號位
SKPRICE:取最近一次賣開信號位
MINPRICE1:取模組交易合約的最小變動價位
HHV(H,BARSBK+1):取最近買開位置到現在的最高價
LL:=LLV(L,BARSSK+1);取最近賣開位置到現在的最低價
2、金融統計
BACKSET(X,N)?若X條件成立,則將當前位置到N周期前的數值設為1。『未來函數』
例:BACKSET(CLOSE>OPEN,3);表示當K線收陽時,自當前位置到3周期前的數值設為1
該函數參數支持變量計算如BACKSET(CLOSE>OPEN,VAR1);//VAR1是變量
BARSLAST(X)?求上一次條件成立到當前的周期數。
例:
BARSLAST(X):上一次滿足X條件到現在的K線根數。如果本根K線滿足X條件,則BARSLAST(X)返回0.
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,N)?返回X的動態移動平均,其中N必須介于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(X,(N-1))]/(N+1)
其中EMA(X,(N-1))為第(N-1)天的EMA值。
EMA2(X,N)?表示求X在N周期內的加權平均。(線性加權)
計算方法:EMA2(X,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,N)?之字轉向,當X變化量超過P時轉向,當N取1,P為百分比數;當N取0,P為價位差值絕對值。『未來函數』
例:ZIGZAG(HIGH,10,1);表示最高價的10%的之字轉向
ZIGZAG(MA(HIGH,34),100,0);
表示34個周期內最高價均線的100個價位的之字轉向
PEAK(X,P,M,N)?取得ZIGZAG前M個波峰的值。其中X為數據,P為轉折值(如果N為1,這個值為百分比數,否則為價位差值絕對值),M為大于等于1的整數。『未來函數』
例:PEAK(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰的數值;
PEAK(MA(HIGH,34),100,1,0);
表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰的數值。
PEAKBARS(X,P,M,N)?取得ZIGZAG前M個波峰到當前周期的周期數。其中X為數據,P為轉折值(如果N為1,這個值為百分比數,否則為價位差值絕對值),M為大于等于1的整數。『未來函數』
例:PEAKBARS(HIGH,10,1,1);表示最高價的10%的之字轉向的上一個波峰到當前的周期數。
PEAKBARS(MA(HIGH,34),100,1,0);表示34個周期內最高價均線的100個價位的之字轉向的上一個波峰到當前的周期數。
TROUGH(X,P,M,N)?取得ZIGZAG前M個波谷的值。其中X為數據,P為轉折值(如果N為1,這個值為百分比數,否則為價位差值絕對值),M為大于等于1的整數。『未來函數』
例:TROUGH(LOW,10,1,1);
表示最低價的10%的之字轉向的上一個波谷的數值。
TROUGH (MA(LOW,34),100,1,0);
表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷的數值。
TROUGHBARS(X,P,M,N)?取得ZIGZAG前M個波谷到當前周期的周期數。其中X為數據,P為轉折值(如果N為1,這個值為百分比數,否則為價位差值絕對值),M為大于等于1的整數。『未來函數』
TROUGH(LOW,10,1,1);
表示最低價的10%的之字轉向的上一個波谷到當前的周期數。
TROUGH (MA(LOW,34),100,1,0);
表示34個周期內最低價均線的100個價位的之字轉向的上一個波谷到當前的周期數。
SAR(N,Step,Max)?得到拋物轉向值。N為計算周期,Step為步長,Max為極值。
(系統函數,計算步驟后臺自動完成)
例:SAR(17,0.03,0.3);表示計算17個周期拋物轉向,步長為3%,極限值為30%。
SMA(X,N,M)?得到X在N個周期內的移動平均,M為權重(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)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80。
5、總體樣本方差VARP(X,N):將偏差的平方相加,總和除以總個數N。用公式可以這樣算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16。
6、樣本方差VAR(X,N):是總體方差的N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算樣本方差,總比總體樣本方差大一點,當N夠大時,兩者趨于相等。
7、總體標準差STDP(X,N):方差的開方。 [(-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5]?=47.18。
8、標準差STD(X,N):估算樣本方差的開方。 [2226.16*5/(5-1)]?=52.75 同樣,估算標準差也比總體標準差大一點,當N夠大時,兩者趨于相等。
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日均線
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?交易模型買賣指令信號過濾函數。(僅適用于交易模型的過濾)
設置模型對產生的交易指令不過濾,則出現的任何交易指令都會執行,如果沒有設置“不過濾”,則產生的指令將按照如下規則過濾:
1.連續的同方向指令只有第一個有效,其他的將被過濾;
2.交易指令必須配對出現(例如:前面已經有了買開指令,則后面只允許出現賣平指令,其他的指令都被濾掉。這也就意味著,第一個指令只能是買開或者賣開指令,其他的都被過濾);
3.但是在進行模型效果測試及優化時,無論設置過濾與否,都按照前面的規則對指令進行了過濾。
IFELSE(C,A,B)?(08版等以前版本里用IF函數表示)。
如果條件C成立則返回A值,否則返回B值.
例:IFELSE(CLOSE>REF(CLOSE,1),1,0);
表示若今日收盤價高于前一日收盤價,則返回1,否則返回0
ISDOWN?判斷該周期是否收陰。
ISEQUAL?判斷該周期是否平盤。
ISUP?判斷該周期是否收陽。
ISLASTBAR?判斷當前周期是否為最后一根K線。
例:ISLASTBAR; 如果是最后一個K線返回1(Yes),否則返回0(No)。
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次冪
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,OPEN);收盤價除以開盤價所得余數
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。
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)。
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)?畫線段,條件COND滿足時,以COLOR顏色的直線連接DATA各點。
例: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天新高時畫垂直線。
08版本與09版本函數區別:
08版本函數?09版本函數
SETTLE?日線周期只有盤后才能引用當日的結算價。其他周期計算結果等同于AVPRICE?引用結算價(如果用在周期小于'日'的K線上如5分鐘K線,一小時k線,每根k線返回的值表示這根k線當日開盤時到這根k線的為止的結算價(均價)
如果用在周期大于等于'日'的K線上,返回當根K線結束時間所在日的結算價.)
BACKSET(X,N) 『未來函數』?函數參數不支持變量計算?函數參數支持變量計算如:BACKSET(CLOSE>OPEN,VAR1);//VAR1是變量
DMA?函數參數不支持變量計算?DMA(X,N)返回X的動態移動平均,其中N必須介于0及1之間。N 支持變量。
計算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A
其中DMA(N-1)為第(N-1)天的DMA值。
HHV(X,N)?函數參數N不支持變量計算?函數參數N支持變量計算
LLV(X,N)?函數參數N不支持變量計算?函數參數N支持變量計算
COUNT(X,N)?函數參數N不支持變量計算?函數參數N支持變量計算
09版本新增函數:
GETPRICE(N)?根據文華碼取出某一品種的最新價。
例:
GETPRICE(1209);返回文華碼為1209的合約品種的最新價。
RGB(R,G,B)?自定義顏色函數。
R,G,B的數值范圍都在0~255之間,例:RGB(225,225,225)表示白色
PARAM[參數名稱,最小值,最大值,缺省值]?在源碼中定義參數。
例:PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示參數為N,最小值為1,最大值為100,缺省值為12.
IF(COND)
A,COLOR;
ELSE
B, COLOR;?條件循環函數。多層次循環時使用“{}”套用。
例:取得MA5、MA10、MA30三者中最大的數值
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
MA30:=MA(CLOSE,30);
IF(MA5>MA10)
MA5,COLORRED;
ELSE
{
IF(MA10>MA30)
MA10,COLORMAGENTA;
ELSE
MA30,COLORGREEN;
}
注意:區別于IFELSE函數,為了使多層次套用看的清楚,以上示例中將“{}”單獨空行,實際使用中可以不必這樣使用。
#IMPORT [CODE,PERIOD,FORMULA] AS VAR?跨周期、跨合約取數據函數。
語句格式:
#IMPORT [CODE,PERIOD,FORMULA] AS VAR
CODE 文華碼
(文華碼見http://www.wenhua.com.cn/guide/guide.htm?其他—>期貨品種代碼表)
PERIOD 被引用的周期
FORMULA 被引用指標名稱
例:引用[豆粕1005]合約日K線圖周期的指標[KDJ.FML] 中K值、D值:
#IMPORT [1205,DAY,KDJ] AS VARKDJ
K1:KDJ.K;
D1:KDJ.D;
注意點:
1.只能引用一個當前存在的‘.FML文件’(指標文件)中的變量,不支持同時引用多個指標和多個周期。
2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH;
3.只能短周期引用長周期指標數據,分鐘周期上可引用小時、日周期數據,不能日線周期上加載引用分鐘數據的指標;
4.被引用的指標中不能存在引用。
5.如果不寫文華碼,默認引用當前合約。
模型注釋符號在2009版本中修改為“//”。2008版本中模型注釋語句使用在2009版本中時在{}前面增加//即可。
(三)編輯平臺可以使用的常數
常數?意義
COLORRED?紅色
COLORGREEN?綠色
COLORBLUE?藍色
COLORMAGENTA?紫色
COLORYELLOW?黃色
COLORLIGHTGREY?淺灰色
COLORLIGHTRED?淺紅色
COLORLIGHTGREEN?淺綠色
COLORLIGHTBLUE?淺藍色
COLORBLACK?黑色
COLORWHITE?白色
COLORCYAN?青色
COLORSTICK?畫彩色柱線
VOLUMESTICK?畫成交量線
BAMBOOLINE?畫竹線
CIRCLEDOT?畫圓
OPISTICK?畫持倉量柱線
RGB(R,G,B)?自定義顏色函數。
R,G,B的數值范圍都在0~255之間。
例:RGB(225,225,225)表示白色
PARAM[參數名稱,最小值,最大值,缺省值]?在源碼中定義參數。
例:PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示參數為N,最小值為1,最大值為100,缺省值為12.
注意:在公式內即使你定義了某種顏色,在顯示的時候也未必是此種顏色,取決于背景顏色當前頁面里是否保了該指標的顏色及您是否在顯示的時候改變了該指標的顏色設置。
(四)編輯平臺的語法
1、關于公式名稱:
公式的名稱不可以和已經存在的公式重復。
2、關于參數:
每個自編公式最多可以定義四個參數,參數的定義如下,首先是參數名稱,然后是參數的最小值,最大值,最后是參數的默認值。在定義參數時要注意的是參數名稱不可以重復。
3、關于變量名稱:
變量名稱不可以互相重復,不可以和參數名重復,不可以和函數名稱重復。
4、關于公式內容:
公式的每個語句應該以分號結束,包括最后一條語句。在數據公式的時候請您注意一定要使用半角輸入。 在編寫公式的過程中,如果您不記得某個函數的確切寫法,可以選擇插入函數來插入函數。
5、如果您在編寫公式之后,想給這個公式加上注釋,說明之類的東西,可以使用公式說明來輸入。
(五)編輯平臺使用的交易指令
交易模型中的交易指令如下:
圖示?指令?意義
BK ?買開指令
BP?買平指令
SK?賣開指令
SP?賣平指令
BPK?買平同時等價等量買開指令
SPK?賣平同時等價等量賣開指令
套利模型中的交易指令如下:
圖示?指令?意義
BKSK?甲合約買開;乙合約賣開信號
BPSP?甲合約買平;乙合約賣平信號
SKBK?甲合約賣開;乙合約買開信號
SPBP?甲合約賣平;乙合約買平信號
請注意,在效果測試使用如下機制:
連續的開倉指令只使用第一個指令進行開倉,開倉時使用當時的全部資金,連續的平倉指令,只有第一個有效,平掉當時的全部持倉,其他的平倉指令算做錯誤指令!
(六)快速入門
1、如何把熟悉的技術指標轉換成交易模型?
第一步:把KDJ指標公式COPY過來。
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//{算出(收盤價-N周期內的最低價)/(N周期的最高價—N周期內的最低價)*100的值,用RSV來表示。}
BACKGROUNDSTYLE(1);{確定背景的樣式,(鈍化)}
K:SMA(RSV,M1,1),COLORWHITE;//{RSV的移動加權平均的值用K表示,并且畫白色的線。}
D:SMA(K,M2,1),COLORYELLOW;//{K的移動加權平均的值用D表示,并且畫黃色的線。}
J:3*K-2*D,COLORMAGENTA;//{3倍的K減去2倍的D的值用J表示,并且畫紫色的線。}
第二步:原有公式主要是畫線,所以稍作修改。如下:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//{第一行不需要修改}
//{第二行刪除,在交易模型中不用鈍化}
K:=SMA(RSV,M1,1);//{在“:”后加上“=”變為只定義不用畫線,所以把后面的顏色函數(COLORWHITE)也去掉}
D:=SMA(K,M2,1);//{同上}
J:=3*K-2*D;//{同上}
第三步:把自己總結的交易條件寫上,就可完成交易模型。如下:
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;
CROSS(K,D),BK;//{K向上穿越D,發出買開交易指令}
CROSS(J,100),SP;//{J向上穿越100,發出賣平交易指令}
CROSS(D,K),SK;//{K向下穿越D,發出賣開交易指令}
CROSS(0,J),BP;//{J向下穿越0,發出買平交易指令}
//后為文字說明,編寫模型時不用寫出
2、如何編制交叉(金叉/死叉)類型的交易模型?
MA5:=MA(CLOSE,5);//{5個周期收盤價的簡單移動平均}
MA10:=MA(CLOSE,10);//{10個周期收盤價的簡單移動平均}
MA20:=MA(CLOSE,20);//{20個周期收盤價的簡單移動平均}
CROSS(MA10,MA20),BK;//{當MA10上穿MA20時,發出買入開倉交易指令}
CROSS(MA10,MA5),SP;//{當MA10上穿MA5時,發出賣出平倉交易指令}
CROSS(MA20,MA10),SK;//{當MA20上穿MA10時,發出賣出開倉交易指令}
CROSS(MA5,MA10),BP;//{當MA5上穿MA10時,發出買入平倉交易指令} //后為文字說明,編寫模型時不用寫出}
3、如何編制多條件類型的交易模型?
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;//{以上為KDJ公式}
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);//{以上為定義5個周期收盤價的簡單移動平均和10個周期收盤價的簡單移動平均}
(CROSS(MA5,MA10)&&REF(J,1)<70)||(CROSS(K,D)&&J<30),BK;//{5周期均線上穿10周期均線并且前一個周期的J值(KDJ)少于70或者KD金叉時并且J值小于30時發出買入開倉交易指令}
CROSS(D,K)&&REF(J,1)>70,SP;//{KD出現死叉并且前一個周期J值大于70時發出賣出平倉交易指令}
(CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D,K)&&J>70),SK;//{5周期均線下叉10周期均線并且前一個周期的J值(KDJ)大于30或者KD死叉時并且J值大于70時發出賣出開倉交易指令}
CROSS(K,D)&&REF(J,1)<30,BP;//{KD出現金叉并且前一個周期J值小于30時發出買入平倉交易指令} {{}內為文字說明,編寫模型時不用寫出}
4、如何編制REF(X,N)類型的交易模型?
A:=OPEN-(((REF(HIGH,1)-REF(LOW,1))+(REF(HIGH,2)-REF(LOW,2))+(REF(HIGH,3)-REF
(LOW,3))+(REF(HIGH,4)-REF(LOW,4)))/4)*1.8;//{A=當前周期的開盤價 -[ (一個周期前的最高價減最低價的差+兩個周期前的最高價減最低價的差+三個周期前的最高價減最低價的差+四個周期前的最高價減最低價的差)/4]*1.8 }
REF(CLOSE,1)< REF(CLOSE,2)&&REF(CLOSE,2)< REF(CLOSE,3)&&REF(CLOSE,3)<
REF(CLOSE,4)&&CLOSE >A,BPK;//{連續四個周期的收盤價小于前一周期的收盤價并且當前周期的收盤價大于A時,發出買平并且買開(反手)交易指令}
REF(CLOSE,1)>REF(CLOSE,2)&&REF(CLOSE,2) >REF(CLOSE,3)&&REF(CLOSE,3)>REF(CLOSE,
4)&&CLOSE<=A,SPK;//{連續四個周期的收盤價大于前一周期的收盤價并且當前周期的收盤價小于等于A時,發出賣平并且賣開(反手)交易指令}{{}內為文字說明,編寫模型時不用寫出}
5、如何編制價差類型的交易模型?
MA5:=MA(CLOSE,5);//{5個周期收盤價的簡單移動平均}
MA10:=MA(CLOSE,10);//{10個周期收盤價的簡單移動平均}
CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;//{10周期均線上穿5周期均線或者收盤價與5周期均線的差值大于8時,發出賣出開倉交易指令}
(MA5-CLOSE)>6,BP;//{5周期均線與收盤價的差值大于6時,發出買入平倉交易指令}
CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;//{5周期均線上穿10周期均線或者收盤價與5周期均線的差值大于8時,發出買入開倉交易指令}
(CLOSE-MA5)>6,SP;//{收盤價與5周期均線的差值大于6時,發出賣出平倉交易指令}{{}內為
文字說明,編寫模型時不用寫出}
6、如何編制簡單價差類型的套利模型?
CROSS(300,CLOSE),BKSK; //{CLOSE為兩個品種的價差。當價差小于300時,買入開倉前一品種,賣出開倉后一品種}
CROSS(CLOSE,500),SPBP;//{當價差大于500時,賣出平倉前一品種,買入平倉后一品種}
CROSS(CLOSE,600),SKBK;//{當價差大于600時,賣出開倉前一品種,買入開倉后一品種}
CROSS(400,CLOSE),BPSP;//{當價差小于400時,買入平倉前一品種,賣出平倉后一品種}
7、如何編制組合類型的套利模型?
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;//{以上為KDJ公式}
CLOSE<300&&CROSS(K,D),BKSK;//{當價差小于300并且K上穿D時,買入開倉前一品種,賣出開倉后一品種}
CROSS(CLOSE,500)||CROSS(D,K),SPBP;//{當價差上穿500或者D上穿K時,賣出平倉前一品種,買入平倉后一品種}
CLOSE>600&&CROSS(D,K),SKBK;//{當價差大于600并且D上穿K時,賣出開倉前一品種,買入開倉后一品種}
CROSS(400,CLOSE)||CROSS(K,D),BPSP;//{當價差下穿400或者K上穿D時,買入平倉前一品種,賣出平倉后一品種}
技術指標模型大全
1 ADTM模型
DTM:=IFELSE(OPEN<=REF(OPEN,1),0,MAX((HIGH-OPEN),(OPEN-REF(OPEN,1))));
DBM:=IFELSE(OPEN>=REF(OPEN,1),0,MAX((OPEN-LOW),(OPEN-REF(OPEN,1))));
STM:=SUM(DTM,N);
SBM:=SUM(DBM,N);
ADTM:=IFELSE(STM>SBM,(STM-SBM)/STM,IFELSE(STM=SBM,0,(STM-SBM)/SBM));
ADTMMA:=MA(ADTM,M);
ADTMMA<P,BPK;
ADTMMA>Q,SPK;
2 ARBR模型
AR := SUM(HIGH-OPEN,N)/SUM(OPEN-LOW,N)*100;
BR := SUM(MAX(0,HIGH-REF(CLOSE,1)),N)/SUM(MAX(0,REF(CLOSE,1)-LOW),N)*100;
(BR<AR && BR<100),BK;//BR比AR低,且指標處于低于100以下時,可考慮逢低買進。
(BR-REF(BR,M))>P && AR-REF(AR,M)<Q,SP;//M周期內BR急速上升,AR盤整小回時,應逢高賣出,及時了結。
3 ASI模型
LC:=REF(CLOSE,1);
AA:=ABS(HIGH-LC);
BB:=ABS(LOW-LC);
CC:=ABS(HIGH-REF(LOW,1));
DD:=ABS(LC-REF(OPEN,1));
R:=IFELSE(AA>BB&&AA>CC,AA+BB/2+DD/4,IFELSE(BB>CC&&BB>AA,BB+AA/2+DD/4,CC+DD/4));
X:=(CLOSE-LC+(CLOSE-OPEN)/2+LC-REF(OPEN,1));
SI:=16*X/R*MAX(AA,BB);
ASI:=SUM(SI,0);
ASI>REF(ASI,1),BPK;//當前周期ASI指標數值大于前一周期開多;
ASI<REF(ASI,1),SPK;//當前周期ASI指標數值小于前一周期開空。
4 ATR模型
TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR,N);
C>MA(C,10) && CROSS(TR,ATR) && ATR>REF(ATR,1) && ISDOWN,BK;//在上升通道中,ATR真實波幅向上時,且白線上穿黃線,此時K線收陰者買入開倉;
CROSS(MA(C,10),C),SP;//當價格下穿10周期均線平多倉。
5 B3612模型
B36 := MA(CLOSE,3)-MA(CLOSE,6);
B612 := MA(CLOSE,6)-MA(CLOSE,12);
B36<REF(B36,1) && B612<REF(B612,1) ,SPK;//本周期B36與B612分別大于前一周期B36與B612時平空開多;
B36>REF(B36,1) && B612>REF(B612,1) ,BPK;//本周期B36與B612分別小于前一周期B36與B612時平多開空。
6 BBI模型
BBI1:=(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4;
MA54:=MA(C,54);//以MA54來判斷當前價格處于高價區還是低價區。
C<MA54 && CROSS(C,BBI1),BPK;
C>MA54 && CROSS(BBI1,C),SPK;
7 BIAS模型
BIAS1 := (CLOSE-MA(CLOSE,L1))/MA(CLOSE,L1)*100;
BIAS1>M1 && MA(C,54)<REF(C,54) || BIAS1<M1 && MA(C,54)>REF(C,54),SK;
BIAS1<-1*P && MA(C,54)<REF(C,54) || BIAS1>P && MA(C,54)>REF(C,54),BP;
BIAS1<M2 && MA(C,54)<REF(C,54)|| BIAS1>M2 && MA(C,54)>REF(C,54),BK;
BIAS1>P && MA(C,54)<REF(C,54) || BIAS1<P && MA(C,54)>REF(C,54),SP;
8 BOLL模型
MID:=MA(CLOSE,N);
TMP2:=STD(CLOSE,M);
TOP:=MID+P*TMP2;
BOTTOM:=MID-P*TMP2;
A:=TOP-C;
B:=C-BOTTOM;
CROSS(C,BOTTOM),BPK;
CROSS(TOP,C),SPK;
9 CCI模型
TYP:=(CLOSE+HIGH+LOW)/3;
CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N));
CROSS(CCI,100),BK;//CCI從+100~-100的常態區,由下往上突破+100天線時,為買入開倉。
CROSS(100,CCI),SP;//CCI從+100天線之上,由上往下跌破天線時,為賣出平倉。
CROSS(100,CCI),SK;//CCI從+100~-100的常態區,由上往下跌破-100地線時,為賣出開倉。
CROSS(CCI,100),BP;//CCI從-100下方,由下往上突破-100地線時,為買入平倉。
10 CDPV日內模型
PT??:= REF(HIGH,1)-REF(LOW,1);
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH??:=MA(CDP + PT,N);
AL??:=MA(CDP - PT,N);
NH??:=MA(2*CDP-LOW,N);
NL??:=MA(2*CDP-HIGH,N);
NQ:=(AH+AL+NH+NL)/4;//計算出CDP中四條指標線的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001) && TIME>=0900 && TIME<1455,BP;//當NQ上漲超過前M周期最低值的千分之M1,買開;
NQ<HHV(NQ,M)*(1-M1*0.001) || TIME>=1455,SP;//當NQ下跌超過前M周期最高值的千分之M1,賣開;
NQ<HHV(NQ,M)*(1-M1*0.001) && TIME>=0900 && TIME<1455,SK;//當NQ下跌超過前M周期最高值的千分之M1,賣開;
NQ>LLV(NQ,M)*(1+M1*0.001) || TIME>=1455,BP;//當NQ上漲超過前M周期最低值的千分之M1,買開。
11 CDP日內模型
PT??:= REF(HIGH,1)-REF(LOW,1);
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH??:=MA(CDP + PT,N);
AL??:=MA(CDP - PT,N);
NH??:=MA(2*CDP-LOW,N);
NL??:=MA(2*CDP-HIGH,N);
NQ:=(AH+AL+NH+NL)/4;//計算出CDP中四條指標線的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001),BPK;//當NQ上漲超過前M周期最低值的千分之P,買平開;
NQ<HHV(NQ,M)*(1-M1*0.001),SPK;//當NQ下跌超過前M周期最高值的千分之P,賣平開;
12 CDP模型
PT??:= REF(HIGH,1)-REF(LOW,1);
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH??:=MA(CDP + PT,N);
AL??:=MA(CDP - PT,N);
NH??:=MA(2*CDP-LOW,N);
NL??:=MA(2*CDP-HIGH,N);
NQ:=(AH+AL+NH+NL)/4;//計算出CDP中四條指標線的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001),BPK;//當NQ上漲超過前M周期最低值的千分之M1,買平開;
NQ<HHV(NQ,M)*(1-M1*0.001),SPK;//當NQ下跌超過前M周期最高值的千分之M1,賣平開。
13 CR模型
MID := (HIGH+LOW+CLOSE)/3;
CR:=SUM(MAX(0,HIGH-REF(MID,1)),N)/SUM(MAX(0,REF(MID,1)-LOW),N)*100;
CR<N1,BPK;//CR上漲超過N1時,買平開;
CR>N2,SPK;//CR下跌超過N2時,賣平開。
14說明 文中“//” 后面的文字是解說,實際編寫與測試過程中,不用編寫。
15 DBCD模型
BIAS:=(CLOSE-MA(CLOSE,N))/MA(CLOSE,N);
DIF:=(BIAS-REF(BIAS,M));
DBCD:=SMA(DIF,T,1);
MM:=100000*MA(DBCD,5);
MM>REF(MM,1),BPK;
MM<REF(MM,1),SPK;
16 DDI模型
TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)));
DMZ:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DMF:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));
DDI:=DIZ-DIF;
DDI>0,BPK;//DDI大于零平空開多;
DDI<0,SPK;//DDI小于零平多開空。
17 DMA模型
DDD := (MA(CLOSE,SHORT)-MA(CLOSE,LONG));
AMA := MA(DDD,M);
CROSS(DDD,AMA),BPK;//DMA向上交叉AMA,買進;
CROSS(AMA,DDD),SPK;//DMA向下交叉AMA,賣出。
18 DMI-QL模型
TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IFELSE(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IFELSE(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
CROSS(PDI,MDI),BK;//PDI上穿MDI開多倉。
CROSS(MDI,PDI),SK;//PDI下穿MDI開空倉。
ADX<HHV(ADX,N0)*(1-0.01*M0),BP;//當ADX回落超過前N0周期內的M0%時平多倉。
ADX<HHV(ADX,N0)*(1-0.01*M0),SP;//當ADX回落超過前N0周期內的M0%時平空倉。
19 DMI日內模型
TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IFELSE(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IFELSE(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
CROSS(PDI,MDI) && TIME>0900 && TIME<1450,BK;//PDI上穿MDI開多倉。
CROSS(MDI,PDI) && TIME>0900 && TIME<1450,SK;//PDI下穿MDI開空倉。
ADX<HHV(ADX,N0)*(1-0.01*M0) || TIME>=1450,BP;//當ADX回落超過前N0周期內的M0%時平多倉。或收盤前平倉。
ADX<HHV(ADX,N0)*(1-0.01*M0) || TIME>=1450,SP;//當ADX回落超過前N0周期內的M0%時平空倉。或收盤前平倉
20 DPO模型
DPO:=CLOSE-REF(MA(CLOSE,20),11);
CROSS(DPO,O),BK;//當DPO指標數值上穿0線,開多倉。
DPO<HHV(DPO,N)*(1-0.01*M),SP;//當DPO指標從N日內最高點回落超過M%時平多倉。
CROSS(0,DPO),SK;//DPO下穿0線時開空倉。
DPO>LLV(DPO,N)*(1-0.01*M),BP;//當DPO指標上漲超過N日最低點的M%時平空倉。
21 EMA2模型
EMA210:=EMA2(CLOSE,10);//定義10周期收盤價的加權平均值。
EMA220:=EMA2(CLOSE,20);//定義20周期收盤價的加權平均值。
CROSS(EMA210,EMA220),BK;//10周期均線上穿20周期均線,發出買入開倉指令。
CROSS(EMA220,EMA210),SK;//10周期均線下穿20周期均線,發出賣出開倉指令。
EMA210<REF(EMA210,1)&&EMA220<REF(EMA220,1),SP;//10周期均線和20周期均線都上升時,發出平多倉指令。
EMA210>REF(EMA210,1)&&EMA220>REF(EMA220,1),BP;//10周期均線和20周期均線都下降時,發出平空倉指令。
22 EMA模型
EMA10:=EMA(CLOSE,10);//定義10周期收盤價的指數平滑移動平均值。
EMA20:=EMA(CLOSE,20);//定義20周期收盤價的指數平滑移動平均值。
CROSS(EMA10,EMA20),BK;//10周期均線上穿20周期均線,發出買入開倉指令。
CROSS(EMA20,EMA10),SK;//10周期均線下穿20周期均線,發出賣出開倉指令。
EMA10<REF(EMA10,1)&&EMA20<REF(EMA20,1),SP;//10周期均線和20周期均線都下降時,發出平多倉指令
EMA10>REF(EMA10,1)&&EMA20>REF(EMA20,1),BP;//10周期均線和20周期均線都上升時,發出平空倉指令。
23 ENV模型
UPPER := MA(CLOSE,N1)*(1+N2/100);
LOWER := MA(CLOSE,N1)*(1-N2/100);
//以上為ENV公式
CROSS(CLOSE,UPPER),BPK;//收盤價上穿UPPER,買平并買開。
CROSS(LOWER,CLOSE),SPK;//收盤價下穿LOWER,賣平并賣開。
24 EXPMA模型
MA1:=EMA(CLOSE,P1);
MA2:=EMA(CLOSE,P2);
MA3:=EMA(CLOSE,P3);
MA4:=EMA(CLOSE,P4);
//以上為EXPMA指標
CROSS(MA2,MA3)&&CLOSE>MA4,BK;//當MA2上穿MA3,并且收盤價大于MA4,發出買入開倉交易指令。
CROSS(MA2,MA1),SP;//當MA2上穿MA1,發出賣出平倉交易指令。
CROSS(MA3,MA2)&&CLOSE<MA4,SK;//當MA3上穿MA2,并且收盤價小于MA4,發出賣出開倉交易指令。
CROSS(MA1,MA2),BP;//當MA1上穿MA2,發出買入平倉交易指令。
25 HCL模型
MAH:=MA(HIGH,N);
MAL:=MA(LOW,N);
MAC:=MA(CLOSE,N);
//以上為HCL指標公式
MAH>REF(MAH,1)&&MAL>REF(MAL,1)&&MAC>REF(MAC,1),BPK;//MAH,MAL,MAC同時上漲,買平并買開。
MAH<REF(MAH,1)&&MAL<REF(MAL,1)&&MAC<REF(MAC,1),SPK;//MAH,MAL,MAC同時下跌,賣平并賣開。
26 KDJ模型
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//定義RSV
K:=SMA(RSV,M1,1); //定義K
D:=SMA(K,M2,1); //定義D
J:=3*K-2*D; //定義J
//以上為KDJ指標公式
J<30&&CROSS(K,D),BPK;//J值小于30并且K、D金叉,買平并買開。
J>70&&CROSS(D,K),SPK;//J值大于70并且K、D死叉,賣平并賣開。
27 KD模型
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
//以上為KD指標公式
CROSS(K,D),BPK;//K,D金叉,買平并買開。
CROSS(D,K),SPK;//K,D死叉,賣平并賣開。
28 LW&R模型
RSV:= (CLOSE-HHV(HIGH,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定義RSV
LWR1:=SMA(RSV,3,1);//定義LWR1
LWR2:=SMA(LWR1,3,1);//定義LWR2
CROSS(LWR1,LWR2),BPK;//LWR1上穿LWR2,買平并買開
CROSS(LWR2,LWR1),SPK;//LWR1下穿LWR2,賣平并賣開
29 LW&R模型1
RSV:= (CLOSE-HHV(HIGH,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
LWR1:=SMA(RSV,M1,1);
LWR2:=SMA(LWR1,M2,1);
//以上為LW&R指標公式
LWR1<30&&CROSS(LWR1,LWR2),BK;//LWR1小于30,并且LWR1上穿LWR2,買開。
LWR1>70&&CROSS(LWR2,LWR1),SK;//LWR1大于70,并且LWR1下穿LWR2,賣開。
LWR1>80&&LWR2>70,BP;//LWR1大于80,并且LWR2大于70,平空倉。
LWR1<20&&LWR2<30,SP;//LWR1小于20,并且LWR2小于30,平多倉。
30 MACD模型
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定義DIFF
DEA := EMA(DIFF,M);//定義DEA
//以上為MACD指標公式
(DIFF<0)&&(DEA<0)&&(CROSS(DIFF,DEA)),BPK;//DIFF小于0并且DEA小于0并且DIFF上穿DEA,買平并買開
(DIFF>0)&&(DEA>0)&&(CROSS(DEA,DIFF)),SPK;//DIFF大于0并且DEA大于0并且DIFF下穿DEA,賣平并賣開
31 MASS模型
MASS:=SUM(EMA((HIGH-LOW),N1)/EMA(EMA((HIGH-LOW),N1),N1),N2);//定義MASS
MA9:=MA(CLOSE,9);//定義9周期收盤價的均線
CROSS(26.5,MASS)&&MA9>REF(MA9,1),SPK;//MASS下穿26.5,并且MA9在上升趨勢中,賣平并賣開
CROSS(26.5,MASS)&&MA9<REF(MA9,1),BPK;//MASS下穿26.5,并且MA9在下降趨勢中,買平并買開
32 MA模型
MA1:=MA(CLOSE,N);//定義10周期均線
MA1>REF(MA1,1)&&REF(MA1,1)>REF(MA1,2)&&REF(MA1,3)>REF(MA1,2)&&REF(MA1,4)>REF(MA1,3),BPK;//上拐時買平并買開
MA1<REF(MA1,1)&&REF(MA1,1)<REF(MA1,2)&&REF(MA1,3)<REF(MA1,2)&&REF(MA1,4)<REF(MA1,3),SPK;//下拐時賣平并賣開
33 MA組合模型
MA1:=MA(CLOSE,P1);
MA2:=MA(CLOSE,P2);
MA3:=MA(CLOSE,P3);
MA4:=MA(CLOSE,P4);
//已上是MA組合指標公式
CROSS(MA2,MA3)&&CLOSE>MA4,BK;//當MA2上穿MA3,并且收盤價大于MA4,發出買入開倉交易指令
CROSS(MA2,MA1),SP;//當MA2上穿MA1,發出賣出平倉交易指令
CROSS(MA3,MA2)&&CLOSE<MA4,SK;//當MA3上穿MA2,并且收盤價小于MA4,發出賣出開倉交易指令
CROSS(MA1,MA2),BP;//當MA1上穿MA2,發出買入平倉交易指令
34 MFI模型
TYP := (HIGH + LOW + CLOSE)/3;
MR:=SUM(IFELSE(TYP>REF(TYP,1),TYP*VOL,0),N)/SUM(IFELSE(TYP<REF(TYP,1),TYP*VOL,0),N);
MFI:=100-(100/(1+MR));
//以上是MFI指標公式
MFI<REF(MFI,1)&&CLOSE>REF(CLOSE,1)&&MFI>20&&MFI<80,BPK;//當MFI處于下降趨勢,并且收盤價處于上升趨勢,并且MFI大于20并且小于80,買平并買開
MFI>REF(MFI,1)&&CLOSE<REF(CLOSE,1)&&MFI>20&&MFI<80,SPK;//當MFI處于上升趨勢,并且收盤價處于下降趨勢,并且MFI大于20并且小于80,賣平并賣開
35 MICD模型
MI:=CLOSE-REF(CLOSE,1);
AMI:=SMA(MI,N,1);
DIF:=MA(REF(AMI,1),N1)-MA(REF(AMI,1),N2);
MICD:=SMA(DIF,10,1);
//上述是MICD指標公式
(DIF<0)&&(MICD<0)&&(CROSS(DIF,MICD)),BPK;//DIF小于0并且MICD小于0并且DIFF上穿MICD,買平并買開
(DIF>0)&&(MICD>0)&&(CROSS(MICD,DIF)),SPK;//DIF大于0并且MICD大于0并且DIFF下穿MICD,賣平并賣
36 MIKE模型
TYP:=(HIGH+LOW+CLOSE)/3;
LL:=LLV(LOW,N);
HH:=HHV(HIGH,N);
WR:=TYP+(TYP-LL);
MR:=TYP+(HH-LL);
SR:=2*HH-LL;
WS:=TYP-(HH-TYP);
MS:=TYP-(HH-LL);
SS:=2*LL-HH;
//上述是MIKE指標公式
WR<REF(WR,1)&&REF(WR,1)>REF(WR,2) && MR<REF(MR,1)&&REF(MR,1)>REF(MR,2) && SR<REF(SR,1)&&REF(SR,1)>REF(SR,2),BPK;//WR,MR,SR同時下拐,買平并買開
WS>REF(WS,1)&&REF(WS,1)<REF(WS,2) && MS>REF(MS,1)&&REF(MS,1)<REF(MS,2) && SS>REF(SS,1)&&REF(SS,1)<REF(SS,2),SPK;//WS,MS,SS同時上拐,賣平并賣
37 MI模型
A:=CLOSE-REF(CLOSE,N);
MI:=SMA(A,N,1);
//上述是MI指標公式
CROSS(A,MI),BPK;//A金叉MI,買平并買開
CROSS(MI,A),SPK;//A死叉MI,賣平并賣開
38 MTM模型
MTM:=CLOSE-REF(CLOSE,N);//定義MTM
CROSS(MTM,0),BPK;//MTM上穿0軸,買平并買開
CROSS(0,MTM),SPK;//MTM下穿0軸,賣平并賣開
39 MV模型
MV1:=SMA(VOL,N,1);
MV2:=SMA(VOL,M,1);
//上述是MV指標公式
MA60:=MA(CLOSE,60);//定義60周期收盤價均線
CLOSE>MA60&&MV1>REF(MV1,1)&&MV2>REF(MV2,1),BPK;//收盤價在60均線上,并且MV1,MV2處于上升狀態中,買平并買開
CLOSE<MA60&&MV1>REF(MV1,1)&&MV2>REF(MV2,1),SPK;//收盤價在60均線下,并且MV1,MV2處于上升狀態中,賣平并賣
40 PRICEOSC模型
PRICEOSC:=(MA(CLOSE,SHORT)-MA(CLOSE,LONG))/MA(CLOSE,SHORT)*100;
CROSS(PRICEOSC,0),BPK;//向上突破0為買點
CROSS(0,PRICEOSC),SPK;//向下突破0為賣點
41 PUBU模型
PB1:=PUBU(CLOSE,0);
PB2:=PUBU(CLOSE,1);
PB3:=PUBU(CLOSE,2);
PB4:=PUBU(CLOSE,3);
PB5:=PUBU(CLOSE,4);
PB6:=PUBU(CLOSE,5);
CROSS(PB1,PB6),BPK;//短線瀑布線向上穿越長線瀑布,買入。
CROSS(PB6,PB1),SPK;//短線瀑布線向下穿越長線瀑布,賣出。
42 RC模型
RC:=CLOSE/REF(CLOSE,N);
ARC:=SMA(REF(RC,1),N,1);
MA10:=MA(CLOSE,10);
MA20:=MA(CLOSE,20);
CROSS(MA10,MA20)&&ARC>1,BPK;//MA10上穿MA20且RC指標在1上,做多
CROSS(MA20,MA10)&&ARC<=1,SPK;//MA0下穿MA20且RC指標在1下,做空
43 REF模型示例
A:=OPEN-(((REF(HIGH,1)-REF(OPEN,1))+(REF(HIGH,2)-REF(OPEN,2))+(REF(HIGH,3)-REF(OPEN,3))+(REF(HIGH,4)-REF(OPEN,4)))/4)*1.8;
//A=當前周期的開盤價 -[ (一個周期前的最高價減最低價的差+兩個周期前的最高價減最低價的差+三個周期前的最高價減最低價的差+四個周期前的最高價減最低價的差)/4]*1.8
REF(CLOSE,1)<REF(CLOSE,2)&&REF(CLOSE,2)<REF(CLOSE,3)&&REF(CLOSE,3)<REF(CLOSE,4)&&CLOSE>A,BPK;
//連續四個周期的收盤價小于前一周期的收盤價并且當前周期的收盤價大于A時,發出買平并且買開(反手)交易指令
REF(CLOSE,1)>REF(CLOSE,2)&&REF(CLOSE,2)>REF(CLOSE,3)&&REF(CLOSE,3)>REF(CLOSE,4)&&CLOSE<=A,SPK;
//連續四個周期的收盤價大于前一周期的收盤價并且當前周期的收盤價小于等于A時,發出賣平并且賣開(反手)交易指令
44 ROC模型
ROC:=(CLOSE-REF(CLOSE,N))/REF(CLOSE,N)*100;
ROCMA:=MA(ROC,M);
C>REF(HHV(C,N1),1)&&ROC<ROCMA,SPK;//價格創新高,ROC未配合上升,顯示上漲動力減弱
C<REF(HHV(C,N1),1)&&ROC>ROCMA,BPK;//價格創新低,ROC未配合下降,顯示下跌動力減弱
45 RSI模型
LC:=REF(CLOSE,1);//定義LC
RSI1:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;//定義RSI1
RSI2:=SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;//定義RSI2
REF(RSI1,1)<40&&CROSS(RSI1,RSI2),BPK;//上周期的RSI1<40并且RSI1上穿RSI2,買平并買開
REF(RSI1,1)>60&&CROSS(RSI2,RSI1),SPK;//上周期的RSI1>60并且RSI1下穿RSI2,賣平并賣開
46 SAR模型
SARLINE:=ABS(SAR(N,STEP,MVALUE));//定義SARLINE
CROSS(CLOSE,SARLINE),BPK;//最新價上穿SARLINE,買平并買開
CROSS(SARLINE,CLOSE),SPK;//最新價下穿SARLINE,賣平并賣開
47 WR模型
WR:=-100*(HHV(HIGH,14)-CLOSE)/(HHV(HIGH,14)-LLV(LOW,14));
MA60:=MA(CLOSE,60);
C>MA60&&WR<-80,BK;//在60天均線上wr<-80 開多倉
C>MA60&&WR>-20,SP;//在60天均線上wr>-20平多倉
C<MA60&&WR>-20,SK;//在60天均線下wr>-20開空倉
C<MA60&&WR<-80,BP;//在60天均線下wr<-85平空倉
48 三減六日乖離
B36 := MA(CLOSE,3)-MA(CLOSE,6);
B612 : =MA(CLOSE,6)-MA(CLOSE,12);
REF(B36>REF(HHV(B36,N),1),1)&&B36<REF(B36,1),SPK;//乖離值為正數時,未能突破前期高值,賣出
REF(B36<REF(LLV(B36,N),1),1)&&B36>REF(B36,1),BPK;//反之,買進
49 交叉型模型示例
MA5:=MA(CLOSE,5);??//5個周期收盤價的簡單移動平均
MA10:=MA(CLOSE,10);//10個周期收盤價的簡單移動平均
MA20:=MA(CLOSE,20);//20個周期收盤價的簡單移動平均
CROSS(MA10,MA20),BK;//當MA10上穿MA20時,發出買入開倉交易指令
CROSS(MA10,MA5),SP;//當MA10上穿MA5時,發出賣出平倉交易指令
CROSS(MA20,MA10),SK;//當MA20上穿MA10時,發出賣出開倉交易指令
CROSS(MA5,MA10),BP;//當MA5上穿MA10時,發出買入平倉交易指令
50 價差型模型示例
MA5:=MA(CLOSE,5);//5個周期收盤價的簡單移動平均
MA10:=MA(CLOSE,10);//10個周期收盤價的簡單移動平均
CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;
//10周期均線上穿5周期均線或者收盤價與5周期均線的差值大于8時,發出賣出開倉交易指令
(MA5-CLOSE)>6,BP;
//5周期均線與收盤價的差值大于6時,發出買入平倉交易指令
CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;
//5周期均線上穿10周期均線或者收盤價與5周期均線的差值大于8時,發出買入開倉交易指令
(CLOSE-MA5)>6,SP;
//收盤價與5周期均線的差值大于6時,發出賣出平倉交易指令
51 多條件模型示例
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
//以上為KDJ公式
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
//以上為定義5個周期收盤價的簡單移動平均和10個周期收盤價的簡單移動平均
(CROSS(MA5,MA10)&&REF(J,1)<70)||(CROSS(K,D)&&J<30),BK;
//5周期均線上穿10周期均線并且前一個周期的J值(KDJ)少于70或者KD金叉時并且J值小于30時發出買入開倉交易指令
CROSS(D,K)&&REF(J,1)>70,SP;
//KD出現死叉并且前一個周期J值大于70時發出賣出平倉交易指令
(CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D,K)&&J>70),SK;
//5周期均線下叉10周期均線并且前一個周期的J值(KDJ)大于30或者KD死叉時并且J值大于70時發出賣出開倉交易指令
CROSS(K,D)&&REF(J,1)<30,BP;
// KD出現金叉并且前一個周期J值小于30時發出買入平倉交易指令
52 慢速KD模型
RSV:= (CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
FASTK:=SMA(RSV,M1,1);
K:=SMA(FASTK,M2,1);
D:=SMA(K,M3,1);
CROSS(K,D),BPK;
CROSS(D,K),SPK;
53 指標轉模型示例
//第一步:把KDJ指標公式COPY過來
//第二步:在":"后加上"="變為只定義不用畫線,所以把后面的顏色函數(COLORWHITE)也去掉
//第三步:把自己總結的交易條件寫上,就可完成交易模型。如下:
//以下是把KDJ指標公式COPY過來,進行修改后的語句
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;
//以下是加入的交易指令
CROSS(K,D),BK;//K向上穿越D,發出買開交易指令
CROSS(J,100),SP;//J向上穿越100,發出賣平交易指令
CROSS(D,K),SK;//K向下穿越D,發出賣開交易指令
CROSS(0,J),BP;//J向下穿越0,發出買平交易指令
54 時間函數示例
MA5:=MA(CLOSE,5);//定義5周期的簡單移動平均線
MA10:=MA(CLOSE,10);//定義10周期的簡單移動平均線
TIME>=0905&&TIME<1455&&CROSS(MA5,MA10),BK;//在9點05分之后14點55分之前的時間段內出現5周期線金*10周期線后買開
TIME>=1455,BP;//當時間到14點55分時自動發出買平指令
TIME>=0905&&TIME<1455&&CROSS(MA10,MA5),SK;//在9點05分之后14點55分之前的時間段內出現5周期線死*10周期線后賣開
TIME>=1455,SP;//當時間到14點55分時自動發出賣平指令

這個要是能直接復制那就完美了
安排~