同花顺公式编写基础教程
同花顺小星
来自浙江省
一、首先是打开公式编辑器,选择“工具”——“公式管理”。
二、选择“新建”按钮,选择想要编写的公式类型,然后点击“确定”。
三、然后在公式编辑器逐项输入内容。
四、在公式文本编辑区输入公式代码。
五、可以在“曲线属性”——“坐标类型”,选择“主图”或者“副图”。
六、编写完成以后可以通过公式管理——“用户”分类的菜单里到自己编写的公式,也可以修改公式。
同花顺公式系统可以编辑多种类型的公式,分别是技术指标、预警公式、交易系统、条件选股、五彩K线、自定公式。
公式编写步骤:
1.设定公式名称:每个公式都有自己的名称,它由字母、汉字、下划线或数字组成,首字母是字母、汉字或者下划线。请注意,公式名称在同类公式中不能重复,且不能为空。
2.描述公式:用于简单描述该公式的含义。
3.注释公式:用于描述一个公式如何使用、计算方法等内容。输入后在相关窗口按“指标说明”按钮可以查看公式注释(可省略)。
4.变量是一个随着时间变化而变化的数据,例如收盘价;常量是一个不随时间变化而变的数据。
5.设计技术指标公式语句: 公式的形式由若干语句组成。每个语句得到一个计算结果,对于技术指标,就是一条指标线,语句间用分号(;)隔开。一个语句由若干函数通过四则运算或逻辑运算而组成。函数是公式系统的基本成分,它是对数据做某种操作,如CLOSE()函数表示调用该分析周期的收盘价。
6.函数由函数名称和参数组成,参数用函数名后的括号括起来,每个函数调用的参数可以是变量或常量。例如函数REF(X,N)用于引用N周期前的X值,X是一个变量,N是一个常量,REF(close,1)表示计算上一周期的收盘价。函数若需调用几个参数,则它们在括号内是有顺序的,函数计算得到的结果是一个变量,运算符将函数连接成为语句。
7.运算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>、<、<>、>=、<=、=、AND(与)、OR(或),分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。
语句得到的计算结果连成线就是所谓的指标线,不同的语句就得到不同的线,为了在指标图形中互相区分,不同的线有不同的颜,而且语句还可以有自己的名称,在指标图形中显示在左上角位置。语句名写在语句的前面,用一个冒号(“:”)将它与语句隔开。语句“昨日收盘价:REF(close,1)”就表示该语句REF(close,1)的名称为“昨日收盘价”。
语言规范:
在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。
关键字: if else while break continue return (无大小写之分)
常数: 浮点数、整数、字符串
分隔符:  “ ” ‘ ’ ( ) ; { }
注释:/* */
运算符(优先级从高到低排列,同级同行)
* /
+ -
!= > < >= <=
And
Or
语句 赋值 a = b
条件 IF (a==b) c=d;
循环 while a==b c=d;
函数调用 func(a,b)
赋值语句的一般形式为:
a=b; 含义为将b的值付给a。
注意:“=”和“:=”两个运算符的意义、用法完全相同。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。
简单的公式开始编写,这里举一些最简单的例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。
均线系统的编写:
MA1: MA (CLOSE,5),coloryellow;(5日收盘价的均线,颜为黄) 
MA2:MA(C,20),color0000ff;(20日收盘价均线,颜为红)
MA3:MA(c,250),color00ff00;(年线,绿)
均线:MA(c,N);(周期N可设置最大,最小,缺省)
乖离率的编写:当前股价与均线的偏差的程度。
乖离率:(c-ma(c,20))/ma(c,20)*100;
量比的编写:当期成交量与5日均量的比例。
lb:vol/ma(vol,5);
涨幅的编写:涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%。 
涨幅:(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倍,vol/ma(vol,10)>2;
c.今日的5日均量较10个交易日平均成交量放大了1倍,a:=ma(vol,10); b:=ma(vol,5); b/a>2;
B、缩量 
a.今日成交量较昨日减少了一半,vol/ref(vol,1)<0.5;
b.今日成交量较10个交易日平均成交量减少一倍,vol/ma(vol,10)<2;
c.今日的5日均量较10个交易日平均成交量减少1倍,a:=ma(vol,10); b:=ref(a,5); a/b<2;
上涨、下跌的编写
上涨: 今天的涨幅达到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("1a0001",&HIGH,n);上证综指N周期最高值
公式编写实例:
Var1:=LLV(LOW,5)=LLV(LOW,45) AND CLOSE>=OPEN*1.04; 
Var2:=CLOSE>(REF(HIGH,1)+REF(LOW,1))/2; 
买入:Var1 AND Var2,STICK,colorgreen; 
Var3:=REF(CLOSE,1);
Var4:=SMA(MAX(CLOSE-Var3,0),6,1)/SMA(ABS(CLOSE-Var3),6,1)*100;
卖出:CROSS(80,Var4),STICK;
诚挚请教:我的目的是编一个5日、10日和20日等三条均线同时向上时,标出“买”。
MA1: MA (CLOSE,5),coloryellow;
MA2:MA(C,10),color0000ff;
MA3:MA(C,20),color00ff00;
我编到这里就编不下去了,请教哪位好心的老师,帮帮我好吗?
引用原帖由 小蜜蜂27797 于 2011-02-27 15:55:20 发表于 5楼
诚挚请教:我的目的是编一个5日、10日和20日等三条均线同时向上时,标出“买”。
MA1: MA (CLOSE,5),coloryellow;
MA2:MA(C,10),color0000ff;
MA3:MA(C,20),color00ff00;
我编到这里就编不下去了,请教哪位好心的老师,帮帮我好吗?
DRAWTEXT(CROSS(MA1,MA2) AND(MA1> REF(MA1,1)),MA1,'买'),colorred;
把股价当菜,把均线当锅,进锅就炒,翻锅就跑,其乐无穷。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。