把456男人能连续射多少次写多少次,所组成的数能被9整数

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
五年级下期数学练习题2
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口(window.slotbydup=window.slotbydup || []).push({
id: '5450491',
container: s,
size: '600,50',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '3991088',
container: s,
size: '100,240',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '3991102',
container: s,
size: '100,240',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '4044404',
container: s,
size: '240,146',
display: 'inlay-fix'
2008年末献给理想的朋友:《飞狐公式编写基础》和《通达信公式教程》(47楼)
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
2008年末献给理想的朋友:《飞狐公式编写基础》和《通达信公式教程》(47楼)
浏览:198486
欢迎光临理想论坛,由于您没有登录,所以无法查看到论坛的附件及隐藏分区,也无法与其他会员交流。
还没有理想论坛的帐号?
『飞狐交易师』的公式系统是一套功能强大、使用简单的技术分析描述语言系统。
& &公式系统的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算。为什么是数据组序列呢?因为每一个时间周期(即相邻两组数据间的时间间隔)都包含了一组原始数据,如开高低收量额,公式系统能对其中的任何原始数据进行操作。使用者定义出如何对原始数据进行处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据,并以曲线、图形、指示等形式显示出来。
  公式系统可以编辑四种类型的公式,分别是技术指标、交易系统、条件选股和五彩K线公式。技术指标公式是最基本的公式,它用于指标图形的绘制。技术指标公式结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。
  公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,我们用鼠标把一个公式拖到某只证券的某个周期的图形分析窗口,则该公式处理这个周期的原始数据,如开高低收量额,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。
   公式系统对数据的运算是基于一系列『函数』,函数中除ZIG之字转向函数类和BACKSET函数外,其余函数均满足时间不变性,即时间靠后的数据不对时间靠前的结果产生影响。
弹出公式编辑器后,在公式名称处输入sl001,在公式说明中输入“示例公式001”,在代码框中输入“spj:”,点“插入函数”,在“行情函数”中找到CLOSE,点“插入函数”框的“确定”按钮,在代码框中就插入了一个函数CLOSE。
  注:收盘价函数CLOSE可以简写为C,其它如开盘价等经常使用的函数OPEN、HIGH、LOW、VOL也可以简写为其第一个字母。
最后在公式编辑器中点“确定”按钮,我们就建立了一个名为sl001的新公式。公式只有一行代码即:
其中,spj(“收盘价”的拼音代码)称为公式变量,close是函数(行情函数的一种)两者间以半角的冒号“:”相隔,表示spj定义为close。
  3、进入某个股的K线图,在键盘上敲“sl001”调用我们刚才设计的公式,结果在副图显示一条收盘价曲线,曲线的名称是“spj”
  注意观察,该曲线是对应了K线的第一天到最后一天,说明,“spj”不是一个简单的变量,是一个数组或者说是一个序列变量,当然理解成一个函数也可以,是一个自变量为时间日期的函数。
  因此,今后看公式时,对公式中的变量,一定要理解成是一个序列变量。(序列变量---字面上理解,就是含有一个序列的变量。如“spj:close”,spj就被定义为一个序列变量,spj的值是一个序列,包含很多收盘价,spj的值跟日期(或一般意义上的所处周期)有关,不同的交易日,spj的值就不同,序列变量,有点类似数学中的数列。)
  4、在副图指标sl001的空白处,点鼠标右键选“修改指标公式”,在公式编辑器中,看到“主图叠加”的选项了吗?打上“√”确定退出。键盘敲“sl001”,调用sl001公式,结果你看到了什么?
  结果是,副图指标sl001变成了主图叠加指标sl001。
  在主图指标的名称sl001处,点鼠标右键选“修改指标公式”,在公式编辑器中给“主图”选项打上勾,确定退出。再观察一下,有何变化?
  结果是,主图叠加指标变成主图指标,取代了原有的主图(图中是,主图K线被SL001指标所取代,因此就看不到K线了)。
二、参数、参数精灵及其应用:
  1、起始有效周期:
  上一讲,我们学习了在飞狐中新建公式的基础知识。并编了一个最简单的公式SL001。下面我们再来新建一个主图叠加公式SL002,代码如下:
ma5:ma(close,5);{可以简写为ma5:ma(c,5);}
  代码解释:定义了一个序列变量ma5,其序列值由函数ma(close,5)确定。查ma函数的注释是:
求简单移动平均。
用法: MA(X,N),求X的N日移动平均值。
算法: (X1+X2+X3+...+Xn)/N
例如: MA(CLOSE,10)表示求10日均价
显然,ma5被定义为5日均价,在K线图中,切换股票到600004,敲sl002,调用这个公式,观察5日均价曲线,发现了什么?
  可以看出,ma5是从第5根K线开始的,也就是说,ma5的起始有效周期是5,为什么是5而不是其它数据?根据ma函数的定义,ma5即ma(close,5)等于当日及前4日收盘价的算术平均值,至少要有5天的数据,这就是说,从第5天开始,才会有5日均价。
  想想看,ma(close,10)表示什么?它的起始有效周期是多少?
  下面,我们修改刚才建立的公式sl002,代码如下:
ma5:ma(close,5);
ma10:ma(close,10);
ma20:ma(close,20);
ma30:ma(close,30);
ma60:ma(close,60);
注意,每一行公式代码的末尾要有一个半角的分号“;”,表示一行代码结束。切换股票到600317,观察我们修改后的sl002显示的结果,原来就是我们所熟悉的均线系统,由5、10、20、30、60日均价线组成。
  2、参数、参数精灵:
  上面修改后的公式sl002,已经是很实用的公式了。但有个缺点,如果你想要的不是5、10、20、30、60日均价线,而是其它的譬如7、14、21、28、35日的均价线,怎么办?修改公式代码是一个可行的办法,但太麻烦。在飞狐中,可以使用参数,把公式sl002修改如下:
ma5:ma(close,n1);
ma10:ma(close,n2)
ma20:ma(close,n3);
ma30:ma(close,n4);
ma60:ma(close,n5);
在公式编辑器中,输入参数n1----n5的最小、最大、缺省值。
  为了验证公式代码是否正确,用鼠标左键点“调试公式”按钮,飞狐提示“行3:语句缺少分号”,仔细分析公式代码,原来是第2行少了分号,修正后再点“调试公式”按钮,提示“调试通过”。点“确定”按钮退出并保存公式。
参照上图一边修改参数,一边观察指标线是否变化。最后可以按照自己的需要,把参数修改为自己所需的数值。到此应该满意了吧?
  说明:从前面的图中,可以看出,飞狐交易师支持多达16个参数。
  3、参数精灵:在上面修改参数的过程,是否注意到参数的提示?因为公式是自己设计的,参数的提示尽管很简单,但自己仍然知道参数的含义,但如果是其他人的话,就可能摸不着头脑了,因此有必要对参数加上一点提示。方法是,在公式编辑器中,点“参数精灵”按钮,输入以下文字:
Param#1日均价(1--999);
Param#2日均价(1--999);
Param#3日均价(1--999);
Param#4日均价(1--999);
Param#5日均价(1--999);
这里,Param#1表示参数N1,其它依此类推,点“确定”退出公式编辑器。再试试调整参数,发现参数调整窗口的提示已经符合我们的要求。
  注意:这里的“Param”中第一个字母要大写。
[ 本帖最后由 宝钢主力 于
20:59 编辑 ]股票论坛 www.55188.com
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
三、条件表达式及其应用:
  1、条件表达式:在飞狐中设计公式,需要大量使用条件表达式,根据条件表达式的结果,作出判断,以便确定下一步该做什么,不该做什么。基本的条件表达式由“&、&=、&、&=、=、and、or、not”等比较运算符、逻辑运算符组成,此外单独的“逻辑函数”如该周期ISLASTBAR也可以构成条件表达式。条件表达式的值只有2个,1和0,条件成立则返回1,条件不成立则返回0,下面举例说明:
例1:close&open{表示收盘价大于开盘价,如果成立返回1,否则这个条件表达式的值为0};
例2:close&open and close&ma(close,5){表示收盘价大于开盘价且close大于5日均价,and 是“且、和”的意思};
例3:close&=ref(close,1) or close&=ref(close,2){今收盘小于昨收盘或今收盘小于等于前2天收盘价,or是“或 的意思,ref函数,请在公式编辑器中“插入函数”查询注释或鼠标移到函数处,会显示函数的注释};
例4:corss(ma(c,5),ma(c,10)){5日均价线上穿10日均价线,cross函数的定义,请自查。这里close简写为c};
  说明:上面例子中,包含在半角的一对花括号“{”、“}”的部分,是注释语句,不会被运行。一个好公式设计,需要花费很多心血,时间久了有可能自己也会忘记当时是怎么设计的,此外也为了别人能看懂公式,适当的加入注释是个好习惯。
  明白了条件表达式的意义后,我们来设计一个有点实用价值的公式:
例5:设计一个副图指标,8日内如果先后出现5日均价线上穿10日均价线、5日均价线上穿20日均价线,则返回1,否则返回0。
求解:根据上面的学习,“5日均价线上穿10日均价线”的条件表达式是cross(ma(c,5),ma(c,10)),“5日均价线上穿20日均价线”的条件表达式是cross(ma(c,5),ma(c,20)),那么本例是不是可以写成
cross(ma(c,5),ma(c,10)) and cross(ma(c,5),ma(c,20))
答案是否定的。因为这个条件表达式是表示同时满足2个条件,怎么办?
本指标的设计要用到逻辑函数EXIST(X,N),查询EXIST(X,N)的注释如下
用法: EXIST(X,N)返回N周期内是否存在满足条件X,N可为常数或变量
例如: EXIST(C&O,10)表示10个周期中存在阳线}
正确代码结果如下,我们把公式命名为sl003:
信号:EXIST(cross(ma(c,5),ma(c,10)),8) AND EXIST(cross(ma(c,5),ma(c,20)),8)
  代码说明:
  ①飞狐的公式代码不区分字母的大小写,字母可以大写,也可以小写或者大小写混合。
  ②本例中,公式代码使用了函数嵌套,即一个函数套一个函数,这里使用了三重嵌套。
  ③要看懂嵌套函数,基本的分析方法是,从里到外一层层分析,如EXIST(cross(ma(c,5),ma(c,20)),8),先分析ma(c,5)、ma(c,10)是什么意思,然后分析cross(ma(c,5),ma(c,20))是什么意思,最后再分析EXIST(cross(ma(c,5),ma(c,20)),8)是什么意思。
  例5的公式,显示的结果如何,不错吧?条件满足时,指标线的值会由0突变为1,“信号”很醒目。不过还是有点不爽,如果连续出现信号则第一次满足条件才给出“信号”,似乎更好些,怎么办呢?留给大家作为练习吧^_^。
  给一点提示:①利用“引用函数”类中的“信号过滤”函数FILTER(X,N)。②巧妙利用“突变”这个特征。
  这个练习对于初学者有点难度,只有不断学习、不断钻研,才能更快进步,南客给大家加油!
  2、中间变量:考察上面的示例公式sl003中,ma(c,5)共出现了2次,每出现一次,飞狐软件都要进行一次5日均价的运算,要重复算2次相同的运算。如果一个公式中,类似这样ma(c,5)出现的次数是N次,那岂不是要重复N次相同的运算,是不是有点太“笨”了?效率太低了?解决的办法是,把运算结果先“存”到中间变量,要用时,从中间变量中取出。
  例6:选用适当的中间变量,改写公式sl003。
  求解:正确结果如下,我们下面公式命名为sl004
ma5:=ma(c,5);
ma10:=ma(c,10);
ma20:=ma(c,20);
信号:EXIST(cross(ma5,ma10),8) AND EXIST(cross(ma5,ma20),8);
ma5:=ma(c,5);
ma10:=ma(c,10);
ma20:=ma(c,20);
tj1:=EXIST(cross(ma5,ma10),n);
tj2:=EXIST(cross(ma5,ma20),n);
信号:tj1 and tj2;
  第二段代码解释:
  ①ma5:=ma(c,5)是中间语句,ma5是中间变量(也可称为临时变量),中间变量是用“:=”来定义的,而变量(即序列变量)的定义是用“:”,前者在冒号后多了个等号;ma10、ma20也是中间变量,想想看公式代码中,“信号”是中间变量吗?
  ②公式中间变量的结果,不会在K线图的主图或副图中显示出来。
  ③公式代码中,n:=8,不是为了减少运算量,这里使用中间变量的目的,是为了改写代码方便,例如,公式设计好后,发现用8不大妥,想写为9,于是就需要在代码中找若干处把8改写为9,用中间语句n:=8,则公式代码只需修改一处就行了。
  说明:通过以上修改代码,减少了公式的运算量,这称之为公式的优化,一个公式定型前,要养成优化的好习惯,以提高公式的运算速度,提高运行效率。
  3、条件函数:设计飞狐公式时,条件函数IF很重要,经常都要用到,查询注释如下:
{根据条件求不同的值。
IF(X,A,B)若X不为0则返回A,否则返回B
IF(CLOSE&OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值}
  例7:问题同例5,但输出的“信号”修改为10和0。
  求解:公式代码如下
ma5:=ma(c,5);
ma10:=ma(c,10);
ma20:=ma(c,20);
tj1:=EXIST(cross(ma5,ma10),n);
tj2:=EXIST(cross(ma5,ma20),n);
tj3:=tj1 and tj3;
信号:if(tj3=1,10,0);
  代码解释:
  ①信号:if(tj3=1,10,0),表示如果tj3成立(即等于1)则返回10,否则返回的值为0。
  ②信号:if(tj3=1,10,0)可以简写为信号:if(tj3,10,0),参阅IF的注释,想想看,这是为什么?
[ 本帖最后由 宝钢主力 于
19:34 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
四、绘图函数、线型描述:
  上一讲,我们学习了条件表达式,这是公式设计中较难的部分,也是最为灵活多变的部分。今天轻松一下,学习绘图函数、线型描述符。
  1、线型描述函数:查询可知,目前飞狐本类函数中,共有函数22个,其中描述指标线颜色的有11个,其余11个函数描述指标线的形状、宽度、偏移等,下面举例说明部分函数的常见用法。
  例1:指定5日均价线显示为红色。
  求解1:ma5:ma(c,5),colorred
  求解2:ma5:ma(c,5),color0000ff
  说明:
  ①colorXXXXXX 形式的颜色描述,XXXXXX是6位颜色代码,其中0000ff表示红色,其它颜色的代码,请查阅飞狐帮助文件中的附录部分。
  ②用colorXXXXXX形式来描述,可以表达更多的颜色。
  例2:指定5日均价显示为红色,并加宽显示,10日均价显示为蓝色,线宽为默认,20日均线不显示指标线但显示数值。
  求解:代码如下
ma5:ma(close,5),colorred,linethick2;
ma10:ma(c,10),
ma20:ma(c,20),linethick0;
这里用到了描述符linethick,注释如下:
{ 改变指标线粗细
例如:ma1:ma(close,5),linethick3;
LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值}
  2、绘图函数:飞狐提供了丰富的绘图函数,巧妙应用绘图函数,可以使指标线色彩鲜艳,可以画出自己绘出K线等等。
  例3:5日均价线走平或向右上倾斜时,显示为晶红色,否则显示为绿色。
  求解:
ma5:ma(c,5),
partline(ma5&ref(ma5,1),ma5),
代码解释:
  ①ma5:ma(c,5),colorred,5日均价线显示为晶红色。
  ②partline(ma5&ref(ma5,1),ma5),colorgreen中,ref(ma5,1)为昨5日均价,ma5&ref(ma5,1)表示今5日均价线小于昨5日均价线,即5日均价线是下降的;因此本条代码语句意思是,5日均价线呈下降趋势时,5日均价线显示为绿色。本语句在第一条代码语句之后,所画的绿线将覆盖第一条语句所画的晶红色线。这样第一条语句所画的晶红色线,只剩下走平、向上倾斜部分保持晶红色。
  例4:利用STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY)函数绘制K线。
  分析:K线由上、下影线、实体部分组成,影响K线的股价有open、close、high、low,如果今上涨,K线为红色,否则为蓝色。代码如下:
stickline(isup,low,high,1,1),{今上涨,在最低价到最高价间画红色细线}
stickline(isup,open,close,7,1),{今上涨,在收盘价到开盘价间画红色空心柱线}
stickline(isdown,low,high,1,0),{今下跌,在最低价至最高价间画蓝色细线}
stickline(isdown,open,close,7,0),{今下跌,在开盘价至收盘价间画蓝色实心柱线}
五、引用其它公式、引用其它周期、引用其它个股数据:
  1、摘录飞狐帮助文件中的相关内容如下,其中选股公式、交易公式将在后面陆续讲解:
  ㈠引用指标公式/交易系统/条件选股公式
  1、引用指标公式,可以写成:
   &公式名称.指标线名称&(参数表), 其中参数表中的参数个数应该与该公式的实际参数数量一致,若不写参数表,则表示使用缺省参数。
  例如:&MACD.DIFF&,表示引用根据缺省参数,引用MACD指标中DIFF指标线数值。
  2、引用交易系统公式,可以写为:
   &SYSTEM.公式名称.交易类型&(参数表), 交易类型可以为ENTERLONG、EXITLONG、ENTERSHORT或者 EXITSHORT,分别表示引用多头买入、多头卖出、空头买入、空头卖出。
  例如:&SYSTEM.MACD.ENTERLONG&,表示根据缺省参数,引用MACD交易系统的多头买入条件。
  3、用条件选股公式,可以写为:
   &EXPLORER.公式名称&(参数表)
   例如:&EXPLORER.MACD&,表示根据缺省参数,引用MACD条件选股条件。
  ㈡跨周期引用公式  
  下面举例说明跨周期引用的书写方法:
  例1.&MACD.DIFF#WEEK&(26,10,5)
  表示引用MACD指标公式DIFF指标线的数值,在计算指标线值时,参数取(26,10,5),计算周期取周线。
  例2.&SYSTEM.MACD.ENTERLONG#MONTH&
  表示引用MACD交易系统的多头买入信号,参数取缺省值,计算周期取月线。
  注意:跨周期引用只能从较短周期引用较长周期,不允许反方向的引用。
  可供引用的周期类型有:MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH等八种,分别表示1、5、15、30、60分钟线,以及日线、周线、月线。
  ㈢引用任意股票的数据
  在公式中可以引用其它任何股票的数据,方法为:
  &股票代码$数据名称&
  数据名称可以是OPEN、HIGH、LOW、CLOSE、VOL、AMOUNT,分别表示包括开盘价、最高价、最低价、收盘价、成交量、成交额。
  例如,&000001$CLOSE&,表示引用深发展A的收盘价。
  2、举例说明:其实上面已经有例子了,这里再举一个综合性的例子:
  例1:在分笔周期的主图,显示价位线(即PRICE主图),按下面要求设计主图指标,设为SL005:
  ⑴显示最新价;
  ⑵显示均价线;
  ⑶显示昨收盘,以红色线表示;
  求解:(请回顾一下,什么是主图指标、主图叠加指标)
  ⑴显示最新价,就是最新的收盘价。公式代码很简单,即
  ⑵所谓均价,就是今天的平均成交价,等于“当前”的总成交金额除以“当前”的总成交量。在分笔周期,显示的主图,仅显示当天的数据,它的有效起始周期,是当天的开盘时间,结束于当天收盘。
  “当前”的总成交金额,等于从开盘到“当前”的成交金额总和,需用“引用函数”类中的求和函数即SUM(X,N),经查询,其注释为
用法: SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。
例如: SUM(VOL,0)表示统计从上市第一天以来的成交量总和}
成交金额的函数是amount,因此,“当前”的总成交金额为
sum(amount,0)
同理,“当前”的总成交量为
sum(vol,0)
这样,我们就得到均价的公式代码为
均价:sum(amount,0)/sum(vol,0);
  ⑶昨收盘,是日周期,现在我们是设计分笔周期的公式,这就是说,现在要从分笔周期引用日周期的昨收盘价。怎么办?当然要设计一个被引用的指标公式,设为yy001(意为“引用001”),只需一行代码
zsp:ref(c,1);
有了被引用的公式yy001,设计引用昨收盘的公式如下
昨收盘:&yy001.zsp#day&,{意思是,引用公式yy001的变量(即指标线)zsp,被引用的周期是日线}
综合起来,本题的主公式代码如下(另有一个被引用公式yy001),
均价:sum(amount,0)/sum(vol,0)/100;
昨收盘:&yy001.zsp#day&,
最后公式编辑器中,设定公式的默认周期为分笔,其它周期全部禁用。
[ 本帖最后由 宝钢主力 于
19:35 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
  前面学习了公式设计的基本知识,利用所学知识已经自行可以编制技术指标,这些知识配合飞狐提供的各类函数可以解决日常的大多问题。
  在飞狐的公式系统中,技术指标占地很重要的地位,但也有许多缺陷,比如用于选股、用于指示交易信号、指示K线形态,功能就不够强大了。因此飞狐的公式系统共分为四类,即技术指标、条件选股、交易系统、五彩K线。
 今天我们就来学习最后一讲,飞狐的选股公式、交易公式、五彩K线公式。
  一、选股公式:
  显然选股公式,就是用于选出符合条件的股票,由若干中间语句组成,并且其中不含绘图函数。只有一行输出语句,位于最后一条语句,且必须是条件表达式。
  例1:设计一个公式,选出N周期内涨幅大于或等于5%的股票。
  求解:公式代码如下,其中N为参数:
--------------------------------------------------------------------------------
N日前收盘:=ref(close,N);
选股条件:收盘价/N日前收盘&=1.05;--------------------------------------------------------------------------------
  代码解释:公式由我们所熟悉的代码组成,共3行,前2行是中间语句,最后一行是选股的条件,其中最后一行“选股条件:”,也可以不写。
  操作简介:在飞狐中,按F7,弹出如图界面。图中①可以调整参数。②可以选择在什么分析周期下选股。③可以改变选股范围,默认为A股市场。④可以让选出的股票输出到指定的板块,并将该板块设为自动板块。⑤可以指定时段进行选股,默认是对最后一天进行选股。⑥对某些公式,还可以进行成功率测试。
  在选股的操作过程中,大家可以发现,利用技术指标也可以进行选股。
  练习1:编制一个选股公式,选出RSI突破80的股票。
  思考1:建立如下选股公式,该公式的意义是什么?实际操作一下,看看有什么问题?为什么?
--------------------------------------------------------------------------------
zsp:=ref(c,1);
spj/zsp&0.95;--------------------------------------------------------------------------------
  思考2:选股操作时,当选择输出到板块时,有个自动板块的选择,起什么作用?
  思考与操作1:利用例1的选股公式,想选出最近10天,所有2天内涨幅超过5的A股板块股票。
  解疑1:某股友选股时,发现500001符合选股条件,但却选不出来,你能帮他分析一下原因吗?
  二、交易系统:
  交易系统公式(简称交易公式),用于指示满足特定条件时的买入信号和卖出信号。公式的由若干中间语句,加上指定的最后4行条件表达式代码组成,最后4行分别由“ENTERLONG: ”“EXITLONG: ”、“ENTERSHORT:”、“EXITSHORT:”开始,表示多头买入、多头卖出及空头买入、空头卖出的条件。这4行也可以删去若干行,但至少保留其中的一行,表示只指示其中一种信号。
  例2:我们来看看飞狐交易系统中的“RSI 相对强弱指标交易系统”公式,其中LL、LH是参数:
--------------------------------------------------------------------------------
LC:=REF(CLOSE,1);{LC为中间变量}
RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;{RSI为中间变量}
ENTERLONG:CROSS(RSI,LL);{多头买入条件表达式,RSI上穿LL时发出买入信号}
EXITLONG:CROSS(LH,RSI);{多头卖出条件表达,RSI下穿LH时发出卖出信号}--------------------------------------------------------------------------------
  在新建或编辑修改交易公式时,可以设定介入点的位置,如次周期中价等。设置止损条件,如目标利润止盈、最大损失止损等。
  交易公式的使用:①在K线图中,按Ctrl+F6,可以选择交易公式指示买卖信号。②在选股操作时,也可以选择交易公式进行选股。③在菜单“工具”中,还可以对交易进行“交易系统评价”、“探索最佳参数”操作。在菜单“查看”中,可以“优选交易系统”。
  此外,按Shift+W,调出公式树,可以通过鼠标把交易公式拖到K线窗口的方法,使用交易公式。试试把选股公式也拖到K线窗口,看看有何变化?说明了什么?
  当想删除在K线图上显示的各种买卖信号时,可以按Ctrl+Del或工具栏上的相应按钮实现。
  练习2:设计一个均线交易公式,当收盘价上穿5日均线时,发出多头买入信号,收盘价下穿5日均线时发出多头卖出信号。并观察设置不同的介入点介入时,指示的信号有什么变化。
  练习3:观察飞狐系统内置的各个交易公式,领会各交易公式的意义。
  三、五彩K线:
  用于表示各种K线模式。比如早晨之星、黄昏之星等。五彩K线,阳线用实心表示,阴线用空心表示。默认的五彩K线均为绿色。当出现指定的K线模式时,默认用红色表示,除非使用了颜色描述符。表达五彩K线由若干中间语句和最多六条独立的条件语句,跟选股公式不同的是,选股公式只能有一个条件表达式语句。
  例1、用五彩K线描述涨幅超过9%的K线,代码如下:
--------------------------------------------------------------------------------
c/ref(c,1)&1.09;--------------------------------------------------------------------------------
  例2、用五彩K线描述分维形态的K线,代码如下(借用注册用户社区中,清扬兄的研究成果):
--------------------------------------------------------------------------------
AA:=REF(H,N)=HHV(H,2*N+1);
AAA:=FILTER(AA,N);
BB:=BACKSET(AAA,N+1);
CC:FILTER(BB,N),COLORBLUE;
AA2:=REF(L,N)=LLV(L,2*N+1);
AAA2:=FILTER(AA2,N);
BB2:=BACKSET(AAA2,N+1);
CC2:FILTER(BB2,N),COLORMAGENTA;--------------------------------------------------------------------------------
[ 本帖最后由 宝钢主力 于
19:37 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
一、STKINDI示例代码
函数注释如下:
引用任意证券任意周期的任意指标输出
STKINDI(STKLABEL,INDINAME,INDITYPE,PERIOD)
INDITYPE为指标类型,有效值范围为(0-2),依次表示技术指标、条件选股、交易系统公式;
PERIOD为周期类型,有效值范围为(-1-11),依次表示:
当前周期、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟
例如:STKINDI('1A0001','MA.MA1',0,DATAPERIOD);
例1:引用大盘的涨跌家数。
①被引用公式,设被引用的公式名称为“涨跌家数”,其公式代码如下:
A:ADVANCE;
D:DECLINE;
②引用大盘的涨跌家数,示例代码如下:
fStkName:=if(STRCMP(STKMARKET, 'SH'),'399301','1A0001');
fAdvance:=STKINDI(fStkName,'涨跌家数.A',0,6);
fDecline:=STKINDI(fStkName,'涨跌家数.D',0,6);
说明:大盘函数advance、decline只能被大盘所使用,不能在个股中直接使用,这段代码,示范了如何利用STKINDI函数达到在个股中引用的目的。
例2:在日k线中引用本股票5分钟的obv该怎么写?
求解:代码如下
StkIndi(StkLabel,'OBV',0,2);{注意,公式的名称应使用大写字母}
二、横向统计相关函数的用法简介:
1、横向统计数据函数 ESTDATA(N),取得横向统计日线数据(1-N),仅在日线分析周期有效;
2、用法举例:
例:设计一个公式,统计当日A股板块涨停板的股票数。
3、方法如下:
①设计一个公式,判断个股是否涨停,代码如下,设公式名称是“涨停判断”:
bl:=if(STKINBLOCK('ST板块'),1.05,1.1);{如果为ST涨停为5%,否则为10%}
ztb:abs(c-intpart(ref(c,1)*bl*100+0.5)/100)&0.0001;{如果涨停返回1,否则返回0}
{注:对新股的涨停未做判断,另外个股因历史的原因,是否被ST或PT处理无法判断,因此对历史数据的判断并不准确}
②建立横向统计数据项:鼠标点菜单“管理/横向统计管理”,在“横向统计管理”对话框中,点“新增”,找到刚才设计的公式“涨停判断”。
⑴数据名称改为“涨停板”
⑵选择技术指标“涨停判断”,计算周期“日线”、指标线“ztb”为默认,不作修改。
⑶横向统计方法选“全部累加”。
⑷“计算时选择除权后的数据”不选即前面不打勾。
⑸点“设置范围”按钮,选择统计范围。
⑹置好范围后,点确定。
至此,我们就设计了一个横向统计数据项“涨停板”,在图中序号是1,则引用时是estdata(1)。
③设计一个引用“涨停板”的公式,公式代码如下,设公式的名称是zttj:
涨停板统计:estdata(1);
在K线图中,调用公式zttj,就可以看到我们所需要的结果了。
练习:如果对横向统计有兴趣的话,可以仿此,做一个跌停板统计公式。当然可以把涨停、跌停做成二合一公式。
三、如何计算当日交易分钟数:
T定义为1分钟周期图上,开盘后的交易分钟数,
1、代码之一
--------------------------------------------------------------------------------
T:=IF(BETWEEN(HOUR,9,11),(HOUR-9.5)*60+MINUTE,
& &IF(BETWEEN(HOUR,13,15),(HOUR-9.5-1.5)*60+MINUTE,240));
--------------------------------------------------------------------------------
稍加优化:
--------------------------------------------------------------------------------
T:=IF(BETWEEN(HOUR,9,11),(HOUR-9.5)*60+MINUTE,
& &IF(BETWEEN(HOUR,13,15),(HOUR-11)*60+MINUTE,240));
--------------------------------------------------------------------------------
代码解释:
如果小时数介于9和11间,返回值(HOUR-9.5)*60+MINUTE
    如果小时数介于13和15之间,返回值(HOUR-9.5-1.5)*60+MINUTE
      否则返回值240
2、观察所有的股票一天的1分钟周期图,可以发现,都是起始于9:31,结束于15:00,并且中午休市不显示,因此代码一可以简化为如下公式代码二,请自行解释代码。
公式代码二:
--------------------------------------------------------------------------------
T:=IF(HOUR&=11,(HOUR-9.5)*60+MINUTE,
& &IF(HOUR&=11,(HOUR-11)*60+MINUTE,240));
--------------------------------------------------------------------------------
3、公式代码二,在1分钟周期中,其实返回240的情况可以合并如下(为什么?)
公式代码三:
T:=IF(HOUR&=11,(HOUR-9.5)*60+MINUTE,(HOUR-11)*60+MINUTE);
整理后得到,公式代码四:
T:=IF(HOUR&12,HOUR*60+MINUTE-570,HOUR*60+MINUTE-660);
4、公式代码四,可以改写如下的公式代码五:
T1:=IF(HOUR&12,570,660);
T:=HOUR*60+MINUTE-T1;
  呵呵,570就是9.5小时对应的分钟数,660是11小时对应的分钟数。其实一开始我们就可以写出这个公式了。我在飞狐公式入门五的答贴中,提示了“用时间类的函数,例如现在是10:30的话,怎么算交易时间呢?如果‘现在’是14:00,又怎么算交易时间?”
公式代码五,是南客喜欢的表达方式,比公式代码四要多写一行,但更灵活、易于变化。
  好了,问题解决了,也该给喜欢思考的弟兄一点问题。
  问题1:在5--60分钟周期图上,设计一个计算当日交易分钟数的公式,进一步设计出量比公式。
  问题2:国内A、B股等的交易分2个时段,即上午和下午各交易2小时,在中午休市1.5小时,如果设想一个股市,一天之中,交易3个或更多个时段,当日交易分钟数的公式,又该怎么写?为了方便写公式,假设为3个时段:上午为9:30--11:30,下午为13:00--15:00,晚上为19:00--21:00。
  提示:公式改写为适用于5--60分钟周期,还需考虑当日是否停牌。为了减少难度,先不考虑停牌的情况,等公式调试成功后,再考虑如何加入判断是否停牌的条件。
四、相关系数函数CORR简单介绍及示例代码:
相关系数函数CORR,可以比较两只个股或个股与大盘的指标或价格在N周期内走势的相似程度,函数返回的数值越大,相似程序越高。
下面是最后N周期内,个股与大盘收盘价走势相似程度的示例代码:
ts0:=barssince(c);
ts1:=barslast(barssince(backset(islastbar,N+1))=0);
ts:=if(ts0&n,ts0,ts1);{上市时间短于参数N,调整叠加的基准日}
bl:=ref(IndexC/C,Ts);{确定基准日压缩比率}
fIndexC:IndexC/{按比率压缩大盘指数,以便跟个股收盘比较}
相似程度:CORR(fc,fIndexC,N),linethick0;
简单的应用方法:
1、指标作为副图指标,可通过对“相似程度”排序,找出近期走势跟大盘相似程度较高的个股。
2、也可以把代码中的IndexC换成其它作为样本的个股,找出同类走势的个股。
转贴《教育统计学》中,对相关系数的描述:
在教育研究中,常涉及到两个事物(变量)的相互关系问题,例如,学习成绩与非智力因素的关系,数学成绩与物理成绩的关系,男女生学习成绩的关系,等等。其关系表现为以下三种变化;第一,正相关:一个变量增加或减少时,另一个变量也相应增加或减少;第二,负相关:一个变量增加或减少时,另一个变量却减少或增加;第三,无相关:说明两个变量是独立的,即由一个变量值,无法预测另一个变量值。统计学中,就用“相关系数&来从数量上描述两个变量之间的相关程度,用符号“r&来表示。
相关系数取值范围限于:-1≤r≤+1
相关系数表示的意义
相关系数(r) 0.00& &0.00-±0.3& &±0.30-±0.50 ±0.50-±0.80&&±0.80-±1.00
相关程度& && & 无相关&&微正负相关& &&&实正负相关& && &&&显著正负相关& && & 高度正负相关
五、不同股票(证券)引用不同大盘指数的参考代码:
对于indexc替换成如下的index_c:
--------------------------------------------------------------------------------
index_sh_c:=
if(STKTYPE=1,&1A0002$close&,
&&if(STKTYPE=2,&1A0003$close&,
& & if(STKTYPE=3,&1B0008$close&,indexc)));{对A股、B股及基金引用不同指数}
index_sz_c:=
if(STKTYPE=1,&399002$close&,
&&if(STKTYPE=2,&399003$close&,
& & if(STKTYPE=3,&399305$close&,indexc)));
index_c:if(STRCMP(STKMARKET, 'SH')=0,index_sh_c,index_sz_c);
--------------------------------------------------------------------------------
以上代码仅考虑了A股、B股、基金,其它未作区分,可根据自己的需要进行修改。
对于indexo替换成如下的index_o:
--------------------------------------------------------------------------------index_sh_o:=
if(STKTYPE=1,&1A0002$open&,
&&if(STKTYPE=2,&1A0003$open&,
& & if(STKTYPE=3,&1B0008$open&,indexo)));
index_sz_o:=
if(STKTYPE=1,&399002$open&,
&&if(STKTYPE=2,&399003$open&,
& & if(STKTYPE=3,&399305$open&,indexo)));
index_o:if(STRCMP(STKMARKET, 'SH')=0,index_sh_o,index_sz_o);--------------------------------------------------------------------------------
对于indexh替换成如下的index_h:
--------------------------------------------------------------------------------
index_sh_h:=
if(STKTYPE=1,&1A0002$high&,
&&if(STKTYPE=2,&1A0003$high&,
& & if(STKTYPE=3,&1B0008$high&,indexh)));
index_sz_h:=
if(STKTYPE=1,&399002$high&,
&&if(STKTYPE=2,&399003$high&,
& & if(STKTYPE=3,&399305$high&,indexh)));
index_h:if(STRCMP(STKMARKET, 'SH')=0,index_sh_h,index_sz_h);
--------------------------------------------------------------------------------
对于indexl替换成如下的index_l:
--------------------------------------------------------------------------------
index_sh_l:=
if(STKTYPE=1,&1A0002$low&,
&&if(STKTYPE=2,&1A0003$low&,
& & if(STKTYPE=3,&1B0008$low&,indexl)));
index_sz_l:=
if(STKTYPE=1,&399002$low&,
&&if(STKTYPE=2,&399003$low&,
& & if(STKTYPE=3,&399305$low&,indexl)));
index_l:if(STRCMP(STKMARKET, 'SH')=0,index_sh_l,index_sz_l);
--------------------------------------------------------------------------------
对于indexa替换成如下的index_A:
--------------------------------------------------------------------------------
index_sh_A:=
if(STKTYPE=1,&1A0002$Amount&,
&&if(STKTYPE=2,&1A0003$Amount&,
& & if(STKTYPE=3,&1B0008$Amount&,indexA)));
index_sz_A:=
if(STKTYPE=1,&399002$Amount&,
&&if(STKTYPE=2,&399003$Amount&,
& & if(STKTYPE=3,&399305$Amount&,indexA)));
index_A:if(STRCMP(STKMARKET, 'SH')=0,index_sh_A,index_sz_A);
--------------------------------------------------------------------------------
对于indexv替换成如下的index_V:
--------------------------------------------------------------------------------
index_sh_V:=
if(STKTYPE=1,&1A0002$Vol&,
&&if(STKTYPE=2,&1A0003$Vol&,
& & if(STKTYPE=3,&1B0008$Vol&,indexV)));
index_sz_V:=
if(STKTYPE=1,&399002$Vol&,
&&if(STKTYPE=2,&399003$Vol&,
& & if(STKTYPE=3,&399305$Vol&,indexV)));
index_V:if(STRCMP(STKMARKET, 'SH')=0,index_sh_V,index_sz_V);
--------------------------------------------------------------------------------
六、控制语句if...then...else示例
通过参数N,控制调整均线数,代码参考如下:
input:p1(5,0,300),p2(10,0,300),p3(20,0,300),p4(30,0,300),n(4,1,4);{参数定义}
IF n&0 then MA1:MA(CLOSE,P1);{如果n&=1则输出ma1指标线}
IF n&1 then MA2:MA(CLOSE,P2);{如果n&=2则输出ma1指标线}
IF n&2 then MA3:MA(CLOSE,P3);{如果n&=3则输出ma1指标线}
IF n&3 then MA4:MA(CLOSE,P4);{如果n&=4则输出ma1指标线}
由于目前IF cond THEN expr1 ELSE expr2 中条件cond暂时只能用常数,因此,可配合主要是参数、常数函数
例2:修改成交量公式VOL,当流通盘不为零且当前周期为日以上周期时,显示换手率,代码参考如下(仿此,大家绕过指标模组,可以自行设计,“绑定”到周期、券种等的公式)
VOL,VOLSTICK;
MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);
if capital&0 and DATAPERIOD&=6 then 换手率:vol/
当切换到60分钟及以下周期,或者切换到大盘(此时流通盘=0),会发现“换手率”指标线、名称及数值都不显示。
稍加改进,使用复合语句,可适用于任意周期:
例3,修改成交量公式,流通盘不为0时,显示换手率(60分钟及以下周期,计算当日最新的换手率),代码参考如下:
PHP代码:--------------------------------------------------------------------------------
VOL,VOLSTICK;
MA1:MA(VOL,M1);
MA2:MA(VOL,M2);
MA3:MA(VOL,M3);
IF CAPITAL&0 then //如果换手率>0,则
&&IF DATATYPE&=6 then //如果周期为日及以上的较长周期,则
& & b:=VOL/CAPITAL*100
&&else //否则
&&begin //复合语句开始,即以下3条语句,视为1条语句,end表示复合语句结束
& & tj:=DAY&REF(DAY,1) or BARSSINCE(CLOSE)=0;
& & ts:=BARSLAST(tj)+1;
& & b:=SUM(VOL,ts)/CAPITAL*100;
换手率:b;--------------------------------------------------------------------------------
修改或创建这个公式后,大家会发现,只要流通盘=0,则换手率指标线就不会被显示,例如切换到大盘观察。
七、循环语句示例:移动平均线的N种写法
移动平均线的N种写法(V3.5.30828 以上版本支持)
--------------------------------------------------------------------------------
INPUT:n(5,1,300);&&//参数申明
VARIABLE:k=0;& && &//变量申明
FOR i=0 TO n-1 DO
&&k:=k+ref(close,i); //把最近 n 天的收盘价累加
MA1:k/n;& && && &&&//实现MA(C,N)
///////////////////////////////////////////
INPUT:N(5,1,300);& && &//参数申明
VARIABLE:i=0,k=0,j=0; //变量申明
FOR j=1 TO DATACOUNT DO
IF j&=n THEN
&&WHILE i&n DO&&
& &k:=k+VAR1[j-i];
& &i:=i+1;
&&MA2[j]:k/n;& && &&&//实现MA(C,N)
///////////////////////////////////////////
INPUT:N(5,1,300);& && &//参数申明
VARIABLE:i=0,k=0,VAR1:=C; //变量申明
FOR j=1 TO DATACOUNT DO
k:=k+VAR1[j];
IF j&=n THEN
&&IF j&n THEN
& & k:=k-VAR1[j-n];
&&MA3[j]:k/n;& && &&&//实现MA(C,N)
/////////////////////////////
--------------------------------------------------------------------------------
还有很多写法
还可以只计算最后1个有效数值,比如用于提高预警速度,大家练习试试
//////////////////////////////////////////////////////////
南客再附上一段历史流通盘的代码:
//说明:本公式,无法计算增发、职工股上市等情形,公式原型为原子兄用VBS设计的代码
var1:=splitdata(1)+splitdata(2);
cap[datacount]:=1;
for i=datacount downto 2 do cap[i-1]:=cap/(1+var1/10);
capi:=cap*capital/100;
历史流通盘∥万股:
drawnumber(cap&ref(cap,1) or barscount(c)=1,capi,capi,0);
八、序列数据量
所属类别: 常数函数 参数数量: 0
序列数据量。
DATACOUNT,返回序列数据数量
注意:该函数返回常数
  解说:以日周期为例,我们知道,个股的收盘价就是一个序列变量,每天都有一个数值,总共有很多个数值,到底有多少个数值?如果个股数据是完整的,数值的个数就是上市后总的有效交易天数(即K线的数量)。显然人工去点不现实,这里提供的函数,就是计算这个数据的。
  代码示例:
②在飞狐新开发的公式系统中,序列变量可以用数组表示,比如:
定义了一个序列变量fc,它等于个股所有的收盘价。请看下面代码:
第1天收盘价:fc[1];
最后1天收盘价:fc[datacount];
  想想看1:如何表示第1根K线的日期(通常是上市的日期),如果想将股票按上市日期先后排序,这个公式会很有用。
  想想看2:编写一个选股公式,选出上市天数少于N的公式。
与barscount的区别:显然,这是一个序列变量,随K线的位置不同而不同。而datacount是一个常量,不管在哪个K线的位置上,它都是同一个数值。
[ 本帖最后由 一发千钧 于
20:02 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
新增函数应用:如何遍历板块股票代码
PHP代码:--------------------------------------------------------------------------------
bk:='深圳A股';
variable:j=1,k=0,dm_len=0,lstr[6]='00000',blksum:=STKCOUNT(bk),dmstr[blksum]='';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
while j&=blksum do begin
&&dm:=NumToStr(k,0);
&&dm_len:=strlen(dm);
&&dm:=lstr[dm_len]+
&&if stkinblock(dm,bk) then begin
& & dmstr[j]:=
& & j:=j+1;
//以下是一些字符串函数及运算的综合应用
EXPLAIN(1,dmstr[1]);&&//在解盘中,输出深圳A股第1只股票的代码
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称
EXPLAIN(1,'深圳A股第4只股票的代码是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盘价:'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------
  如果您有编程的功底,上面代码一看就明白,但对没有编程经验的狐友们来说就不容易了。下面尽量详细地对思路和公式代码做一些解说,并对代码进行适当扩展。
  1、所谓遍历股票代码,就是能够访问某板块中所有的股票代码,如果连访问都不能实现,怎么做一些更加强大的诸如横向统计、排序的功能?
  2、上面的公式代码是以深圳A股板块为例,我们看看深圳A股的股票代码,它们都是很有规律的,0002、...、,请注意这些代码的特征:
  ①股票代码要理解成字符串,而不是数值,如果是数值的话,股票代码就成了1、2、...、999、。
  ②这些代码如果转换成数值,大体集中在某个数的范围,如上面所示,深圳A股代码的数值目前都小于1896,代码的数值大多都是呈递增1的规律,少量有跳跃的情况,比如000040跳到0041不存在。
  因此,我们初步可以设计一个循环
PHP代码:--------------------------------------------------------------------------------
while j&=1896 do
--------------------------------------------------------------------------------
  上面这段代码,是个循环,每次循环都执行一次由begin和end所包围起来的语句,这里只有一条语句即j:=j+1,目的让变量j从1每次循环都递增1,直到j=1896为止。
  j:=j+1这条赋值语句,初次接触的话不大好理解,大意是这样,右边的j比如现在等于2,这条语句是让右边的j现有的数值加上1,然后再送回到变量j之中,执行完这条语句后,j就由2递增1变成了等于3。
  j:=j+1,看起来有点象计数器的功能吧?每循环一次,计数器就增加1,因此也可以称变量j为计数器(变量)。
  好了,思路敏捷的狐友,马上就能想到,这个计数器会生成从0到1896总共1897个数值,如果进行转换,也就是把数值转换成字符串,则深圳A股所有的股票代码都包含在里面了。
  呵呵,的确是这样,因此我们设计下面一个稍加改进的循环,来逼近我们要完成的任务:
PHP代码:--------------------------------------------------------------------------------
while j&=1896 do
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
EXPLAIN(islastbar,dm); //当处在最后一根K线位置时,输出字符串dm的内容--------------------------------------------------------------------------------
  最后一行代码,是用解盘函数输出字符串变量dm的结果,我们可以在“解”中观察,不过这里由于dm是单值变量,不是序列变量,只能保存最后的一次结果,因此只能观察到结果是1896。
如果想观察其它的结果,只好改循环首语句,比如:
while j&=1 do
 大家可以发现这些结果,还有一点小问题,没有前导的0,即我们要的是01896,而不是1、1896这样的字符串,怎么办呢?
  给它们的前面加上0就可以了,但加上0的个数有讲究的,比如1在前面要加上5个0,1896前面只需加上2个0,很明显,要加的0的个数,等于6减字符串的字符个数。因此,设计公式代码如下:
PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';//定义一个数组lstr[6],共6个元素,并让所有6个元素初始都等于字符串'00000'
//下面对字符串数组lstr[]第2至第6个元素重新进行赋值,以便巧妙应用
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
while j&=1896 do
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
&&dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
&&dm:=lstr[dm_len]+&&//由dm的长度,确定应该给dm的前面加上多少个字符0
EXPLAIN(islastbar,dm); //当处在最后一根K线位置时,输出字符串dm的内容--------------------------------------------------------------------------------  对这行代码稍加解释:dm:=lstr[dm_len]+dm,如果某次循环右边的dm等于'19',则它的字符串长度为dm_len等于2,则这行代码此时等价于dm:=lstr[2]+dm,而lstr[2]等于'0000',结果就是在'19'的前面加上4个字符'0'即成了'000019',然后再把'000019'赋值给dm,于是左边的dm就等于'000019'
  到此为止,我们只是实现了所生成的字符串,可以让深圳A股的代码全部被包含在其中,但还有大量的“废”字符串,我们要把没用的字符串过滤掉。取出我们真正需要的。  要用到的函数  ①stkinblock(dm,bk),函数注释:如果股票代码dm从属于板块bk,则函数返回数值1,否则返回数值0  ②条件控制语句IF cond THEN expr1 ELSE expr2,意思是:当满足 cond 条件的时候,执行语句 expr1,否则执行 expr2 语句  设计代码如下:PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
bk:='深圳A股'; //bk赋值为字符串'深圳A股'
while j&=1896 do
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
&&dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
&&dm:=lstr[dm_len]+&&//由dm的长度,确定应该给dm的前面加上多少个字符0
&&if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句
& & dm1:=&&//真正需要的股票代码是这里的dm1
EXPLAIN(islastbar,dm1); //当处在最后一根K线位置时,输出字符串dm1的内容--------------------------------------------------------------------------------
公式代码设计到这里似乎可以结束了,因为我们要的结果都可以生成了。其实还有改进的余地:  ①dm1只是个单值的字符串变量,它只能保存最后的结果,而不能保存所有的结果。这里考虑使用数组,数组可以自行定义很多个元素,让每个元素保存一个结果。  ②循环首的j&1896总觉得不对劲,不够智能化,比如将来“深圳A股”板块最后的代码不是0001896,则这段公式代码的结果就不对了。  针对以上问题,设计公式代码如下: PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;&&//记录循环次数的计数器
k:=1;&&//记录股票代码的个数的计数器
bk:='深圳A股'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量
variable:dmstr[blksum]='';&&//定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do&&//当计数器k&=blksum时,执行以下循环
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
&&dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
&&dm:=lstr[dm_len]+&&//由dm的长度,确定应该给dm的前面加上多少个字符0
&&if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句
& & dmstr[k]:=&&//真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
& & k:=k+1;&&//记录找到的股票代码的个数
&&j:=j+1;&&//记录循环的次数
EXPLAIN(islastbar,dmstr[1]); //当处在最后一根K线位置时,输出深圳A股第1只股票的代码--------------------------------------------------------------------------------
  有了以上公式,我们就可以把范围扩大,比如遍历'A股板块'的所有股票代码,很简单,只需改一条语句,即把 bk:='深圳A股' 改成 bk:='A股板块'。  公式代码如下(且慢执行,等下面的解说):PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;&&//记录循环次数的计数器
k:=1;&&//记录股票代码的个数的计数器
bk:='A股板块'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量
variable:dmstr[blksum]='';&&//定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do&&//当计数器k&=blksum时,执行以下循环
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
&&dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
&&dm:=lstr[dm_len]+&&//由dm的长度,确定应该给dm的前面加上多少个字符0
&&if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句
& & dmstr[k]:=&&//真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
& & k:=k+1;&&//记录找到的股票代码的个数
&&j:=j+1;&&//记录循环的次数
EXPLAIN(islastbar,dmstr[1]); //当处在最后一根K线位置时,输出字符串深圳A股第1只股票的代码--------------------------------------------------------------------------------  假如你试图执行这段代码,你会发现好慢哦~~  为何会这样?因为从深圳A股切换到上海A股的股票代码时,是从1896跳跃到600000,中间有508104次空循环,这中间没有一个代码是真正的股票代码,因此可以这样来提高循环的执行效率,在公式代码中插入如下几行代码:if j=1896 then j:=599999;if j=600999  优化后的代码如下: PHP代码:--------------------------------------------------------------------------------
variable:lstr[6]='00000';
lstr[2]:='0000';lstr[3]:='000';lstr[4]:='00';lstr[5]:='0';lstr[6]:='';
j:=0;&&//记录循环次数的计数器
k:=1;&&//记录股票代码的个数的计数器
bk:='A股板块'; //bk赋值为字符串'深圳A股'
blksum:=STKCOUNT(bk); //板块所包含证券数量
variable:dmstr[blksum]='';&&//定义一个字符串数组用于记录股票代码,元素个数为blksum,初始值为空
while k&=blksum do&&//当计数器k&=blksum时,执行以下循环
&&dm:=NumToStr(j,0);&&//把数值j转换成字符串并赋值给变量dm,保留小数位数0
&&dm_len:=strlen(dm); //求出dm的长度,并赋值给变量dm_len
&&dm:=lstr[dm_len]+&&//由dm的长度,确定应该给dm的前面加上多少个字符0
&&if stkinblock(dm,bk) then //如果股票代码dm属于bk,则执行下面由begin、end包含的语句
& & dmstr[k]:=&&//真正需要的股票代码,记录到字符串数组dmstr的第k个元素中
& & k:=k+1;&&//记录找到的股票代码的个数
&&if j=1896 then j:=599999;&&//计数器j直接跳到到上海A股对应的最小代码
&&if j=600999&&//如果记录到这个代码则跳出循环
&&j:=j+1;&&//记录循环的次数
//以下是一些字符串函数及运算的综合应用
EXPLAIN(1,dmstr[1]);&&//在解盘中,输出深圳A股第1只股票的代码
EXPLAIN(1,stknameex(dmstr[2]));//第2只股票的名称
EXPLAIN(1,dmstr[3]+stknameex(dmstr[3]));//第3只股票的代码及名称
EXPLAIN(1,'深圳A股第4只股票的代码是:'+dmstr[4]);
EXPLAIN(1,dmstr[5]+'最后收盘价:'+numtostr(close,2));
EXPLAIN(1,'深圳A股共有股票:'+numtostr(blksum,0)+'只');--------------------------------------------------------------------------------  这行代码 if j=600999 then break 有什么用?以防万一,如果有人改了市场规则,把500001之类的股票计入上海A股的话,这里的循环会出不来的,会造成电脑死循环,飞狐长时间没有响应。 以上公式代码,只是个示例,效率不太高,如果能有个方法,直接给出板块中所有的股票代码,那就不需要这段公式代码。  给出这个示例,是想通过大致解剖整个公式代码的设计过程,让大家对循环、条件语句有个初步的认识。  最后,给大家个练习的机会:  1、修改上述代码,计算“A股板块”的成交量(这就是横向统计了)  2、以上公式代码,使用的是while循环,有办法改成fox循环吗?(当心,在修改代码的过程中,如果不慎的话,有可能造成死循环,对于win9x操作系统,也许很难退出,对于NT以上操作系统,可以强行退出)  3、高级问题:通过以上代码,可以做出横向排序,不过建议不要用代码本身来实现排序(会很慢的),应使用今天发布的新函数SORTPOS(X,D,N1,N2)来实现。  4、借用论坛的一个问题:ff:=barslast(date=1030107);周期:=5;VERTLInE(ff=0 or ff=周期*1 or ff=周期*2 or ff=周期*3 or ff=周期*4 or ff=周期*5or ff=周期*6 or ff=周期*7 or ff=周期*8 or ff=周期*9 or ff=周期*10or ff=周期*11 or ff=周期*12 or ff=周期*13 or ff=周期*14 or ff=周期*15or ff=周期*16 or ff=周期*17 or ff=周期*18 or ff=周期*19 or ff=周期*20or ff=周期*21 or ff=周期*22 or ff=周期*23 or ff=周期*24 or ff=周期*25or ff=周期*26 or ff=周期*27 or ff=周期*28 or ff=周期*29 or ff=周期*30or ff=周期*31 or ff=周期*32 or ff=周期*33 or ff=周期*34 or ff=周期*35or ff=周期*36 or ff=周期*37 or ff=周期*38 or ff=周期*39 or ff=周期*40),POInTDOT;  把以上代码,改成用循环表示。  5、一个数列定义如下:f[1]=1,f[2]=1,f[n]=f[n-1]+f[n-2],你能用循环计算出f[10]等于多少吗?这个数列是很有名的,许多股票预测都会用到它。  呵呵,具体我也记不住了,谁能告诉我它叫什么?
[ 本帖最后由 宝钢主力 于
19:42 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
...........
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
VBS入门续:条件语句
VBS入门续:条件语句
条件语句是程序中的最基本、最重要的语句之一,今天通过一个简单实例学习条件语句。
问题:设计一个指标,除首日外,如果当日涨停(设10%为涨停),则公式输出1,否则输出0。
公式代码:
vc=ffl.vardata(&fc&)
vn=ffl.vardata(&n&)
vs=ffl.vardata(&js&)
last=ubound(vc)
for i=last to 1 step -1
if vc(i)&=vn*vc(i-1) then
ffl.vardata(&fc&)=vc
VBS程序条件语句部分解释,参阅VBS帮助文件,如下代码为条件语句:
if vc(i)&=vn*vc(i-1) then&&----如果...则,这里的条件是判断当日涨停否
& & vc(i)=1& && && && && && && && && &&&----vc(i)赋值1
else& && && && && && && && && && && && &&&----否则
& & vc(i)=0& && && && && && && && && &&&----vc(i)赋值0
end if& && && && && && && && && && && &&&----条件语句结束
[ 本帖最后由 宝钢主力 于
19:45 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
飞狐基本函数简介之指标线形描述函数
这一组中的函数,全部不能单独使用,一定要和其它指标一起用才能发挥效力,因为它们都是描述其它指标的。
指标在主图或副图中的显示,主要分为棒状(柱状)和线状两种。这一组中的函数,全部是为了指挥指标的显示而设计的。
掌握好这组函数,可以使指标输出显示丰富多彩,色彩缤纷。
使用的一般形式:
指标,描述函数1,描述函数2,...;
函数: STICK
说明: 画棒状线
STICK的英文是棍、棒的意思。
一般指标的显示,在软件中默认是线状的。即如果不加指标线形描述函数,则指标以线状的形式输出显示。
0.98*L;{主图叠加}
如加上棒状线的描述,则变成这样了:
0.98*L,STICK;{主图叠加}
一般的信号,不加描述函数,会成箭头状。加了STICK之后,就成棒状了。
副图1公式:  C&REF(C,1) AND C&REF(C,2);
副图2公式:  C&REF(C,1) AND C&REF(C,2),STICK;
我个人调试公式的体会,还是副图1的显示清楚,因为可以看到连续信号的出现。
函数: COLORSTICK
说明: 以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色
这样零轴就如楚汉交界,泾渭分明了。
C-REF(C,1),COLORSTICK;{副图指标}
函数: LINESTICK
说明: 同时画棒状线与指标线。
LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。
A:=C-REF(C,1);
A,LINESTICK;{不作说明,都认为是副图指标}
那么,即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,怎么写公式呢?这样行吗?
A:=C-REF(C,1);
A,LINESTICK,COLORSTICK;
各位可以自己试一下,结论是否定的。结果是只有彩色柱,没有指标线了。
这样我们初步可以得出一个结论:在同一个指标中,有多个相同性质的描述函数时,软件只认最后一个描述函数。
即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,可以用分开的两句语句来达成目标:
A:=C-REF(C,1);
A,LINESTICK;
A,COLORSTICK;
函数: VOLSTICK
说明: 画成交量柱状线。
这是专门为显示成交量设计的。
股票软件不同,显示成交量的阴阳线是很不同的。总的来说,是根据价来定的,具体方法各有不同,很难说哪种方法就好了,哪种方法就不好了。
飞狐中的方法是这样的:今天的收盘价大于昨天的收盘价,显示阳柱;小于等于则显示阴柱。
函数: CROSSDOT
说明: 画叉状线或x状线。
呵呵,叉状线和X状线有什么区别?应该是一样的吧。
CROSS是交叉,DOT是点。
当指标线连续性较好时,显示交叉点比较顺眼。连续性不好时,看起来比较凌乱。
0.98*L,CROSSDOT;
MA(C,30),CROSSDOT;{主图叠加}
函数: CIRCLEDOT
说明: 画小圆圈线
CIRCLE,圆圈。把CROSSDOT的X显示换成圆圈的样子。如果结合后面的COLOR函数一起用,可以画出不同颜色的圈圈,有时也比较实用。
函数: POINTDOT
说明: 画点状线
POINT是点、加点的意思。这个点状线,在K线显示数不多的情况下,看起来太小了。正因如此,在K线显示数较多的情况下,就可以弥补CIRCLEDOT显示太大的缺陷。
0.98*L,CIRCLEDOT;
MA(C,30),POINTDOT;{主图叠加}
函数: SHIFT
参数: 1--127
说明: 指标线向后(向右)偏移x个周期
示例: ma1:ma(close,5),shift3;将MA1指标线向后偏移3个周期
SHIFT,移位。这是个飞狐比较有特色的的特色函数。
以以下公式为例子:
MA(C,30),POINTDOT,SHIFT5;{主图叠加}
要注意两个问题:
1、移位后的指标显示数值和不移位时的数值是不一样了。移位了五个时间单位,就显示五个时间单位之前的原数值。
2、所移位的周期数,不能设为参数来调整。移位的最大周期数是127。如果写成SHIFT666,调试公式也能通过,不过软件自动取了127来移位。
另外说点题外话。
用SHIFT10之后,当前日的指标显示的就是原10天前的指标数值。也就是说,把最近十天的K线数据,置之不理了。
从人的记忆的特征来看,越近发生的事,对目前的影响力就越大。这样看,用SHIFT就一无是处了,因为它抛弃了最近的数据,而去找较早的数据。
从混沌学牵一发就能动全身的观点看,SHIFT就大有道理了。佛教中说前世的因,后世的果,相差时间就长得不好说了。
这些讨论一般难得见到。易股论坛中有位台--湾的老兄,发了两帖,来讨论K线左移(或者说是指标线右移),我才留心了一下。巫山的朋友有体会的,不妨说说。
函数: LINETHICK
参数: 0--7
说明: 改变指标线粗细,LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值。&&
示例: ma1:ma(close,5),linethick3;
ma1:ma(close,5),linethick0;表示不画出ma1指标线,不影响坐标,但可在顶部显示ma1数值
THICK,厚的。LINETHICK就可以理解为线(棒)的粗细了。
V,STICK,LINETHICKN;
N分别取1、2、3、4、5、6、7,做七个副图公式。
这个N也不能做成参数调整的。
LINETHICK0是非常常用的,因为一个公式中指标一多,显示会很乱,把有些显示去掉,就用这一招。
有时会碰到相反的情况,指标线(柱)显示不多,而顶部数值的显示太多了,那么怎么画出指标线,而又在顶部不显示数值呢?
一般用STICKLINE(画柱),PARTLINE(画线)等绘图函数来解决。
PARTLINE(1,MA(C,30));{主图叠加}
函数: COLOR
参数: 000000--FFFFFF
说明: 改变指标线颜色。
常用: 黑色:colorblack 红色:colorred&&绿色:colorgreen 蓝色:colorblue
    白色:colorwhite 灰色:colorgray 黄色:coloryellow 青色:colorcyan
    晶红色:colormagenta 棕色:colorbrown
示例: ma1:ma(close,5), 或 ma1:ma(close,5),colorff0000;
附录: 238种常用颜色代码速查表
COLOR,颜色,色彩。是这组函数中最常用的一个。不但能定义指标线(柱)的颜色,而且能定义顶部指标文字的颜色--用LINETHICK0时也一样。
颜色的种类应该够用了。至于各指标线(柱)之间的颜色搭配,实在是一种很艺术性的事。既要有美感,又要不触目惊心,我只能凭感觉挑选,其它也没有什么招数了。要是有学过美术的人来指点几招就好了。
枫叶秋雨兄提供的“飞狐色彩值吸取器”,实在是好东西,给我们挑选颜色提供了很大的方便。
[ 本帖最后由 宝钢主力 于
19:50 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
飞狐基本函数简介之行情函数
这些行情函数所取得的数据,是我们所编写的公式的原材料。
如果说公式是衣服,这些行情函数就是布。
有人会说做衣服不一定要布,野草树皮也可以做。对,一个公式中不一定非有行情函数不可,但总感觉透风,缺点什么。
函数: OPEN
说明: 取得该周期开盘价,也可简写为 O.
函数: HIGH
说明: 取得该周期最高价,也可简写为 H.
函数: LOW
说明: 取得该周期最低价,也可简写为 L.
函数: CLOSE
说明: 取得该周期收盘价,也可简写为 C.
OPEN,打开。HIGH,高度。LOW,低的。CLOSE,关闭、结束。
常言道,巧妇难为无米之炊。此四者,就是我们做价格指标的“米”了。不同周期的K线,均由此四者为原材料画出。
(有人说,家里的米没有味道,于是去割野菜,采野花,日子一长,又说还是家里的米能填饱肚子。)
有人说,价、量、时、人是技术分析的四大要素,那么O、H、L、C便构成了“价”的四大要素。
道氏理论,主要关注的是长期趋势,所以,一般以CLOSE线为主要参考指标。所取前期高、低点,也是CLOSE线的高、低点。
人的心理,常以成败论英雄。所以CLOSE作为一根K线中的“结局”,被视为价格四大要素中的最关键因素。此论似成通论,但有些短线炒手认为,OPEN要比CLOSE更重要。股市本是无定论的地方,仁者见仁,智者见智,故不敢多作妄论。
这里随便谈些本人对未来函数和未来数据的看法。关于未来也者,在较为经典的书上很少直接见到这种说法,只是在网上见得多了,便有了些想法,说出与大家共同探讨。
如图,一般带公式平台的股票软件,有“公式检测”这一项,用来判断公式中是否含有未来函数。
目前的信号的产生和保持,如果全依赖于之前的数据,则可认为产生信号的公式中,不含有未来函数和未来数据。
目前的信号的产生和保持,如果部分依赖于之后的数据,则可认为产生信号的公式中,含有未来函数和未来数据。
换句话说,如果公式中产生的信号,随着行情的发展,信号永远不变,则此公式就绝无“未来”之嫌疑;信号可能要逃、要变,则此公式中就有“未来”。
如果此定义成立,则可将“未来”分为两种情况:
1、在一根K线(即时行情)中;
2、在多根K线(盘后)中。
在第一种情况中,以即时行情中的当前日K线为例,除了O之外,其它H、L、C全有未来之嫌。因为在收盘之前,拉高、打压是司空见惯的事,谁也不能保证H、L不会创出当天的新高和新低,更不用说C了。比如日线周期公式“C&REF(C,1);”,前一分钟信号成立,后一分钟可能信号就不成立了。这样说的话,在日K中包括H、L、C的指标,就全有“未来”之嫌疑了。
还有就是引用进来的信号,比如引用了周K和月K指标,因为当前周K和月K还在变动之中,所以也是未来数据。
在第二种情况中,因为在盘后,日K中的四大要素就没有未来之可能了。在多K线中,典型的未来函数有两个:BACKSET、ZIG。这两个未来函数到底未来到什么程度,到以后介绍时再说。就算在盘后,除了周五之外,引用的周K指标也是未来数据;除了在月末,引用的月K指标也是未来数据。
这样说的话,到处是“未来”,我们何处适从?
实际上未来也者,并不是新问题,而是老问题,从有技术分析之日起,这个问题就存在了,只是在经典著作中,并不是以“未来”的字眼出现。
“我们所采取的交易风格越保守,那么,耐心地等待趋势反转的验证信号就越为重要。到底需要等待多久呢?这就得从风险与报偿两个方面来权衡。如果我们选择较为保守的交易风格,宁愿等待趋势反转的验证信号,那么,确实可能承担较少的风险;但是另一方面,我们从交易中取得的报偿也可能减少了。等到趋势反转信号得到确认的时候,获利的空间也许已经缩小了。”
(<日本蜡烛图技术>P.159)
所以说即时行情中的“未来”也一样,体现的是技术分析中最古老的一个问题。
而多K线中的未来数据,是要好好注意的。如果在ZIG的低点买进,在ZIG的高点卖出,则是全世界最好的交易系统了--可惜是马后炮,因为当时谁也做不到这一点。但也不能说BACKSET、ZIG就一无是处了,有时甚至是不可或缺的。刀剑可能自伤,也可用于杀敌。只要我们熟悉了BACKSET和ZIG的本质,就可以了解它们“未来”到什么程度,拿来用也是不妨的。至于不熟悉的,还是少用为妙。
函数: VOL
说明: 取得该周期成交量,也可简写为 V.
函数: AMOUNT
说明: 取得该周期成交额
VOLUME,量。AMOUNT,数量、总计。
成交量系统默认单位是手(一百股)。成交额系统默认单位是元(A股和基金是人民币、沪B股是美元、深B股是港元)。
成交量是仅次于价格的技术分析要素。成交额因为里面有价量因素,有些高手应用时喜欢用之代替成交量。
成交金额万元:AMOUNT/10000,LINETHICK0;
成交量手:VOL,VOLSTICK;
流通盘万股:CAPITAL/100,LINETHICK0;
换手率:100*V/CAPITAL,LINETHICK0;
函数: ADVANCE
说明: 取得该周期上涨家数。(本函数仅对大盘有效)。
参数: DECLINE
说明: 取得该周期下跌家数。(本函数仅对大盘有效)。
ADVANCE,前进。DECLINE,下降。
用于上证指数和深圳成指。
A:=ADVANCE-DECLINE;
SUM(A,50);
这个线形状与指数C线有些不同,反映的是不加权的情况。
函数: BUYVOL
说明: 取得主动性买单量。 当本笔成交为主动性买盘时,其数值等于成交量,否则为0. (本函数仅个股在分笔成交分析周期有效)&&
函数: SELLVOL
说明: 取得主动性卖单量。当本笔成交为主动性卖盘时,其数值等于成交量,否则为0. (本函数仅个股在分笔成交分析周期有效)&&
BUY,买。SELL,卖。VOL,VOLUME,量。
在分笔成交分析周期中看:
主动性买单量:BUYVOL;
主动性卖单量:SELLVOL;
之和:BUYVOL+SELLVOL;
总成交量:V;
两者之和必然为总成交量。所以说每笔之成交量,不是主动性买单量,就是主动性之卖单量。
主动性买单量代表多方的力量,主动将挂在卖盘档位的单子吃进,主动性卖单量则反之,代表的是空方的力量。
至于庄家对倒诱空诱多之动作,长期看另当别论,但在当时,确实也代表了多空之一方。
每日之SUM(BUYVOL,0)之类的数据,不能在其它周期中引用,要做成扩展数据才可。
函数: ISBUYORDER
说明: 取得该成交是否为主动性买单。当本笔成交为主动性买盘时,返回1,否则为0. (本函数仅个股在分笔成交分析周期有效)&&
ORDER,定单。BUYORDER,买单(不是请客吃饭后的买单!)。
在分笔成交分析周期中可以看到,任一笔成交的单子,不是主动买单,就是主动卖单。
主动买单:ISBUYORDER;
主动卖单:NOT(ISBUYORDER)*0.5;
这也就是没有ISSELLORDER函数的原因,因为用NOT(ISBUYORDER)就可以取得相同功能。
函数: BIDPRICE(N)
参数: N取1--3,表示买盘档位。
说明: 取得委买1--委买3价格。(本函数仅个股在分笔成交分析周期有效)
示例: BIDPRICE(1)
    表示最高叫买价。
函数: BIDVOL(N)
参数: N取1--3,表示买盘档位。
说明: 取得委买1--委买3量。(本函数仅个股在分笔成交分析周期有效)
示例: BIDVOL(1)
    表示最高叫买量。
BID,出价、投标,这里是买进报价的意思。PRICE,价格。
有人可能会说:图中不是有委买8的单子么?呵呵,那是推算出来的,撤单了亦未可知。
函数: ASKPRICE(N)
参数: N取1--3,表示卖盘档位。
说明: 取得委卖1--委卖3价格。(本函数仅个股在分笔成交分析周期有效)
示例: ASKPRICE(1)
& && &表示最低叫卖价。
函数: ASKVOL(N)
参数: N取1--3,表示卖盘档位。
说明: 取得委买1--委买3量。(本函数仅个股在分笔成交分析周期有效)
示例: ASKVOL(1)+ASKVOL(2)+ASKVOL(3)
& && &表示三档卖盘量总和。&&
ASK,询问、要求,这里是卖出报价的意思。
副图公式一:
委买总量:BIDVOL(1)+BIDVOL(2)+BIDVOL(3);
委卖总量:ASKVOL(1)+ASKVOL(2)+ASKVOL(3);
副图公式二:
卖一买一空档:ASKPRICE(1)-BIDPRICE(1);
编仅个股在分笔成交分析周期有效的公式时要注意,编好了之后,公式的“禁用周期”就自动设置为如图的样子。
如果以后要把这个公式修改为其它周期的公式时,不可忘记把“禁用周期”中的设置改过来,否则公式指标输出会没有显示。
[ 本帖最后由 宝钢主力 于
19:54 编辑 ]
积分65813&理想币45613 个&彩币12 个&共享币262 个&注册时间&
理想大四级同学(菠菜一段)
还需要 14187 积分才能升级
飞狐基本函数简介之绘图函数
这组函数的功能是在主图或副图上设定条件输出图象、图标、直线、文字、数字、指标线、指标柱等,全部可以单独使用。
个人感觉,飞狐的强大功能,在此组函数中有淋漓尽致的发挥。无论在表面(美感),还是实质(提高工作效率)上,都有良好表现。
毫无例外的是,这组函数中,都带有COND。CONDITION,条件,状态。COND在这里可作为条件理解。
为了能找到合适的COND,用于举例子,请允许我先介绍一组概念。
高点:在2N+1根K线中,中间这根K线的H,要大于等于左右N根K线的H。在N+1根K线中,有等高点出现,取最先出现的。
低点:在2N+1根K线中,中间这根K线的L,要小于等于左右N根K线的L。在N+1根K线中,有等低点出现,取最先出现的。
峰点:高点和低点,合称为峰点。
(这个定义,意合于技术分析的老祖宗道氏:“只要平均指数的最高点超过了前期的最高点,它就处于牛市时期;当最低点低于前期的最低点时,它处于熊市时期。”这里我们撇开向上、向下分形和分形峰状点等概念,以免把概念复杂化。)
也为了不让公式一来就过于复杂,我们先取N为2来做公式。简介到后面,可以看到,N是可以作为峰点公式的参数进行调整的。
公式名称:FENG2
公式说明:供引用
公式内容:
{峰点参数暂定为2}
A:=REF(H,2);{中间K线的最高价}
B:=A&=REF(H,4) AND A&=REF(H,3) AND A&=REF(H,1) AND A&=H;{中间K线的最高价大于等于两边共四根K线的最高价}
D:=BACKSET(B,3);{将当前位置和之前2个周期的数值设为1}
HD:FILTER(D,2);{找到高点后,过滤掉其后2周期内可能出现的等高点。输出高点}
A2:=REF(L,2);{中间K线的最低价}
B2:=A2&=REF(L,4) AND A2&=REF(L,3) AND A2&=REF(L,1) AND A2&=L;{中间K线的最低价小于等于两边共四根K线的最低价}
D2:=BACKSET(B2,3);{将当前位置和之前2个周期的数值设为1}
LD:FILTER(D2,2);{找到低点后,过滤掉其后2周期内可能出现的等低点。输出低点}
{后面有些例子,就从这个公式中引用信号。}
函数: DRAWICON
用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
说明: 在图形上绘制小图标,其中TYPE可选7种图标,编码为1-7(1-3为小脸,4、5为上下箭头,6、7为红绿小旗)。TYPE为    字符串时可显示用户自制BMP图。
示例: DRAWICON(CLOSE&OPEN,LOW,1);表示当收阳时在最低价位置画1号图
    DRAWICON(C&O,L,'MyBMP')表示当收阳时在最低价位置画FmlDLL子目录下的自制图标MyBMP.BMP
1、COND条件,一般是指判断的结果,不是0就是1。如用其它数据,大于等于1的,条件满足;小于1,条件就不满足。
2、TYPE图标,现在已经有12种,用下面的公式,在000829上可以全部显示出来。当TYPE取大于等于12的数时,都显示黄球。
当TYPE取0时,显示的是笑脸(这个公式中没有做进去,自己可以试一下)。
B:=&FENG2.HD&;
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
A:=D&REF(D,1);
DRAWICON(REF(A,1),1.05*H,1);
DRAWICON(REF(A,2),1.05*H,2);
DRAWICON(REF(A,3),1.05*H,3);
DRAWICON(REF(A,4),1.05*H,4);
DRAWICON(REF(A,5),1.05*H,5);
DRAWICON(REF(A,6),1.05*H,6);
DRAWICON(REF(A,7),1.05*H,7);
DRAWICON(REF(A,8),1.05*H,8);
DRAWICON(REF(A,9),1.05*H,9);
DRAWICON(REF(A,10),1.05*H,10);
DRAWICON(REF(A,11),1.05*H,11);
DRAWICON(REF(A,12),1.05*H,12);
DRAWICON(REF(A,13),1.05*H,13);
DRAWICON(REF(A,14),1.05*H,100);{主图叠加}
当红球和绿球连续显示时,立体感会强一些。
DRAWICON(C&=MA(C,30),MA(C,30),10);
DRAWICON(C&MA(C,30),MA(C,30),11);{主图叠加}
3、PRICE是用于定位图标的位置的。一般用1.01*H,或者0.99*L等。现在可用ALIGN(0-5)指定对齐位置。
用这个公式来试(主图叠加)
B:=&FENG2.HD&;
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
A:=D&REF(D,1);
E:=REF(H,1);
DRAWICON(A,E,10),ALIGN0;
DRAWICON(A,E,11),ALIGN1;
DRAWICON(A,E,12),ALIGN2;
DRAWICON(A,E,3),ALIGN3;
DRAWICON(A,E,4),ALIGN4;
DRAWICON(A,E,5),ALIGN5;
可以初步得出结论:
ALIGN0:信号出现在PRICE的正中;
ALIGN1:信号出现在PRICE下边(十分靠近);
ALIGN2:信号出现在PRICE上边(十分靠近);
ALIGN3:信号出现在主图的中间;
ALIGN4:信号出现在主图的最上边;
ALIGN5:信号出现在主图的最下边;
在高低点上作图标,可以使高低点更明确了。
A:=&FENG2.LD&;
B:=&FENG2.HD&;
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;{主图叠加}
4、可以自由调用MyBMP.BMP图到显示位置,大大增强了输出的效果。你只要看到好看的图,可以随时抓拍过来,做成BMP文件,放到FmlDLL子目录下,就可以调用了。
A:=&FENG2.LD&;
B:=&FENG2.HD&;
DRAWICON(A,L,'PIG'),ALIGN1;
DRAWICON(B,H,'PIG'),ALIGN2;{主图叠加。如果你没有PIG.BMP文件,则不可显示。}
DRAWICON(1,MA(C,5),'S28');
DRAWICON(1,MA(C,10),'S31');
DRAWICON(1,MA(C,20),'S14');
DRAWICON(1,MA(C,30),'S25');{主图叠加。如果你想要这个公式有显示,可到楼下下载,解压缩到FmlDLL子目录下}
内有40个不同颜色的小球。
函数: DRAWLINE
用法: DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。&&
说明: 在图形上绘制直线段。
示例: DRAWILINE(HIGH&=HHV(HIGH,20),HIGH,LOW&=LLV(LOW,20),LOW,1);表示在创20天新高与创20天新低之间画直线并且向右延长。
DRAWLINE是唯一一个一句里面用到两个COND的绘图函数。因为它需要两个点来决定一直线。
COND1相当于指定K线位置(横坐标),PRICE1相当于是指定价位(纵坐标),这样一个点在平面上的位置就决定了。
DRAWLINE是从第一点画到第二点的,即有起点与终点的顺序关系:第一点出现的时间,要在第二点之前。否则线是画不出来的。
EXPAND,扩张、发展,这里是延伸的意思吧。一般取0,不延长;取1,延长。实际上是取大于等于1的数就延长,小于1就不延长。
DRAWLINE目前支持POINTDOT、LINETHICK、COLOR、SHIFT这四个描述函数。
举个例子吧。
A:=&FENG2.LD&;
B:=&FENG2.HD&;
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E:=D&REF(D,1);
F:=BACKSET(E,REF(BARSLAST(B),1)+2);
G:=F&REF(F,1);
DRAWLINE(G,H,E,H,1),pointdot,linethick1,{主图叠加}
这根线有些趋势线的意思了。由于趋势线的主观性颇强,只有多设参数才能满足多数人的要求,以后有机会再作介绍。
DRAWLINE画出的线,应该比手工画出的线精确一些。(DRAWLINE画线的灵敏度,要比手工画线低,所以说DRAWLINE画出的线精确,就未必对。)
主要用于画斜线,水平线我们一般可以另想办法。因为在图中显示直线,并非DRAWLINE的“专利”。
A:=&FENG2.LD&;
B:=&FENG2.HD&;
D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1);
E:=D&REF(D,1);
F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
G:=F&REF(F,1);
前高:REF(H,BARSLAST(G));
前低:REF(L,BARSLAST(E));{主图叠加}
这里出个“难题”吧:
怎么在主图上画一根直线?直线的高度是今天收盘价。就是这个样子的:
函数: DRAWTEXT
用法: DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT,可显示多行文本,用&\n&换行。
说明: 在图形上显示文字。
示例: DRAWTEXT(CLOSE/OPEN&1.08,LOW,'大阳线');表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
DRAWTEXT(CLOSE/OPEN&1.08,LOW,'好呀\n大涨啦');可显示多行文本,用&\n&换行;
在某些满足条件的地方直接显示文字或字符,比显示图标要更直观一些。
此函数可以用ALIGN来定位水平位置。而ALIGN用在DRAWICON上定位的是高低的位置。
从下面例子可以看到,ALIGN(0~2)定义水平位置的意义:
ALIGN0:居中;
ALIGN1:偏右;
ALIGN2:偏左。
也可以用SHIFT函数进行向右水平移位。
所显示的文字或字符,可以用COLOR函数来定义颜色。至于文字的大小,则采用系统默认的大小,在此函数中无法定义。
此函数单独使用有其用途,与DRAWNUMBER配合应用时,效果更不错。后面介绍到DRAWNUMBER时再举例子。
A:=&FENG2.LD&;
B:=&FENG2.HD&;
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E1:=D1&REF(D1,1);{离目前最近的一个高点}
D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
E2:=D2&REF(D2,1);{倒数第二个高点}
D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);
E3:=D3&REF(D3,1);{倒数

我要回帖

更多关于 女人可以连续做多少次 的文章

 

随机推荐