关于文华财经软件的一些常见代码编写1(源于金鹰)
(2014-07-30 09:16:16)
标签:
股票程序化交易期货文华财经 |
分类: 程序化交易资料 |
感谢文华程序化交流群群主金鹰的无私奉献~现转来分享给大家~字数过多分几个发布
1、
//编写示范,依此入市,风险自负!
MA5:MA(CLOSE,5);//定义5周期均线
MA10:MA(CLOSE,10);//定义10周期均线
CROSSUP(MA5,MA10),BPK;//5周期均线上穿10周期均线平空同时反手开多。
CROSSDOWN(MA5,MA10),SPK;//5周期均线下穿10周期均线平多同时反手开空。
AUTOFILTER;//自动对模型信号进行过滤
//信号下单编写示例
//简单的均线的金叉和死叉交易
//建议参考学习“AUTOFILTER”函数机制
2、//编写示范,依此入市,风险自负!
//SOUND('A'),播放声音A;
//通过“指标公式编辑器-声音”可以设置‘声音0-声音9’,也可以导入自定义声音。
C>REF(HHV(H,10),1),SOUND('A');//当价格创10周期新高的时候,发出声音0提示
PLAYSOUND(VOL>REF(VOL,1),'B');//当前的成交量大于前一个周期的成交量时,播放声音1
//声音编写的示例
//建议参考“PLAYSOUND”和“SOUND”函数
//注意PLAYSOUD和SOUND函数的一致和区别
//注意条件忽闪的时候的声音的忽闪
3、//编写示范,依此入市,风险自负!
//‘指标公式编辑器-图标或者麦语言开发平台--插入-插入图标’中,提供多达105种图标。
//适用于‘标注函数’中‘DRAWICON’函数和‘ICON’函数。
C>REF(C,1)&&H>REF(H,1),ICON(0,'ICO8');//当收盘价和最高价都较上一根大的时候,标注红色三角图标
C<</span>REF(C,1)&&L<</span>REF(L,1),ICON(1,'ICO9');//当收盘价和最高价都较上一根小的时候,标注绿色三角图标
//建议参考学习ICON和DRAWICON函数
//注意两个函数的区别
4、//编写示范,依此入市,风险自负!
//标注文字函数:‘DRAWTEXT’函数和‘WORD’函数。函数具体使用方法,请参考函数说明。
//FONTSIZEX设置字体大小的函数,X取值范围为8至72。仅对DRAWTEXT函数修改字体大小生效。
MA5:=MA(C,5);//5周期均线
//在收盘价金叉5周期均线的前三根K线处,在MA5位置右侧上写"买入"字
DRAWTEXT(ABS(C-O)>MA(ABS(C-O),20)&&C>O&&H>REF(H,1),L,'向上突破'),FONTSIZE15;
DRAWTEXT(ABS(C-O)>MA(ABS(C-O),20)&&C<</span>O&&L<</span>REF(L,1),H,'向下突破'),FONTSIZE15;
//当K线实体大于20根实体的均值并且收阳/阴并且最高价/低价较上一根突破时出现文字提示
//建议参考学习DRAWTEXT、KTEXT和WORD函数
//注意掌握这三个函数的用法区别
5、//编写示范,依此入市,风险自负!
//通过使用SETSTYLECOLOR函数,指定线型和颜色。
//同时支持A,LINETHICK,COLOR;这种编写方法指定变量A的线型和颜色,效果与SETSTYLECOLOR函数相同。
MA5:MA(C,5),SETSTYLECOLOR(LINETHICK1,COLORGREEN);
MA10:MA(C,10),SETSTYLECOLOR(LINETHICK1,COLORMAGENTA);
MA30:MA(C,30),SETSTYLECOLOR(LINETHICK3,COLORYELLOW);
//建议学习掌握SETSTYLECOLOR函数的用法
6、//编写示范,依此入市,风险自负!
//绘制小圆点线的编写示例
MA5:MA(C,5),COLORGREEN;
MA10:MA(C,10),COLORMAGENTA;
MA30:MA(C,30),CIRCLEDOT;
//建议参考学习CIRCLEDOT、CROSSDOT、POINTDOT和DOT函数的
7、//编写示范,依此入市,风险自负!
//绘制变色线的学习
MA1:MA(C,30),NODRAW;
DRAWCOLORLINE(C>=MA1,MA1,COLORRED,COLORGREEN);
//价格大于等于30周期均线时,30周期均线为红色,否则为绿色
//建议学习DRAWCOLORLINE函数
8、//编写示范,依此入市,风险自负!
//只显示数值不绘制指标线示例
H20:HHV(H,20),NODRAW;
L20:LLV(L,20),NODRAW;
H50:HHV(H,50);//取50周期高点作为看盘参考,显示数值和画线
L50:=LLV(L,50);//取50周期低点不显示数值、不画线。这个可以理解定义的变量,便于其他数据的计算
9、//分钟K线周期今天、昨天、前天的最高点、最低点、开盘价、收盘价编写示例:
N:=BARSLAST(DATE<>REF(DATE,1))+1;//今天开盘到目前为止的周期数
OO:VALUEWHEN(N=1,O);//当天的开盘价
HH:HHV(H,N);//当天的最高价
LL:LLV(L,N);//当天的最低价
OO1:REF(OO,N);//昨天开盘价
HH1:REF(HHV(H,N),N);//昨天全天的最高价
LL1:REF(LLV(L,N),N);//昨天全天的最低价
CC1:REF(C,N);//昨天的收盘价
CC2:REF(REF(C,N),N);//前天的收盘价
OO2:REF(REF(OO,N),N);//前天开盘价
10、//只显示今天某一时间点后的指标线
N:=BARSLAST(DATE<>REF(DATE,1))+1;//当天分钟周期K线的根数(注意分钟线的划分)
A:=BACKSET(ISLASTBAR,N);//如果当前K线为最后一根(盘中实时运行的K线)把当天K线都赋值为1
HH:IFELSE(TIME>=0930&&A=1,VALUEWHEN(TIME=0927,HHV(H,10)),NULL);
//如果当前时间大于9点30,取9点27分的10周期K线的最高价
//注意BACKSET函数的学习和VALUEWHEN函数的用法
11、//模拟日内分时图界面示例
CC:C,COLORWHITE;//实时的价格走势线(收盘价)
JX:SETTLE,COLORYELLOW;//取得是分时图的均价线
//注意SETTLE函数的用法
//统计日内交易次数
12、
//统计日内交易次数
N:=BARSLAST(DATE<>REF(DATE,1))+1;//当天分钟周期K线的根数
NN:=COUNT(BARSBK=1||BARSSK=1,N);//当天做多、做空总的开仓次数的限制
NN<1&&AA,BK;//满足条件AA并且当天只开仓一次(AA为做多条件)
NN<1&&BB,SK;//满足条件BB并且当天只开仓一次(BB为做空条件)
//注意COUNT函数和BARSBK,BARSSK函数的用法
13、//模组可用资金的最大可开仓手数
N:=MONEY*0.3/(C*MARGIN*UNIT+FEE);//模组可用资金的30%的最大开仓手数
//(C*MARGIN*UNIT+FEE===代表的是当前价格*保证金占用*交易单位+手续费)
//建议MONEY函数的学习
14、//k线变色画画相关
http://jingyan.baidu.com/article/c14654134bf6de0bfdfc4c65
15、//MA60周期均线角度
MA60:MA(C,60);
A:ATAN(MA60-REF(MA60,1))*180/3.14159,NODRAW;
B:ATAN(MA60-REF(MA60,1))*57.3,NODRAW;
//其中A和B相等,57.3就等于180/3.14159
//建议参考学习ATAN函数
16、//资金回撤3%平仓
ZJ:MONEYTOT,COLORGREEN;//当前权益
M:VALUEWHEN(BKVOL<>REF(BKVOL,1)||(SKVOL<>REF(SKVOL,1)),MONEYTOT);
ZJ<(M-M*0.03),CLOSEOUT;//最大亏损
//建议参考学习MONEYTOT函数
17、//顶底背离编写示例,仅供参考,风险自负!
DIFF:EMA(CLOSE,7)
//相关柱线的编写
//相关直线的编写
//此指标,请用在最新的赢顺(赢顺V6.7)和赢智版本(赢智V8.2)
//请参考学习STICKLINE、
18、//示例日内简单的交易模型的编写,仅供参考,风险自负!
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分时自动发出卖平指令
AUTOFILTER;
19、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)<</span>REF(CLOSE,2)&&REF(CLOSE,2)<</span>REF(CLOSE,3)&&REF(CLOSE,3)<</span>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时,发出卖平并且卖开(反手)交易指令
//1、注意连续周期内满足条件的优化写法
TJ1:REF(EVERY(C>REF(C,1),3),1)&&C<=A,NODRAW;//前一个周期满足连续收盘价大于前一个收盘价&&收盘价小于A(和SPK条件是相同的)
AUTOFILTER;
//建议参考学习EVERY函数
20、//以下模型仅供参考,风险自负!
HH1:=IFELSE(H<</span>REF(H,2)&&REF(H,1)<</span>REF(H,2),REF(H,2),0);
//满足条件时给HH1赋值为前两个周期的最高价,否则赋值为0
LL1:=IFELSE(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0);
//满足条件时给LL1赋值为前两个周期的最低价,否则赋值为0
HH2:=VALUEWHEN(HH1>0,HH1);
LL2:=VALUEWHEN(LL1>0,LL1);
K1:=IFELSE(CLOSE>HH2,-3,IFELSE(CLOSE
//满足条件CLOSE>HH2时K1赋值为-3,满足条件CLOSE时将K1赋值为1,否则其他情况K1都为0
K2:=VALUEWHEN(K1<>0,K1);//K1不等于0时,取K1的值
K2=1,SPK;//满足条件CLOSE时,卖平开
K2=-3,BPK;//满足条件CLOSE>HH2时,买平开
AUTOFILTER;
//简单的改写,仅供参考!
//注意以下写法和条件HH1的相同点和不同点
//建议学习HHV、LLV和LLVBARS、HHVBARS和LOOP1函数
//简单的改写1
HHA:VALUEWHEN(H<</span>REF(H,2)&&REF(H,1)<</span>REF(H,2),REF(H,2)),NODRAW;
LLA:VALUEWHEN(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2)),NODRAW;
//简单的改写2
HHB:VALUEWHEN(HHV(H,3)=REF(H,2),REF(H,2)),NODRAW;
LLB:VALUEWHEN(LLV(L,3)=REF(L,2),REF(L,2)),NODRAW;
//简单的改写3
HHC:VALUEWHEN(HHVBARS(H,3)=2,REF(H,2)),NODRAW;
LLC:VALUEWHEN(LLVBARS(L,3)=2,REF(L,2)),NODRAW;
//简单的改写4
HHD:VALUEWHEN(LOOP1(H,3,MAX_POS)=2,REF(H,2)),NODRAW;
LLD:VALUEWHEN(LOOP1(L,3,MIN_POS)=2,REF(L,2)),NODRAW;