当前位置:文档之家› 同花顺公式编写规则和方法(二)

同花顺公式编写规则和方法(二)

同花顺公式系统:
公式系统可以编辑多种类型的公式,且每个类型中又又若干分细,分别是1,基本公式(软件全部函数指标的集合),2,技术指标(已自带公式的集合)、3,交易系统、4,条件选股,5,五彩K线公式,6,自用公式(自编的公式及以复制/粘贴过来的他人的公式)。技术指标公式是最基本的公式,它用于指标曲线的绘制。技术指标公式是条件选股,交易系统的基础。结合选股条件逻辑判断表达式,即得到条件选股公式,用于条件选股。技术指标公式结合买卖逻辑判断表达式,得到交易系统公式,用于交易系统指示。技术指标公式结合色彩逻辑判断表达式,即得到K线模式公式,用于描述特定的K线模式。公式的编辑在公式编辑器中完成。
公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间的任意值,也可以是分笔成交数据,改变分析窗口显示的分析周期,则公式处理新的分析周期的数据。

学习公式编写,使用的基本方法
基本捷径是从软件公式或他人公式入手,多看多动手边理解其写法,为什么调用这个函数,这个函数的意义是什么,这一句预要表达什么意思等等。不动手永远不可能学会的。从简单公式入手,先弄懂一,两个公式。从修改公式加入自己的目标语句实现自己目标入手,几乎没有一个公式是那一个人自己完成的,或多或少都使用了前人的成果。
在编写中多用“测试公式”按钮,让软件作判断,告诉你编写对错与否。
使用彩色编辑可事半功倍。
多用鼠标指针指向不懂的函数,软件马上会告诉你。
公式编写步骤
1.设定公式名称:每个公式都有自己的名称,它由字母或数字组成,最多可以有9个字符。请注意,公式名称在同类公式中不能重复,且不能为空。
2.描述公式:用于简单描述该公式的含义(可不填亦能通过)。
3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后,在有关窗口按“用法注释”按钮可以查看公式注释(可省略)。
4. 设计技术指标公式语句: 公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号(“;”)隔开。 一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,如CLOSE()函数表示调用该分析周期的收盘价。
函数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量,变量是一个随着时间变化而变化的

数据,例如收盘价;常量是一个不随时间变化而变的数据。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close(),1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的。若没有参数则可以省去括号,例如CLOSE()函数没有参数,所以写成 CLOSE和 CLOSE()都可以。函数计算得到的结果是一个变量。
计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>、<、<>、>=、<=、=、AND(与)、OR(或),分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。 语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜色,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号(“:”)将它与语句隔开。语句“上日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。该语句后而的语句若需引用它,则写公式名即可,如MA(上日收盘价,20)意思是对上日收盘价求20日平均。
设计中间语句: 
一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的等号,即“=”即可(亦可用通用的冒号加等于号“:=”)。例如,语句“上日收盘价=REF(close,1)”就表示该语句为中间语句。重复使用的语句也可以定义成中间语句。

 设计其他公式语句:
其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示(用":>"表达),五彩K线公式显示的是K线颜色。这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。其他的语句都应设定为中间语句。 条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。 交易系统

公式需要逻辑表达式语句,分别为买入(在语句后加buy)、卖出条件(在语句后加sell),当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。条件中必须至少设定一个条件。
函数可以用简写,如收盘价开盘价分别用C,O来表示,在编写中往往可以自动变成大写字母,可以以此判断。函数名编写正确时字母变为大写。编写中要用彩色编辑,这样可以指示出软件对于此函数是否认可--应变成彩色。
公式编写完测试公式通过后,还需进行曲线属性的设置,在“曲线属性”:如显示曲线的位置是主图,副图,成交量图等,还可以设置是否显示曲线参数或只显示参数而不显示曲线,选择显示的图标,提供象箭头,圆,凌形(buy红色向上箭头,buy1黄色箭头,1空心三角形,2空心圆,4空心菱形,5星花...),曲线颜色等...最后再测试通过,确定退出编辑。

未来函数
公式系统对数据的运算是基于一系列函数,函数必须满足时间不变性,即时间靠后的数据不对时间靠前的结果产生影响(判断是否未来函数的依据)。这个很重要!对于未来函数可以理解为:某一量依赖另一量,如量A和量B,B变化使A改变,那么A是B的函数,如果B是稍后的量,A是稍早的量,A跟着B变,A是B的未来函数。未来函数是有时间周期的,在一个短的周期内可能是未来函数,但在稍长的周期内就不是未来函数,比如"HIGH"(最高价),在一天收市前都是不确定的.如在交易没有结束时我们可以看到某一个指标,如“卖出”跟着股价的高低一会出现,一会消失(这个现象很容易观察到)。所以对于一个日周期的指标在分时周期具有“未来函数”特征。但一旦收盘该指标是定值,不应随明日及以后的价而变,所以该指标在日周期中不是未来函数。
被人们普遍认为是未来函数的是比较长时间才被确认的ZIG函数,比如把参数设置为ZIG(3,5),就要等下一个ZIG(3,5)成立时才能被确认,就是说你把周期设置得越长,被确认的时间就越长(比如ZIG(3,30)),如果把它设置的很短(比如ZIG(3,1)),那就跟"high"差不多了.
有未来函数的公式对历史模拟的相当准确,对号称100%的.99%准确的公式要小心。
未来函数有:
zig
PEAK
PEAKBARS
TROUGH
TROUGHBARS
所以任何函数都具有未来函数特性,也没什么可怕。第一不要依据公式入市,第二还是不要依据公式入市!不要迷信公式。
公式只能给你一个信号,最终判断取舍要靠人。
关于未来函数的典型例子
有这么多人对一个叫鬼谷神算公式推崇,甚至将它说成'极品‘。我感到吃惊。

应该把此公式的本质性的东西反映出来才是;该公式使用了未来函数,因而有“很高” 的准确率,因为它是马后炮所以100%准。这是需要大家十分注意的。
我不反对使用未来函数,但要充分认识其特有的“欺骗性”--已经出现的“结果”因后面的数据的改变而改变。
在此,我要说的是本来是一个及其简单的公式,故意弄成很复杂,高深,写了那么多行毫无相干的东西。是忽悠人的。我给“简化”了一下,只剩下6行。希望大家知道这样的公式人人可写。
这样的公式恐怕是别有用心之人忽悠卖钱的。
改成下面的公式,而且完全显示买卖两个信号。其核心是Z字转向于其他没关系。Z字转向即为未来函数
而ZIG函数的定义为,当前收盘价超过上次ZIG转向输出值的N%,则输出当前收盘价并ZIG转向。对该公式为50/5=10,即当价格变化量超过10%时转向。
对于下面的公式:
第一行,ZIG函数,它输出的是就是价格,为了欺骗乘以100;
第二行,是第一行的2日平均;
第三行,第四行是第一行,第二行的金叉,死叉;
而买卖信号的出现就是在于金叉,死叉。
请大家试试看。
简化的公式:
B:zIG(3,50/5)*100,colorwhite;
G:MA(B,2),coloryellow;
D:=CROSS(B,G)*1000,colorred;
W:=CROSS(G,B)*1000,colorblue;
DRAWTEXT(W=1000,B*1.05,'卖' ),colorgreen;
DRAWTEXT(D=1000,B*1.05,'买'),colorred;

原公式
公式名称:鬼谷神算
VAR1:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),25);
VAR2:=HIGH-REF(HIGH,1);
VAR3:=REF(LOW,1)-LOW;
VAR4:=SUM(IF(VAR2>0 AND VAR2>VAR3,VAR2,0),25);
VAR5:=SUM(IF(VAR3>0 AND VAR3>VAR2,VAR3,0),25);
VAR6:=VAR4*100/VAR1;
VAR7:=VAR5*100/VAR1;
VAR8:=MA(ABS(VAR7-VAR6)/(VAR7+VAR6)*100,15);
VAR9:=(VAR8+REF(VAR8,15))/2;
A:=(VAR7>VAR6 AND VAR7>25 AND VAR6<25);
B:ZIG(3,50/5)*100,COLORWHITE;
G:MA(B,2),COLORYELLOW;
D:=CROSS(B,G)*1000,COLORRED;
W:=CROSS(G,B)*1000,COLORBLUE;
E:=REF(INDEXC,1);
F:=SMA(MAX(INDEXC-E,0),3,1)/SMA(ABS(INDEXC-E),3,1);
VAR10:=F AND F<8;
VAR11:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
VAR12:=SMA(VAR11,3,1);
VAR13:=SMA(VAR12,3,1);
VAR14:=VAR13 AND VAR13<20;
MM:=A AND D AND VAR10 AND VAR14 ;
DRAWTEXT(W=1000,B*1.05,'卖' ),COLORGREEN;
DRAWTEXT(D=1000,B*1.05,'买'),COLORRED;


一、由简单的公式编写开始
这里举一些最简单的例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。
收盘价线 CLOSE 均线的画法 计算N日内收盘价的算术平均值,公式为:MA(X,N)表示X的N日平均。 例如: MA1: MA (CLOSE,5) , coloryellow ; 表示为: 参数名 画一条5日收盘价的均线 设置该线为黄色 
MA2:MA(C,20),color0000ff(20日收盘价均线,颜色为红色)
MA3:MA(c,250),color00ff00(年线,绿色)
均线:MA(c,N);(周期N可设置最

大,最小,缺省)
 换手率 换手率指当期的成交量占流通股本的比例。 
 公式: hs:VOL/CAPITAL; vol为当期成交量,CAPITAL为流通股本。
乖离率 当前股价与均线的偏差的程度
gl:(c-ma(c,20))/ma(c,20)*100;
量比 当期成交量与5日均量的比
lb:vol/ma(vol,5);

涨幅 涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%,
昨日收盘价的公式为:REF(CLOSE,1),
涨幅的公式: (CLOSE-REF(CLOSE,1))/REF(CLOSE,1)
创新高 创新高指当日最高价是最近一段时间的最高价: HIGH=HHV(HIGH,N) 其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。 

横盘整理 横盘整理指最近一段时期价格在一定幅度之内摆动: (HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05 其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。
 放量、缩量(成交量函数为VOL)
A、放量
a.今天成交量较昨天增加了1倍,表示如下: VOL/REF(VOL,1)>2 b.今天成交量较10个交易日平均成交量放大了1倍,表示如下:
a:=ma(vol,10); Vol/a>2 或者直接用如下公式表示: vol/ma(vol,10)>2;
c.今日的5日均量较10个交易日平均成交量放大了1倍,表示如下: a:=ma(vol,10); b:=ma(vol,5); b/a>2;
d.今日的成交量超过了整个流通盘的5%,表示如下: vol/capital>0.05;其中capital代表流通盘。

B、缩量 
a.今日成交量较昨日减少了一半,表示如下: vol/ref(vol,1)<0.5;
b.今日成交量较10个交易日平均成交量减少一倍,表示如下: a:=ma(vol,10); vol/a<2; 或者直接用如下公式表示: vol/ma(vol,10)<2;
c.今日的5日均量较10个交易日平均成交量减少1倍,表示如下: a:=ma(vol,10); b:=ref(a,5); a/b<2;
d.今日的成交量低于了整个流通盘的5%,表示如下: vol/capital<0.05;
上涨、下跌
上涨 今天的涨幅达到5%以上,表示如下: close>ref(close,1)>1.05;
5日均价连续上涨,表示如下: a:=ma(close,5); b:=ref(a,1);
下跌 今天的跌幅达到5%以上,表示如下: close/ref(close,1)<0.95;
5日均价连续下跌,表示如下: a:=ma(close,5); b:=ref(a,1); a< b;
描述K线 阳线 close>open; 阴线 close< open; 高开 open>ref(close,1); 低开 open< ref(close,1); 跳空高开(high为最高价) open>ref(high,1); 跳空低开(low为最低价) open< ref(low,1);
引用大盘数据
INDEXDATA(“N”,&X,K) INDEXDATA 求某商品相关的数据
例:INDEXDATA("1a0001",&HIGH),n)沪指N周期最高值
个股于大盘的比较
CLOSE/INDEXDATA("1A0001",&CLOSE)*1000

只于沪指比较
股价在N日线附近--这可是反映股价调整幅度的好公式(选股)
a:=MA(C,N); 选股时输入20,30,60可选不同均线附近的股,
ABS(C-a)/C<=0.02; 在某均线的2/100附近的股票。也可根据需要改百分比。
只显示数值不显示曲线 在曲线属性-输出线形的勾去掉,在公式语句使用输出符出“:”
趋势【天】:BARSLAST(MA(C,250)
二,多语句的公式编写
均线多头排列
a1:=ma(c,5);
a2:=ma(c,10);
a3:=ma(c,20);
a4:=ma(c,30);
count(a1>a2 and a2>a3 and a3>a4,3)=3 and close>open; (conut统计满足条件的周期数,5,10,20,30日均线呈多头排列),
均线空头排列
a1:=ma(c,5);
a2:=ma(c,10);
a3:=ma(c,20);
a4:=ma(c,30);
count(a1< a2 and a2< a3 and a3< a4,3)=3 and not(close< open); (5,10,20,30日均线呈空头排列)。
均线金叉
a;=ma(c,5);
b:=ma(c,10);
cross(a,b); (前二句是5、10日均线,cross是交叉函数,cross(a,b)表示5日均线上穿10日均线金叉)。

均线死叉
a;=ma(c,5);
b:=ma(c,10);
cross(b,a); (前二句是5、10日均线,cross是交叉函数,cross(b,a)表示5日均线下穿10日均线死叉)。

均线粘合
ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
p1:=abs(ma1-ma2)+abs(ma2-ma3);
p1/c< 2/100 and ma1>ref(ma1,1) and ma2>ref(ma2,1); (前三句是三根均线,p1是第一根均线减第二根均线差的绝对值与第二根均线减第三根均线差的绝对值之和,最后一句是p1与收盘价的比值小于一定比率2%(一般该比率为2%以下,同时前二均线今日比昨日上翘)。
在个股主图叠加(引用大盘数据的)线:
(HHV(H,n)-LLV(L,n))/(HHV(INDEXDATA("1a0001",&HIGH),n)-LLV(INDEXDATA("1a0001",&LOW),n))
*(INDEXDATA("1a0001",&CLOSE)-LLV(INDEXDATA("1a0001",&LOW),n)+LLV(L,n));
活跃度
CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT)); 成交笔数
活跃度:CJBS/CAPITAL*100,VOLSTICK;
MA13:MA(活跃度,13);
每笔均量
CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT));
每笔均量:VOL/CJBS*100,COLORYELLOW;
每笔均量,STICK,COLORRED;
MA5:MA(每笔均量,5),COLORWHITE;
MA13;MA(每笔均量,13),COLORMAGENTA;
MA60:MA(每笔均量,60),COLORGREEN;
每笔均额
CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT));
每笔均额:AMOUNT/CJBS,COLORYELLOW;
每笔均额,STICK,COLORRED;
MA5:MA(每笔均额,5),COLORWHITE;
MA:MA(每笔均额,13),COLORMAGENTA;
MA:MA(每笔均额,60),COLORGREEN;
交易强度
CJBS:=MAX(0,SUBSAMEDAY(&VOLAMOUNT));
交易强度:VOL*100/CJBS/CAPITAL*100,VOLSTICK;

三,公式函数的活用
剔除选定股票,选股时剔除ST股票
STRFIND(STRLEFT(STKNAME,2),'ST')=0; 字符串函数,符合条件时返回为0。
获得成交笔数
MAX(0,SUBSAMEDAY(&VOLAMOUNT))
获得“是否最后周期”ISLATBAR
FILTER(条件1 AND 条件2,COUNT

(条件1 AND 条件2,0))
变色柱线(在个股于指数之间画不同颜色的柱线)
STICKLINE(个股>指数,个股,指数,4,0),color6666ff;
STICKLINE(个股<指数,个股,指数,4,1),color66bb66;
变色曲线(符合条件时改变颜色,下为用于KDJ公式)
k:PARTLINE(k,k>d,RGB(255,0,0),k[ 此文章的编辑者为: BCXYMMLL, 2007-03-17 15:26 ]
公式中引用其他公式
A2:=BARSLAST(REF(CROSS(KDJ.k,KDJ.d),1));引用KDJ公式的K,D并金叉
B2:=REF(C,A2+1)>C AND REF(KDJ.k,A2+1)DRAWTEXT(FILTER(B2>0,5),L+0.39,'KDJ底背'),coloryellow;

四、网上搜集的公式
请问怎样用公式表示年线摆脱下降趋势出现向上拐头?
COUNT(MA(C,250)>REF(MA(C,250),1),3)=3
如果想显示年线向上的天数时(本人的指标):
趋势:BARSLAST(MA(C,250)<=REF(MA(C,250),1))/10,colorwhite;(注:显示天数和斜直线,由于天数太长时,如大牛股,可能长达400天,斜直线垂直高度太高,故用1/10。亦可不显示斜直线,在“曲线属性”内设置,只显示天数)。
怎么定义一阳线紧跟两阴线的函数?
ref(c,2)>ref(o,2) and ref(c,1)股价创出新高后,又调整到30日均线附近的选股公式如何编写?
COUNT(C>=HHV(C,N),5)=1 AND C/MA(C,30)>=1 AND C/MA(C,30)<1.02
破5天线,3天后又重新站上5天线的个股
cross(ref(ma(c,5),3),ref(c,3)) and cross(c,ma(c,5))

3天内5天线上穿10天线,10天线上穿20天线的个股
count(cross(ma(c,5),ma(c,10)),3)>=1 and count(cross(ma(c,10),ma(c,20)),3)>=1

日macd翻绿3天内又翻红的个股。
count(cross(0,"MACD.MACD" ),3)=1 and count(cross("MACD.MACD",0 ),3)=1

下面的公式也是应网上的朋友要求改的一个公式,公式中有一个飞狐的‘是否最后周期’(islastbar)的函数同花顺不支持,改起来难道较大。
OK:=EMA(O,60);
BARSCOUNTOK:=EMA(O,60);
SUMBARSOK:=EMA(O,60);
CG:=EMA(C,60);
PDU:=IF(OK>REF(OK,1) AND CG>REF(CG,1),1,0);
Z1:=MA(C,13);
ZX:=REF(Z1,13/2+1);
LIFE:=(EMA(C,60)+EMA(C,90))/2;
VAR1:=(2*C+H+L)/4;
SNOOK:=EMA(VAR1,99)*0.91;
A1:=(C-REF(C,1))/REF(C,1)*100;
MA5:=BARSLAST(A1>3);
MA20:=IF(MA5>0,1,0);
STICKLINE(C>ZX AND C>=LIFE,O,C,3,0),COLOR0000FF;
STICKLINE(C>ZX AND C<=SNOOK,O,C,3,0),COLOR00FF00;
STICKLINE(C>ZX AND C>SNOOK AND CSTICKLINE(C>ZX AND MA20=0,O,C,3,0),COLOR00FFFF;
STICKLINE(C>ZX,O,C,1,0),COLORFFFFFF;
DRAWICON(CROSS(C,ZX),L*0.99,1);
DRAWICON(CROSS(ZX,C),H*1.01,5);
BY20:=MA(C,5);
招财猫:MA(C,20),LINETHICK2,COLOR00FFFF;
鼠变异:IF(BY20>招财猫,招财猫,BY20),LINETHICK2,COLOR808080;
CROSS(C,ZX) AND C>ZX AND MA20=0 ,LINETHICK0;
RB:=BARSCOUNT(C)=0;
RD:=BARSLAST(RB);
K2:=HHV(H,50);
K1:=LLV(L,50);
T1:=C>ZX AND C>=LIFE;
T2:=C>ZX AND C>SNOOK AND CT3:=C>ZX AND C<=SNOOK;
T4:=C<=ZX;
T5:=鼠变异>REF(鼠变异,1) AND 鼠变异!=招财猫 ;
T6:=鼠变异>REF(鼠变异,1) AND 鼠变异=招财猫

AND PDU!=1;
T7:=鼠变异>REF(鼠变异,1) AND 鼠变异=招财猫 AND PDU=1;
T8:=C>ZX AND MA20=0 ;
EEE:=T1+T2+T3+T4+T5+T6+T7+T8 ;
E:=(K2-K1)/(EEE+8) ;
j:=FILTER(C>0 AND t1>0,COUNT(C>0 AND t1>0,0));
j2:=FILTER(C>0 AND t2>0,COUNT(C>0 AND t2>0,0));
j3:=FILTER(C>0 AND t3>0,COUNT(C>0 AND t3>0,0));
j4:=FILTER(C>0 AND t4>0,COUNT(C>0 AND t4>0,0));
j5:=FILTER(C>0 AND t5>0,COUNT(C>0 AND t5>0,0));
DRAWTEXT(j,K2-E,'出洞了逮住它'),COLOR0000FF;
DRAWTEXT(j2 ,K2-E+0.2,'鼠玩猫守着它'),COLORFF9900;
DRAWTEXT(j3 ,K2-E,'露尾巴动作快'),COLOR00FF00;
DRAWTEXT(j4 ,K2-E,'没有了打个盹'),COLOR808080;
DRAWTEXT(j5,K2-E*2,'发现鼠迹'),COLOR00FF00;
2,3行可以去除不用,
39--48行为改动部分,用信号过虑+全部统计两个函数来达到上述函数目的。下面是它的原公式部分,可以看出改动较大。
DRAWTEXT(C>0 AND T1>0 AND ISLASTBAR,K2-E,'出洞了逮住它!'),COLOR0000FF;
DRAWTEXT(C>0 AND T2>0 AND ISLASTBAR,K2-E,'鼠玩猫守着它!,'),COLORFF7700;
DRAWTEXT(C>0 AND T3>0 AND ISLASTBAR,K2-E,'露尾巴动作快!,'),COLOR00FF00;
DRAWTEXT(C>0 AND T4>0 AND ISLASTBAR,K2-E,'没有了打个盹!,'),COLOR808080;
DRAWTEXT(C>0 AND T5>0 AND ISLASTBAR,K2-E*2,'发现鼠迹!'),COLOR00FF00;
DRAWTEXT(C>0 AND T6>0 AND ISLASTBAR,K2-E*2,'瞬间鼠影!'),COLORFF66FF;
DRAWTEXT(C>0 AND T7>0 AND ISLASTBAR,K2-E*2,'恶鼠难遁!'),COLOR0000FF;


据说是大智会新一代软件的最新公式,也改了一下,给喜欢公式的朋友,感觉抓大趋势较好,请朋友验证。
Var3:=LLV(HIGH,240);
Var4:=100*(CLOSE-Var3)/Var3;
Var5:=REF(LLV(CLOSE,480),1);
Var6:=REF(HHV(CLOSE,480),1);
Var7:=100*(CLOSE-Var5)/(Var6-Var5);
Var8:=(CLOSE-LLV(CLOSE,981))/(HHV(CLOSE,981)-LLV(CLOSE,981))*100;
Var9:=(CLOSE-LLV(CLOSE,393))/(HHV(CLOSE,393)-LLV(CLOSE,393))*100;
VarA:=(CLOSE-LLV(LOW,981))/(HHV(HIGH,981)-LLV(LOW,981))*100;
VarB:=(CLOSE-LLV(LOW,393))/(HHV(HIGH,393)-LLV(LOW,393))*100;
VarC:=EMA(100*(CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100)),5)/4;
VarD:=IF(VarC>23.16,VarC,0);
VarE:=VarC<1;
VarF:=VarD;
Var10:=Var4<0 AND Var7<0;
Var11:=1;
Var12:=(HIGH+LOW+CLOSE*2)/4*Var11;
Var13:=EMA(Var12,21);
Var14:=STD(Var12,21);
Var15:=((Var12-Var13)/Var14*100+200)/4*Var11;
Var16:=(EMA(Var15,89)-25)*1.56*Var11;
Var17:=EMA(Var16,5)*1.22*Var11;
Var18:=EMA(Var17,3)*Var11;
Var19:=3*Var17-2*Var18*Var11;
Var1A:=IF(CROSS(Var19,Var17) AND CROSS(Var19,Var18) AND CROSS(Var17,Var18),1,0);
Var1B:=IF(CROSS(Var17,Var19) AND CROSS(Var18,Var19) AND CROSS(Var18,Var17),1,0);
买点:IF(FILTER(Var8=0 AND VarE AND Var10 AND Var1A,5)=1,10,0), colorred;
卖点:IF(FILTER(Var8=100 AND VarF AND Var1B,5)=1,10,0), colorgreen;
Var1C:=EMA(100*(CLOSE-LLV(LOW,100))/(HHV(HIGH,100)-LLV(LOW,100)),13)/4;
Var1D:=EMA(CLOSE,2)-EMA(CLOSE,89);
Var1E:=EMA(Var1D,30);
Var1F:=2*(Var1D-Var1E)*10;
Var20:=POW(Var1F,3)*0.1+POW(Var1F,2);
Var21:=SQRT(SQRT(LOW*HIGH*OPEN*CLOSE));
Var22:=EMA(Var21*0.97,3);
Var23:=(HIGH+LOW+

CLOSE)/3;
Var24:=(Var23-MA(Var23,14))/(0.015*AVEDEV(Var23,14));
Var25:=IF(YEAR<2008 AND Var1F>0.015,Var20,0)/45;
庄拉线: Var25,coloryellow ;
Var26:=EMA(CLOSE,2)-EMA(CLOSE,150);
Var27:=EMA(Var26,100);
Var28:=2*(Var26-Var27);
Var29:=POW(Var28,3)*0.1+POW(Var28,1);
Var2A:=SQRT(SQRT(LOW*HIGH*OPEN*CLOSE));
Var2B:=EMA(Var2A*0.97,3);
Var2C:=(HIGH+LOW+CLOSE)/3;
Var2D:=(Var2C-MA(Var2C,14))/(0.015*AVEDEV(Var2C,14));
黑马线:IF( Var28>0.1,Var29,0)*5, colorcyan;
量价线:(CLOSE-MA(CLOSE,21))/MA(CLOSE,21)*100, colorwhite;
Var2E:=IF(FILTER(量价线>0 AND 量价线<3,5)=1,12,0);
涨幅前兆: IF(FILTER(庄拉线>0 AND 庄拉线<0.5 AND Var2E AND Var1C<3,10)=1,10,0), colorred;
选股利器: IF(FILTER(Var2E>0 AND Var1C<2 AND 庄拉线>0 AND 庄拉线<1
AND 黑马线>0 AND 黑马线<1.5 AND Var2E>0,5)=1,10,0),colorff1166;
DRAWTEXT(买点>0,10,'买'),colorred;
DRAWTEXT(卖点>0,10,'卖'),colorgreen;
DRAWTEXT(涨幅前兆>0,10,'前兆'),colorred;
DRAWTEXT(选股利器>0,10,'选股利器'),Colorff1166;


你好,以下“布林极限”怎么改写成同花顺公式
源码:[复制]{布林极限}
VARAA:=MA(CLOSE,20);
布林极限:100*(CLOSE-VARAA)/STD(CLOSE,20),colorddddff;
布林K值:EMA(布林极限,10),color00ff00;
VARAB:=EMA(布林极限,5);
VARAC:=EMA(布林K值,5);
VAR1:=EMA(HHV(HIGH,500),21);
VAR2:=EMA(HHV(HIGH,250),21);
VAR3:=EMA(HHV(HIGH,90),21);
VAR4:=EMA(LLV(LOW,500),21);
VAR5:=EMA(LLV(LOW,250),21);
VAR6:=EMA(LLV(LOW,90),21);
VAR7:=EMA((Var4*0.96+Var5*0.96+Var6*0.96+Var1*0.558+Var2*0.558+Var3*0.558)/6,21);
VAR8:=EMA((Var4*1.25+Var5*1.23+Var6*1.2+Var1*0.55+Var2*0.55+Var3*0.65)/6,21);
VAR9:=EMA((Var4*1.3+Var5*1.3+Var6*1.3+Var1*0.68+Var2*0.68+Var3*0.68)/6,21);
VARA:=EMA((Var7*3+Var8*2+Var9)/6*1.738,21);
VARB:=REF(LOW,1);
VARC:=SMA(ABS(LOW-VarB),3,1)/SMA(MAX(LOW-VarB,0),3,1)*100;
VAR10:=IF(CLOSE*1.35<=VARA,VARC*10,VARC/10);
VARD:=EMA(VAR10,3);
VARE:=LLV(LOW,30);
VARF:=HHV(VarD,30);
VAR11:=IF(LOW<=VARE,(VARD+VARF*2)/2,0);
VAR12:=EMA(VAR11,3)/500-100;
HYS1:=0.2*VAR12;
HYS2:=1.2*VAR12;
DY1:=(2*CLOSE+HIGH+LOW)/4;
DY2:=LLV(LOW,34);
DY3:=HHV(HIGH,34);
VAR13:=(DY1-LLV(LOW,7))/(HHV(HIGH,7)-LLV(LOW,7))*100;
BDA:=EMA(VAR13,3);
BDB:=EMA(BDA,3);
BDC:=EMA((DY1-DY2)/(DY3-DY2)*100,9);
BDD:=EMA((0.667*REF(BDC,1)+0.333*BDC),3);
VAR14:=llv(h,240);
MYP:=100*(c-VAR14)/VAR14;
VAR15:=hhv(h,240);
MYL:=100*(VAR15-c)/c;
VAR16:=ref(hhv(c,60),1);
VAR17:=ref(llv(c,60),1);
RPY:=100*(c-VAR17)/(VAR16-VAR17);
可以考虑出击了:
if(HYS1ref(HYS1,2) and ref(HYS1,2)>ref(HYS1,3) and HYS2ref(HYS2,2) and ref(HYS2,2)>ref(HYS2,3) and ref(HYS2,1)>0,200,0),linethick2,colorcyan;
if(cross(RPY,MYP) and cross(布林极限,布林K值) and close>=open and BDC<=50 and BDD<=50 and BDA>=BDC and BDB>=BDD,200,0),linethick2,colorff00bb;
if(cross(ref(RPY,1),ref(MYP,1)) and cross(布林极限,布林K值) and close>=open and BDC<=50 and BDD<=50 and BDA>=BDC and BDB>=BDD,2

00,0),linethick2,color00ffcc;
if(cross(ref(MYP,1),ref(MYL,1)) and cross(布林极限,布林K值) and close>=open and BDC<=50 and BDD<=50 and BDA>=BDC and BDB>=BDD,200,0),linethick2,color0099ff;
100,pointdot,color99ffcc;
-100,pointdot,color99ffcc;
170,color99ffcc;
-170,color99ffcc;
stickline(布林极限>=布林K值,布林极限,布林K值,6,0),colorred;
stickline(布林极限<布林K值,布林K值,布林极限,6,0),colorff00ff;
stickline(VARAB>=VARAC,VARAB,VARAC,6,0),colorgreen;
stickline(VARABstickline(cross(布林极限,布林K值),布林极限,布林K值,6,0),colorblue;
stickline(布林极限>=170,布林极限,布林K值,6,0),colorwhite;


改的公式;
VARAA:=MA(CLOSE,20);
布林极限:100*(CLOSE-VARAA)/STD(CLOSE,20),colorddddff;
布林K值:EMA(布林极限,10),color00ff00;
VARAB:=EMA(布林极限,5);
VARAC:=EMA(布林K值,5);
VAR1:=EMA(HHV(HIGH,500),21);
VAR2:=EMA(HHV(HIGH,250),21);
VAR3:=EMA(HHV(HIGH,90),21);
VAR4:=EMA(LLV(LOW,500),21);
VAR5:=EMA(LLV(LOW,250),21);
VAR6:=EMA(LLV(LOW,90),21);
VAR7:=EMA((Var4*0.96+Var5*0.96+Var6*0.96+Var1*0.558+Var2*0.558+Var3*0.558)/6,21);
VAR8:=EMA((Var4*1.25+Var5*1.23+Var6*1.2+Var1*0.55+Var2*0.55+Var3*0.65)/6,21);
VAR9:=EMA((Var4*1.3+Var5*1.3+Var6*1.3+Var1*0.68+Var2*0.68+Var3*0.68)/6,21);
VARA:=EMA((Var7*3+Var8*2+Var9)/6*1.738,21);
VARB:=REF(LOW,1);
VARC:=SMA(ABS(LOW-VarB),3,1)/SMA(MAX(LOW-VarB,0),3,1)*100;
VAR10:=IF(CLOSE*1.35<=VARA,VARC*10,VARC/10);
VARD:=EMA(VAR10,3);
VARE:=LLV(LOW,30);
VARF:=HHV(VarD,30);
VAR11:=IF(LOW<=VARE,(VARD+VARF*2)/2,0);
VAR12:=EMA(VAR11,3)/500-100;
HYS1:=0.2*VAR12;
HYS2:=1.2*VAR12;
DY1:=(2*CLOSE+HIGH+LOW)/4;
DY2:=LLV(LOW,34);
DY3:=HHV(HIGH,34);
VAR13:=(DY1-LLV(LOW,7))/(HHV(HIGH,7)-LLV(LOW,7))*100;
BDA:=EMA(VAR13,3);
BDB:=EMA(BDA,3);
BDC:=EMA((DY1-DY2)/(DY3-DY2)*100,9);
BDD:=EMA((0.667*REF(BDC,1)+0.333*BDC),3);
VAR14:=LLV(H,240);
MYP:=100*(C-VAR14)/VAR14;
VAR15:=HHV(H,240);
MYL:=100*(VAR15-C)/C;
VAR16:=REF(HHV(C,60),1);
VAR17:=REF(LLV(C,60),1);
RPY:=100*(C-VAR17)/(VAR16-VAR17);
可以考虑出击了:IF(HYS1REF(HYS1,2) AND REF(HYS1,2)>REF(HYS1,3) AND HYS2REF(HYS2,2) AND REF(HYS2,2)>REF(HYS2,3) AND REF(HYS2,1)>0,200,0),linethick2,colorcyan;
STICKLINE(CROSS(RPY,MYP) AND CROSS(布林极限,布林K值) AND CLOSE>=OPEN AND BDC<=50 AND BDD<=50 AND BDA>=BDC AND BDB>=BDD,200,0),linethick2,colorff00bb;
STICKLINE(CROSS(REF(RPY,1),REF(MYP,1)) AND CROSS(布林极限,布林K值) AND CLOSE>=OPEN AND BDC<=50 AND BDD<=50 AND BDA>=BDC AND BDB>=BDD,200,0),linethick2,color00ffcc;
STICKLINE(CROSS(REF(MYP,1),REF(MYL,1)) AND CROSS(布林极限,布林K值) AND CLOSE>=OPEN AND BDC<=50 AND BDD<=50 AND BDA>=BDC AND BDB>=BDD,200,0),linethick2,color0099ff;
100,POINTDOT,color99ffcc;
-100,POINTDOT,color99ffcc;
170,color99ffcc;
-170,color99ffcc;
STICKLINE(布林极限>=布林K值,布林极限,布林K值,6,0),colorred;
STICKLINE(布林极限<布

林K值,布林K值,布林极限,6,0),colorff00ff;
STICKLINE(VARAB>=VARAC,VARAB,VARAC,6,0),colorgreen;
STICKLINE(VARABSTICKLINE(CROSS(布林极限,布林K值),布林极限,布林K值,6,0),colorblue;
STICKLINE(布林极限>=170,布林极限,布林K值,6,0),colorwhite;

----------------------------------------------
DIFF15:="MACD.DIFF#min15";
DEA15:="MACD.DEA#min15";
DIFF30:="MACD.DIFF#min30";
DEA30:="MACD.DEA#min30";
DIFF60:="MACD.DIFF#min60";
DEA60:="MACD.DEA#min60";
cross(DIFF15,dea15) and DIFF30>dea30 and DIFF60>dea60;
cross(dea15,DIFF15) and DIFF30

相关主题
文本预览
相关文档 最新文档