加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于文华财经软件的一些常见代码编写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

//声音编写的示例

//建议参考PLAYSOUNDSOUND函数

//注意PLAYSOUDSOUND函数的一致和区别

//注意条件忽闪的时候的声音的忽闪

 

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');//当收盘价和最高价都较上一根小的时候,标注绿色三角图标

//建议参考学习ICONDRAWICON函数

//注意两个函数的区别

 

4//编写示范,依此入市,风险自负!

//标注文字函数:DRAWTEXT函数和WORD函数。函数具体使用方法,请参考函数说明。

//FONTSIZEX设置字体大小的函数,X取值范围为872。仅对DRAWTEXT函数修改字体大小生效。

MA5:=MA(C,5);//5周期均线

 KTEXT(CROSS(C,MA5),-3,MA5,2,COLORRED,'买入');

//在收盘价金叉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根实体的均值并且收阳/阴并且最高价/低价较上一根突破时出现文字提示

//建议参考学习DRAWTEXTKTEXTWORD函数

//注意掌握这三个函数的用法区别

 

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); //30周期均线进行中度加粗。

//建议学习掌握SETSTYLECOLOR函数的用法

 

 

 

6//编写示范,依此入市,风险自负!

//绘制小圆点线的编写示例

MA5:MA(C,5),COLORGREEN;

MA10:MA(C,10),COLORMAGENTA;

MA30:MA(C,30),CIRCLEDOT//30周期均线绘制成小圆点。

//建议参考学习CIRCLEDOTCROSSDOTPOINTDOTDOT函数的

 

7//编写示范,依此入市,风险自负!

//绘制变色线的学习

MA1:MA(C,30),NODRAW;

DRAWCOLORLINE(C>=MA1,MA1,COLORRED,COLORGREEN); 

//价格大于等于30周期均线时,30周期均线为红色,否则为绿色

//建议学习DRAWCOLORLINE函数

 

8//编写示范,依此入市,风险自负!

//只显示数值不绘制指标线示例

H20:HHV(H,20),NODRAW//20周期高点作为看盘参考,只显示数值,不画线。

L20:LLV(L,20),NODRAW//20周期低点作为看盘参考,只显示数值,不画线。

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);

//如果当前时间大于930,取927分的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.html?qq-pf-to=pcqq.group

 

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;

//其中AB相等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) EMA(CLOSE,19);

 DEA:EMA(DIFF,9);

 MACD:2*(DIFF-DEA),COLORSTICK;

 A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));//满足DIFF上穿DEA到当前的周期数金叉

 B1:=REF(C,A1+1)>C AND REF(DIFF,A1+1)AND CROSS(DIFF,DEA);//定义底背离

 C1:=BARSLAST(REF(CROSS(DEA,DIFF),1));//满足DIFF下穿DEA到当前的周期数死叉

 D1:=REF(C,C1+1)<</span>C AND REF(DIFF,C1+1)>DIFF AND CROSS(DEA,DIFF);//定义顶背离

 MACD底背:IFELSE(B1>0,1,0),COLORRED,POINTDOT;//满足底背离取值为1

 MACD顶背:IFELSE(D1>0,1,0),COLOR00FF00,POINTDOT;//满足顶背离取值为1

 

 STICKLINE1(B1>0,-ABS(DEA),0,4,0),COLORRED;

 STICKLINE1(D1>0,ABS(DEA),0,4,0),COLOR00FF00;

 STICKLINE1(MACD>REF(MACD,1) AND MACD>0,0,MACD,0,0),COLORRED;

 STICKLINE1(MACD<=REF(MACD,1) AND MACD>0,0,MACD,0,0),COLORYELLOW;

 STICKLINE1(MACD<</span>REF(MACD,1) AND MACD<0,0,MACD,0,0),COLORCYAN;

 STICKLINE1(MACD>=REF(MACD,1) AND MACD<0,0,MACD,0,0),COLORMAGENTA;

 STICKLINE1(C>0,0,0,50,1),COLORBLUE;

//相关柱线的编写

 DIFF,COLORGREEN;

 DEA,COLORYELLOW;

 PARTLINE1(DIFF>MA(DIFF,2),DIFF),COLORRED;

 PARTLINE1(DEA>MA(DEA,2),DEA),COLORMAGENTA;

//相关直线的编写

 DRAWTEXT(MACD底背,0,'底背'),COLORAA00FF,ALIGN1,FONTSIZE10;

 DRAWTEXT(MACD顶背,0,'顶背'),COLOR00FFFF,ALIGN1,FONTSIZE10;

//此指标,请用在最新的赢顺(赢顺V6.7)和赢智版本(赢智V8.2

//请参考学习STICKLINE STICKLINE1函数和PARTLINEPARTLINE1函数

 

18、//示例日内简单的交易模型的编写,仅供参考,风险自负!

MA5:MA(CLOSE,5);//定义5周期的简单移动平均线

MA10:MA(CLOSE,10);//定义10周期的简单移动平均线

TIME>=0905&&TIME<1455&&CROSS(MA5,MA10),BK;//905分之后1455分之前的时间段内出现5周期线金*10周期线后买开

TIME>=1455,BP;//当时间到1455分时自动发出买平指令

TIME>=0905&&TIME<1455&&CROSS(MA10,MA5),SK;//905分之后1455分之前的时间段内出现5周期线死*10周期线后卖开

TIME>=1455,SP;//当时间到1455分时自动发出卖平指令

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>HH2K1赋值为-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的相同点和不同点

//建议学习HHVLLVLLVBARSHHVBARSLOOP1函数

//简单的改写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;

 



 

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有