文华财经模型示例
- 格式:docx
- 大小:13.80 KB
- 文档页数:10
文华财经商品期货基本交易模型Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】一、内盘案例二、外盘案例三、经济数据、突发事件案例一、内盘案例模型一:棕榈油周线基本面模型NN:=BARSLAST(DATE<>REF(DATE,1))+1;RZC:=SUM(OPI,NN)-REF(SUM(OPI,NN),NN);RZC1:=STD(RZC,5);AA..GETBASEINFO(32);GETBASEINFO(84);GETBASEINFO(253);GETBASEINFO(220) ;GETBASEINFO(221);模型二:棉花日线基本面模型AA:=GETBASEINFO(230);模型五:郑棉主连日线案例加载合约:郑棉主连周期:日线信号计算起始时间:2014年1月1日至今沉淀资金:=OPI*C*UNIT*MARGIN;NUM3:=REF(BARSLASTCOUNT(ISNULL(GETBASEINFO(286))),1)+1; S5:=GETBASEINFO(286)>REF(GETBASEINFO(286),NUM3);B5:=GETBASEINFO(286)<REF(GETBASEINFO(286),NUM3);NUM5:=REF(BARSLASTCOUNT(ISNULL(GETBASEINFO(230))),1)+1; JC:=GETBASEINFO(230)-C;二、外盘案例模型六:COMEX铜指日线案例加载合约:COMEX铜指周期:日线信号计算起始时间:2014年1月1日至今沉淀资金:=OPI*C*UNIT*MARGIN,COLORMAGENTA;CX:=ABS(GETBASEINFO(235)-REF(GETBASEINFO(235),29))/(HHV(GETBASEINFO(235),30)-LLV(GETBASEINFO(235),30))*100;JC:=GETBASEINFO(235)-C;模型七:马盘棕榈油周线基本面模型AA:=GETBASEINFO(32);模型九:COMEX黄金一小时线单一突发事件函数模型A1..GETEVENT(404,1);GETEVENT(405,1);GETEVENT(396,1);GETEVENT(406,1);G ETEVENT(407,1);//欧元降息利多黄金GETEVENT(407,1)||GETEVENT(396,1)||GETEVENT(405,1)&&SCALE>&&DUALVOLUME ('M')>0,BK;C<BKPRICE-25*MINPRICE1||C>BKPRICE+80*MINPRICE1,SP;GETEVENT(407,1)||GETEVENT(404,1)&&SCALE<&&DUALVOLUME('M')<0,SK;C>SKPRICE+25*MINPRICE1||C<SKPRICE-80*MINPRICE1,BP;AUTOFILTER;SETDEALPERCENT(70);交易思路:当盘中出现欧元降息,金矿罢工,美元降息时,对黄金价格产生影响,同时在短时间出现增仓上行,此时多单进场;当盘中出现欧元加息,美元加息时,对黄金价格产生影响,同时在短时间出现增仓下行,此时空单进场;多单平仓条件,价格低于开仓价格25个最小变动价位止损;价格高于开仓价格80个价位止盈;空单平仓条件,价格高于开仓价格25个最小变动价位止损;价格低于开仓价格80个价位止盈;交易特点:优点:对突发事件开仓和平仓反应较快,通过市场突发事件,盘中仓位变化和市场情绪来引导交易,短周期模型,胜率较高,盈亏比正常,风险相对可控。
这些示范模型,目的在于让大家通过这些举例来学习如何编写模型,文华不保证模型的盈利效果,也不对这些模型的交易结果负责。
程序化交易的基石是个性化,就是每一个投资者(或机构)根据自己的投资经验和智慧,编写自己的模型,然后进行电脑自动交易。
交易模型的真正价值在于投资者的投资经验和智慧。
举例来说:文华提供的只是纸墨,但是一张画的价值却完全取决于画家的画工。
//该模型仅仅用来示范如何根据指标编写简单的模型//用户需要根据自己交易经验,进行修改后再实际应用!!!// //后为文字说明,编写模型时不用写出ADTM模型N=23 M=8 P=-0.5 Q=0.5DTM:=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;ADTM原理:1、如果开盘价<=昨日开盘价,DTM=0,如果开盘价>昨日开盘价,DTM=(最高价-开盘价)和(开盘价-昨日开盘价)的较大值。
2、如果开盘价>=昨日开盘价,DBM=0,如果开盘价<昨日开盘价,DBM=(开盘价-最低价)和(开盘价-昨日开盘价)的较大值3、STM=DTM在N个周期内的和。
4、SBM=DBM在N个周期内的和。
5、如果STM>SBM,ADTM=(STM-SBM)/STM,如果STM=SBM,ADTM=0,如果STM<SBM,ADTM=(STM-SBM)/SBM。
文华独特的形态箱体交易策略模型[文华财经公式] 文华独特的形态箱体交易策略模型BAA:=1;MA4:=EMA(CLOSE,10)*BAA;HH:=HHV(HIGH,5)*BAA;LL:=LLV(LOW,5)*BAA;H1:=IFELSE(CLOSE>REF(HH,1),1,0)*BAA;L1:=IFELSE(CLOSE<REF(LL,1),-1,0)*BAA;H0:=REF(HIGH,1)*BAA;L0:=REF(LOW,1)*BAA;P7:=H1+L1*BAA;P8:=IFELSE(P7=0,REF(P7,1),P7)*BAA;P9:=IFELSE(P8=0,REF(P8,1),P8)*BAA;P10:=IFELSE(P9=0,REF(P9,1),P9)*BAA;P11:=IFELSE(P10=0,REF(P10,1),P10)*BAA;P12:=IFELSE(P11=0,REF(P11,1),P11)*BAA;P13:=IFELSE(P12=0,REF(P12,1),P12)*BAA;P14:=IFELSE(P13=0,REF(P13,1),P13)*BAA;P15:=IFELSE(P14=0,REF(P14,1),P14)*BAA;P16:=IFELSE(P15=0,REF(P15,1),P15)*BAA;P17:=IFELSE(P16=0,REF(P16,1),P16)*BAA;P18:=IFELSE(P17=0,REF(P17,1),P17)*BAA;P19:=IFELSE(P18=0,REF(P18,1),P18)*BAA;P20:=IFELSE(P19=0,REF(P19,1),P19)*BAA;P21:=IFELSE(P20=0,REF(P20,1),P20)*BAA;P22:=IFELSE(P21=0,REF(P21,1),P21)*BAA;P23:=IFELSE(P22=0,REF(P22,1),P22)*BAA;P24:=IFELSE(P23=0,REF(P23,1),P23)*BAA;P25:=IFELSE(P24=0,REF(P24,1),P24)*BAA; P26:=IFELSE(P25=0,REF(P25,1),P25)*BAA; P27:=IFELSE(P26=0,REF(P26,1),P26)*BAA; P28:=IFELSE(P27=0,REF(P27,1),P27)*BAA; P29:=IFELSE(P28=0,REF(P28,1),P28)*BAA; P30:=IFELSE(P29=0,REF(P29,1),P29)*BAA; T:=IFELSE(P30=0,REF(P30,1),P30)*BAA;T=1,BPK;T=-1,SPK;AUTOFILTER;//赢顺去掉该行源码解析:BAA赋值:1MA4赋值:收盘价的10日指数移动平均*BAA HH赋值:5日内最高价的最高值*BAALL赋值:5日内最低价的最低值*BAAH1赋值:IFELSE(收盘价>昨日HH,1,0)*BAA L1赋值:IFELSE(收盘价<昨日LL,-1,0)*BAA H0赋值:昨日最高价*BAAL0赋值:昨日最低价*BAAP7赋值:H1+L1*BAAP8赋值:IFELSE(P7=0,昨日P7,P7)*BAAP9赋值:IFELSE(P8=0,昨日P8,P8)*BAAP10赋值:IFELSE(P9=0,昨日P9,P9)*BAAP11赋值:IFELSE(P10=0,昨日P10,P10)*BAA P12赋值:IFELSE(P11=0,昨日P11,P11)*BAAP13赋值:IFELSE(P12=0,昨日P12,P12)*BAA P14赋值:IFELSE(P13=0,昨日P13,P13)*BAA P15赋值:IFELSE(P14=0,昨日P14,P14)*BAA P16赋值:IFELSE(P15=0,昨日P15,P15)*BAA P17赋值:IFELSE(P16=0,昨日P16,P16)*BAA P18赋值:IFELSE(P17=0,昨日P17,P17)*BAA P19赋值:IFELSE(P18=0,昨日P18,P18)*BAA P20赋值:IFELSE(P19=0,昨日P19,P19)*BAA P21赋值:IFELSE(P20=0,昨日P20,P20)*BAA P22赋值:IFELSE(P21=0,昨日P21,P21)*BAA P23赋值:IFELSE(P22=0,昨日P22,P22)*BAA P24赋值:IFELSE(P23=0,昨日P23,P23)*BAA P25赋值:IFELSE(P24=0,昨日P24,P24)*BAA P26赋值:IFELSE(P25=0,昨日P25,P25)*BAA P27赋值:IFELSE(P26=0,昨日P26,P26)*BAA P28赋值:IFELSE(P27=0,昨日P27,P27)*BAA P29赋值:IFELSE(P28=0,昨日P28,P28)*BAA P30赋值:IFELSE(P29=0,昨日P29,P29)*BAA T赋值:IFELSE(P30=0,昨日P30,P30)*BAA T=1,BPKT=-1,SPKAUTOFILTER//赢顺去掉该行。
文华财经函数大全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的合约品种的最新价。
2、金融统计BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1该函数参数支持变量计算如BACKSET(CLOSE>OPEN,VAR1);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值。
金融统计函数BARSLAST(COND):上一次条件COND成立到当前的周期数注:1、条件成立的当根k线上BARSLAST(COND)的返回值为02、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!例1:BARSLAST(OPEN>CLOSE); //上一根阴线到现在的周期数。
例2:N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。
//由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数。
COUNT(COND,N):统计N周期中满足COND条件的周期数。
注:1、若N为0则从第一个有效值算起;2、当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。
3、N 为空值时返回值为空值。
例1:N:=BARSLAST(DATE<>REF(DATE,1))+1;//分钟周期,当日k线数。
M:COUNT(ISUP,N);//统计分钟周期上开盘以来阳线的根数。
例2:MA5:=MA(C,5);//定义5周期均线MA10:=MA(C,10);//定义10周期均线M:COUNT(CROSSUP(MA5,MA10),0);//统计从申请到的行情数据以来到当前这段时间内,5周期均线上穿10周期均线的次数。
DMA(X,A):求X的动态移动平均,其中A必须小于1大于0。
计算公式:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(N-1)天的DMA值例1:DMA3:=DMA(C,0.3);//计算结果为REF(DMA3,1)*(1-0.3)+C*0.3EMA(X,N):求N周期X值的指数移动平均(平滑移动平均)。
注:1、对距离当前较近的k线赋予了较大的权重。
2、当N为有效值,但当前的k线数不足N根,按实际根数计算。
3、N为0或空值时返回值为空值。
EMA==2*X/(N+1)+(N-1)*EMA(N-1)]/(N+1)举例:X1=6 X2=7 X3=8 X4=9则EMA(X,4)=2/5*X4+3/10*X3+3/15*X2+3/30*X1=4/10*9+3/10*8+2/10*7+1/10*6=8例1:EMA10:=EMA(C,10);//求收盘价10周期平滑移动平均值EMA2(X,N);//求N周期X值的线性加权平均(也称WMA)EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*X(N-1))/(N+(N-1)+(N-2)+... +1),X0表示本周期值,X1表示上一周期值注:1、当N为有效值,但当前的k线数不足N根,返回值为空值。
文华财经函数列表及技术指标模型大全1、引用数据***** 引用均价(在盘后对于国内三个期货交易所指结算价)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。
*****E(N) 根据文华码取出某一品种的最新价。
例子:*****E(1209);返回文华码为1209的合约品种的最新价。
2、金融统计*****(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。
『未来函数』例:*****(*****EN,3);表示当K线收阳时,自当前位置到3周期前的数值设为 1 该函数参数支持变量计算如*****(*****EN,VAR1);//VAR1是变量*****T(X) 求上一次条件成立到当前的周期数。
例:*****T(X):上一次满足X条件到现在的K线根数。
如果本根K线满足X条件,则*****T(X)返回0.COUNT(X,N) 表示统计在N周期内满足X条件的周期数。
若N=0则从本地数据的第一个有效值开始。
例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));COUNT(WR80,5); 表示统计在5个周期内满足WR80的次数。
盘口模型函数列表前标的物价格*100.0卖出期权的溢价率-(当前标的物价格-(期权执行价-期权最新价))/当前标的物价格*100.0例:VAR qqPremiumRate;//定义一个变量 qqPremiumRate qqPremiumRate二PremiumRate(〃101404-1)-2450"); //qqPremiumRate 的值为合约号为I01404-P-2450的期权合约的溢价率。
Price 根据文华码取报价列表窗口某一个合约的行情报价数据。
用法:Price(〃CODE〃,“DATA");取合约名为CODE的合约的DATA数据。
DATA可以取以下数据:Code文华码Open开盘价High最高价Low最低价New最新价Del tai涨跌Bid买价BidVol买量Ask卖价AskVol卖量DeltaVol 现手DeltaOpI 增仓Volume成交量 OpTorSize持仓量Ratio日增仓UpDown涨幅Settle结算价YSettle昨结算YClose昨收 Capital沉淀资金Direction资金流向Speculation 投机度期权:PremiumRate 溢价率ActualLcvcragc真实杠杆率Leverage杠杆比率StrikePrice 行权价CallPut 涨/跌 HistoricalVolatility 历史波动率Stdderiation隐含波动率Internal Value 内在价值TimeValue时间价值ThcoryPricc理论价格Rho Rho 值Theta Theta 值 Vega Vega值。
常用交易模型编写常用交易模型编写——适用于文华财经系统做指标的目的是为了交易,看指标然后作出反应之后决定要不要下单再去敲单,这样很麻烦,为什么不直接把它做成交易模型呢?模型不仅能够在图上标出交易指令(箭头,按自己的交易思想发出的),还能够自动弹出委托单,你需要回车确认一下就下单了,而且交易模型的编制也非常简单,如下:MA5:=MA(CLOSE,5); MA20:=MA(CLOSE,20); MA160:=MA(CLOSE,160);CROSS(CLOSE,MA160)&&CROSS(MA5,MA20),BPK;CROSS(MA160,CLOSE)&&CROSS(MA20,MA5),SPK;1、趋势转变如何表示?以均线拐头为例:MA10:=MA(CLOSE,10);//定义10周期均线MA10>REF(MA10,1)&&REF(MA10,1)>REF(MA10,2)&&REF( MA10,3)>REF(MA10,2)&&REF(MA10,4)>REF(MA10,3);//上拐MA10<REF(MA10,1)&&REF(MA10,1)<REF(MA10,2)&&REF( MA10,3)<REF(MA10,2)&&REF(MA10,4)<REF(MA10,3);//下拐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、价差如何表示?以最新价和均线价差为例:MA5:=MA(CLOSE,5);//5个周期收盘价的简单移动平均MA10:=MA(CLOSE,10);//10个周期收盘价的简单移动平均CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;//MA10上穿MA5或收盘价与MA5的差值大于8,发出卖出开仓交易指令(MA5-CLOSE)>6,BP;//MA5与收盘价的差值大于6,发出买入平仓交易指令CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;//MA5上穿MA10或收盘价与MA5的差值大于8,发出买入开仓交易指令(CLOSE-MA5)>6,SP;//收盘价与MA5的差值大于6,发出卖出平仓交易指令4、如何在模型中限制开平仓时间?MA5:=MA(CLOSE,5); //定义5周期的简单移动平均线MA10:=MA(CLOSE,10); //定义10周期的简单移动平均线TIME>=0905&&CROSS(MA5,MA10),BK;//在9点05分后出现MA5金*MA10后买开CROSS(TIME,1457),BP;//当时间到14点58分自动发出买平指令TIME>=0905&&CROSS(MA10,MA5),SK;//在9点05分后出现MA5死*MA10后卖开CROSS(TIME,1457),SP;//当时间到14点58分自动发出卖平指令5、KDJ模型雏形RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//定义RSVK:=SMA(RSV,M1,1); //定义KD:=SMA(K,M2,1); //定义DJ:=3*K-2*D; //定义JJ<30&&CROSS(K,D),BPK;//J值小于30并且K、D金*,买平并买开J>70&&CROSS(D,K),SPK; //J值大于70并且K、D死*,卖平并卖开6、MACD模型雏形DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定义DIFF DEA := EMA(DIFF,M);//定义DEA(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,卖平并卖开7、MTM模型雏形MTM:=CLOSE-REF(CLOSE,N);//定义MTMCROSS(MTM,0),BPK;//MTM上穿0轴,买平并买开CROSS(0,MTM),SPK;//MTM下穿0轴,卖平并卖开8、RSI模型雏形LC:=REF(CLOSE,1);//定义LCRSI1:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;//定义RSI1RSI2:=SMA(MAX(CLOSE-LC,0),M,1)/SMA(ABS(CLOSE-LC),M,1)*100;//定义RSI2REF(RSI1,1)<40&&CROSS(RSI1,RSI2),BPK;//上周期的RSI1<40并且RSI1上穿RSI2,买平并买开REF(RSI1,1)>60&&CROSS(RSI2,RSI1),SPK;//上周期的RSI1>60并且RSI1下穿RSI2,卖平并卖开9、WM模型雏形RSV:= (CLOSE-HHV(HIGH,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定义RSVLWR1:=SMA(RSV,3,1);//定义LWR1LWR2:=SMA(LWR1,3,1);//定义LWR2CROSS(LWR1,LWR2),BPK;//LWR1上穿LWR2,买平并买开CROSS(LWR2,LWR1),SPK;//LWR1下穿LWR2,卖平并卖开10、SAR模型雏形SARLINE:=ABS(SAR(N,STEP,MVALUE));//定义SARLINECROSS(CLOSE,SARLINE),BPK;//最新价上穿SARLINE,买平并买开CROSS(SARLINE,CLOSE),SPK;//最新价下穿SARLINE,卖平并卖开。
二、基本语法1. 算法组件构成:全局变量定义、主函数定义、自定义函数定义。
注:a.全局变量定义要在主函数和自定义函数之外,主函数和自定义函数定义不分先后顺序。
b.运行原理:先读取全局变量,后直接运行主函数,在主函数运行过程中如果遇到自定义函数,在跳出主函数运行自定义函数。
2、变量定义与赋值:利用VAR函数对变量进行定义,定义好的变量可以对其进行赋值,让变量有具体的意义。
VAR N1; -----------------------//定义变量N1VAR N2; -----------------------//定义变量N2VAR N3; -----------------------//定义变量N3N1=3000; -----------------------//整型赋值N2=88.888; -----------------------//浮点型赋值N3=“股指期货”; -----------------------//字符串型赋值N4[0] = 1; -----------------------//数组型赋值N4[1] = 2; -----------------------//数组型赋值N4[2] = 3; -----------------------//数组型赋值3、主函数定义:VOID/VAR MAIN() -----------------------//定义主函数{主函数内容}例:VAR N; -----------------------//定义变量NVOID MAIN() -----------------------//定义主函数{N=“文华财经”; -----------------------//对N赋值MessageOut(N); -----------------------//输出N}4、自定义函数定义A、带返回值的函数VAR BDEAL() -----------------------//带返回值的函数{RETURN(10); -----------------------//返回值}例:带返回值函数定义VAR BDEAL(A,B) -----------------------//带返回值的函数{VAR M; -----------------------//定义变量MM=A+B;RETURN(M); -----------------------//返回值}……S=BDEAL(15,20) ; -----------------------//使用函数……B、不带返回值的函数VOID BDEAL() -----------------------//不带返回值函数{…}例:不带返回值函数定义VOID BDEAL() -----------------------//不带返回值的函数{T_Deal(“IF1312”,0,0,1,0);}……IF(…) -----------------------//当条件成立{BDEAL() -----------------------//运行函数}C、有返回值有参数的自定义函数定义例:VAR ADDTEST(VAR a,VAR b){VAR x;VAR y;x=a+b;y=a-b;MessageOut(x);MessageOut(y);RETURN(x*y);}5、循环语句while的用法:6、循环语句FOR的用法三、常用函数判断函数:IF,ELSE IFIF (F_Sig()==BK) -----------------------//如果当前是BK信号{BKDeal(); -----------------------//运行开多仓函数}ELSE IF (F_Sig()==SK) -----------------------//如果当前是SK信号{SKDeal(); -----------------------//运行开空仓函数}信号函数:F_FreshSig():取一个新信号(如果模型已经发出了多个信号,取最近发出的信号,信号消失也是一种新信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。
文华财经海龟交易系统模型源码[文华财经公式]=============================================================== A:=REF(HHV(H,20),1);B:=REF(LLV(L,20),1);AA:=REF(HHV(H,10),1);BB:=REF(LLV(L,10),1);CROSS(H,A),BK;//突破20高点开多仓CROSS(AA,H),SP;//跌破10低点平仓CROSS(B,L),SK;//突破20低点开空仓CROSS(BB,L),BP;//上传10高点平仓C:=CLOSE;O:=OPEN;H:=HIGH;L:=LOW;STICKLINE(O>=C,C,O,COLORCYAN,0);DRAWLINE(O>=C,H,O>=C,L,COLORCYAN);STICKLINE(C>=O,C,O,COLORRED,1);DRAWLINE(C>=O,C,C>=O,H,COLORRED);DRAWLINE(C>=O,L,C>=O,O,COLORRED);LC:=REF(CLOSE,1);TR:=MAX((HIGH - LOW),MAX((HIGH - LC),(LC - LOW)));ATR:=SMA(TR,20,1);AA:=(HHV(HIGH,N1) - (2 * ATR));BB:=CROSS(CLOSE,REF(HHV(HIGH,55),1));SSS:=CROSS(MIN(MA(CLOSE,13),AA),CLOSE);BBB:=BARSLAST(BB)-1;SSSB:=BARSLAST(SSS)-1;B1:=((BBB = 0) && (REF(SSSB,1) < REF(BBB,1)));B1B:=BARSLAST(B1);B2:=((((BB = 1) && (B1B < SSSB)) && (B1B > 0)) && (COUNT(BB,SSSB) < 3));B2B:=BARSLAST(B2);B3:=((((BB = 1) && (B2B < B1B)) && (COUNT(BB,SSSB) < 4)) && (COUNT(BB,SSSB) > 2));B3B:=BARSLAST(B3);SS:=CROSS(MAX(AA,MA(CLOSE,13)),CLOSE);SS1:=(((SS && ((B3B < B2B) || (B2B < B1B))) && (SSSB > B1B)) && (COUNT(SS,B2B) < 2)); SS1B:=BARSLAST(SS1);SS2:=((((SS && (SS1B < SSSB)) && (B3B < B2B)) && (SS1B > 0)) && (COUNT(SS,B2B) < 3)); SSSS:=(SSS && (REF(SSSB,1) > REF(B1B,1)));DRAWTEXT((B1 = 1),(LOW - 0.25),'买1/2');DRAWTEXT((B2 = 1),(LOW - 0.25),'买2/3');DRAWTEXT((B3 = 1),(LOW - 0.25),'买1/3');DRAWTEXT((SS1 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SS2 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SSSS = 1),(HIGH + 0.25),' 卖100%');STICKLINE(OPEN>=CLOSE,CLOSE,OPEN,COLORCYAN,0);DRAWLINE(OPEN>=CLOSE,HIGH,OPEN>=CLOSE,LOW,COLORCYAN);STICKLINE(CLOSE>=OPEN,CLOSE,OPEN,COLORRED,1);DRAWLINE(CLOSE>=OPEN,CLOSE,CLOSE>=OPEN,HIGH,COLORRED);DRAWLINE(CLOSE>=OPEN,LOW,CLOSE>=OPEN,OPEN,COLORRED);LC:=REF(CLOSE,1);TR:=MAX((HIGH - LOW),MAX((HIGH - LC),(LC - LOW)));ATR:=SMA(TR,20,1);AA:=(HHV(HIGH,N1) - (2 * ATR));BB:=CROSS(CLOSE,REF(HHV(HIGH,55),1));SSS:=CROSS(MIN(MA(CLOSE,13),AA),CLOSE);BBB:=BARSLAST(BB)-1;SSSB:=BARSLAST(SSS)-1;B1:=((BBB = 0) && (REF(SSSB,1) < REF(BBB,1)));B1B:=BARSLAST(B1);B2:=((((BB = 1) && (B1B < SSSB)) && (B1B > 0)) && (COUNT(BB,SSSB) < 3));B2B:=BARSLAST(B2); B3:=((((BB = 1) && (B2B < B1B)) && (COUNT(BB,SSSB) < 4)) && (COUNT(BB,SSSB) > 2));B3B:=BARSLAST(B3);SS:=CROSS(MAX(AA,MA(CLOSE,13)),CLOSE);SS1:=(((SS && ((B3B < B2B) || (B2B < B1B))) && (SSSB > B1B)) && (COUNT(SS,B2B) < 2)); SS1B:=BARSLAST(SS1); SS2:=((((SS && (SS1B < SSSB)) && (B3B < B2B)) && (SS1B > 0)) && (COUNT(SS,B2B) < 3));SSSS:=(SSS && (REF(SSSB,1) > REF(B1B,1)));DRAWTEXT((B1 = 1),(LOW - 0.25),'买1/2');DRAWTEXT((B2 = 1),(LOW - 0.25),'买2/3');DRAWTEXT((B3 = 1),(LOW - 0.25),'买1/3');DRAWTEXT((SS1 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SS2 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SSSS = 1),(HIGH + 0.25),' 卖100%');捕捉强势C:=CLOSE;L:=LOW;H:=HIGH;O:=OPEN;JJJ:1.0;ZJ:=(C+C+L+H)/4;ZJ5:=MA(ZJ,5);VAR1:=ZJ5/MA(C,20);VARAAA:ZJ5/MA(C,20);VAR2:=ZJ5/MA(C,50);A:=MA(C,5)>REF(MA(C,5),1);B:=MA(C,10)>=REF(MA(C,10),1);XIANFENG:IF(VAR1>1.02,1.03,VAR1),COLORYELLOW;STICKLINE(XIANFENG>1.019 && A,XIANFENG,XIANFENG-0.004,COLORGREEN,0); HOUYUAN:IF(VAR2>1,1,VAR2),COLORCYAN;STICKLINE(HOUYUAN=1 && B,1,0.995,COLORRED,0);VAR3:= REF(MA(ZJ,5),1);A1:=SMA(MAX(C-VAR3,0),9,1)/SMA(ABS(C-VAR3),9,1)*100;B1:=100*(HHV(H,14)-C)/(HHV(H,14)-LLV(L,14));STICKLINE(B1<5,0.925,0.935,COLORRED,0);STICKLINE(B1>95,0.910,0.92,COLORGREEN,0);STICKLINE(A1>B1&&A1>REF(A1,1) ,0.925 ,0.92 ,COLORMAGENTA ,0 );STICKLINE(A1<B1&&A1<REF(A1,1) ,0.925 ,0.92 ,COLORLIGHTGREEN ,0 ); DRAWTEXT(VAR1>=REF(VAR1,1)&&VAR2>=REF(VAR2,1)&&BARSLAST(A1<B1&&A1<REF( A1,1)&&C>REF(C,1))=2,0.96,'-等回踩');RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;{==========}K:=SMA(RSV,3,1);XX:=VAR1>REF(VAR1,1)&&K>REF(K,1)&&VAR2>REF(VAR2,1)&&A1>B1&&A1>REF(A1,1)& &BARSLAST(A1>B1&&A1>REF(A1,1))>2&&(C+O)/(REF(C,1)+REF(O,1))<1.024;IF(XX,0.95,0.92),COLORRED;DRAWLINE( XX,1.02 ,XX ,0.90 ,COLORRED );DRAWTEXT(A1-B1>0,1.05,'');KS13:=(C-SMA(C,13,1))/SMA(C,13,1)*(-100);AAA:=REF(KS13,1)>-13 && REF(KS13,1)/KS13>1.12&&(C-O)+(REF(C,1)-REF(O,1))/REF(C,1)>1.03&&(C-O)/ABS(REF(C,1)-REF(O,1))>1.0&&(H-C )/(O-L)<1 ;CHAODI:=IF(AAA && REF(C,1)< MA(CLOSE,5),0.95,1),COLORWHITE;DRAWTEXT(CHAODI=0.95,0.935,'←抄底');DUO:=EMA(MA(CLOSE,1)*70,2);KONG:=EMA((MA(C*1.1,1)-MA(C*0.9,1))*70,2);DRAWTEXT(DUO>KONG &&HOUYUAN=1 && B,1.05,'=');BUZHUO:IF(DUO>KONG &&C>O&& HOUYUAN=1 && B && COUNT(DUO>KONG && HOUYUAN=1 && B,5)=1,1.03,1),COLORRED;DRAWTEXT(BUZHUO=1.03,1.001,'←突破或追涨');VAR6:=MA(ZJ,27);VAR7:=(ZJ-VAR6)/VAR6;E:=MA(VAR7,2);F:=BARSLAST(CROSS(-0.1,E)=1);G:=E<-0.1 && F>3;FILLRGN(G,0.99,1,COLORYELLOW);DRAWTEXT(G&&BARSLAST(G )>2,0.98,'底');FILLRGN(VAR2<0.82,0.98,1,COLORGREEN);FILLRGN(VAR2<0.8,0.97,1,COLORWHITE);BIAS1:=(C-MA(C,6))/MA(C,6)*100;BIAS2:=(C-MA(C,12))/MA(C,12)*100;BIAS3:=(C-MA(C,24))/MA(C,24)*100;BIAS:=(BIAS1+2*BIAS2+3*BIAS3)/6;GUAILI:=MA(BIAS,3);FILLRGN(GUAILI<-6 && GUAILI>=-12,0.9985,1,COLORYELLOW);FILLRGN(GUAILI<-12 && GUAILI>=-18,0.995,1,COLORGREEN);FILLRGN(GUAILI<-18,0.975,1,COLORWHITE);C:=CLOSE;O:=OPEN;H:=HIGH;L:=LOW;STICKLINE(O>=C,C,O,COLORCYAN,0);DRAWLINE(O>=C,H,O>=C,L,COLORCYAN);STICKLINE(C>=O,C,O,COLORRED,1);DRAWLINE(C>=O,C,C>=O,H,COLORRED);DRAWLINE(C>=O,L,C>=O,O,COLORRED);LC:=REF(CLOSE,1);TR:=MAX((HIGH - LOW),MAX((HIGH - LC),(LC - LOW)));ATR:=SMA(TR,20,1);AA:=(HHV(HIGH,N1) - (2 * ATR));BB:=CROSS(CLOSE,REF(HHV(HIGH,55),1));SSS:=CROSS(MIN(MA(CLOSE,13),AA),CLOSE);BBB:=BARSLAST(BB)-1;SSSB:=BARSLAST(SSS)-1;B1:=((BBB = 0) && (REF(SSSB,1) < REF(BBB,1)));B1B:=BARSLAST(B1);B2:=((((BB = 1) && (B1B < SSSB)) && (B1B > 0)) && (COUNT(BB,SSSB) < 3));B2B:=BARSLAST(B2); B3:=((((BB = 1) && (B2B < B1B)) && (COUNT(BB,SSSB) < 4)) && (COUNT(BB,SSSB) > 2));B3B:=BARSLAST(B3);SS:=CROSS(MAX(AA,MA(CLOSE,13)),CLOSE);SS1:=(((SS && ((B3B < B2B) || (B2B < B1B))) && (SSSB > B1B)) && (COUNT(SS,B2B) < 2)); SS1B:=BARSLAST(SS1); SS2:=((((SS && (SS1B < SSSB)) && (B3B < B2B)) && (SS1B > 0)) && (COUNT(SS,B2B) < 3));SSSS:=(SSS && (REF(SSSB,1) > REF(B1B,1)));DRAWTEXT((B1 = 1),(LOW - 0.25),'买1/2');DRAWTEXT((B2 = 1),(LOW - 0.25),'买2/3');DRAWTEXT((B3 = 1),(LOW - 0.25),'买1/3');DRAWTEXT((SS1 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SS2 = 1),(HIGH + 0.25),' 卖100%');DRAWTEXT((SSSS = 1),(HIGH + 0.25),' 卖100%');兰色见底买入,红色见顶卖出DF:=7*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1)-3*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1),3,1)-SMA(SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1) ,3,1),2,1); DF,COLORMAGENTA; KF:EMA(MA(DF,5),7),COLORLIGHTGREY;STICKLINE(DF>=KF,DF,KF,3,0); STICKLINE(DF<KF,DF,KF,3,0); STICKLINE(DF>78 && DF>=KF,DF,78,COLORRED,0); STICKLINE(KF<=DF,KF,DF,COLORMAGENTA,0); STICKLINE(KF>DF,KF,DF,COLORLIGHTGREY,0); STICKLINE(KF<15 &&KF<=DF,KF,15,COLORBLUE,0);海海龟交易系统(文华用技术指标主图) [原创2010-3-27 18:48:44]C:=CLOSE;O:=OPEN;H:=HIGH;L:=LOW;STICKLINE(O>=C,C,O,COLORCY AN,0);DRAWLINE(O>=C,H,O>=C,L,COLORCY AN);STICKLINE(C>=O,C,O,COLORRED,1);DRAWLINE(C>=O,C,C>=O,H,COLORRED);DRAWLINE(C>=O,L,C>=O,O,COLORRED);LC:=REF(CLOSE,1);TR:=MAX((HIGH - LOW),MAX((HIGH - LC),(LC - LOW)));A TR:=SMA(TR,20,1);AA:=(HHV(HIGH,N1) - (2 * ATR));BB:=CROSS(CLOSE,REF(HHV(HIGH,55),1));SSS:=CROSS(MIN(MA(CLOSE,13),AA),CLOSE);BBB:=BARSLAST(BB)-1;SSSB:=BARSLAST(SSS)-1;B1:=((BBB = 0) && (REF(SSSB,1) < REF(BBB,1)));B1B:=BARSLAST(B1);B2:=((((BB = 1) && (B1B < SSSB)) && (B1B > 0)) && (COUNT(BB,SSSB) < 3));B2B:=BARSLAST(B2);B3:=((((BB = 1) && (B2B < B1B)) && (COUNT(BB,SSSB) < 4)) &&(COUNT(BB,SSSB) > 2));B3B:=BARSLAST(B3);SS:=CROSS(MAX(AA,MA(CLOSE,13)),CLOSE);SS1:=(((SS && ((B3B < B2B) || (B2B < B1B))) && (SSSB > B1B)) &&(COUNT(SS,B2B) < 2));SS1B:=BARSLAST(SS1);SS2:=((((SS && (SS1B < SSSB)) && (B3B < B2B)) && (SS1B > 0)) &&(COUNT(SS,B2B) < 3));SSSS:=(SSS && (REF(SSSB,1) > REF(B1B,1))); DRAWTEXT((B1 = 1),(LOW - 0.25),'买1/2'); DRAWTEXT((B2 = 1),(LOW - 0.25),'买2/3'); DRAWTEXT((B3 = 1),(LOW - 0.25),'买1/3'); DRAWTEXT((SS1 = 1),(HIGH + 0.25),' 卖100%'); DRAWTEXT((SS2 = 1),(HIGH + 0.25),' 卖100%'); DRAWTEXT((SSSS = 1),(HIGH + 0.25),' 卖100%');。