同花顺编程教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、首先是打开公式编辑器,选择“工具”——“公式管理”。
二、选择“新建”按钮,选择想要编写的公式类型,然后点击“确定”。
三、然后在公式编辑器逐项输入内容。
四、在公式文本编辑区输入公式代码。
五、可以在“曲线属性”——“坐标类型”,选择“主图”或者“副图”。
六、编写完成以后可以通过公式管理——“用户”分类的菜单里找到自己编写
的公式,也可以修改公式。
2011-02-26 18:50:00|快速回复|引用回复|举报|
同花顺公式系统可以编辑多种类型的公式,分别是技术指标、预警公式、交易
系统、条件选股、五彩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:=r
ef(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(hig
h,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)*10
0;
卖出: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;
Var3:=(CLOSE+HIGH+LOW)/3;
Var4:=EMA(EMA(EMA(Var3,1),13),21);
控盘度:(Var4-REF(Var4,1))/REF(Var4,1)*100,COLORSTICK,LINETHICK3;
强弱分界:0,COLORYELLOW,LINETHICK3;
Var5:=LLV(LOW,33);
Var6:=HHV(HIGH,17);
Var7:=EMA((CLOSE-Var5)/(Var6-Var5)*100,20)*0.998;
Var8:=EMA(0.667*REF(Var7,1)+0.333*Var7,1);
Var9:=EMA(100*(HHV(HIGH,20)-CLOSE)/(HHV(HIGH,20)-LLV(LOW,33)),20);
VarA:=EMA(Var9,1);
VarB:=VOL/CAPITAL*100;
VarC:=SUM(VarB,5)>=3;
VarD:=VarC/REF(VarB,10)>=2;
VarE:=HHV(CLOSE,5);
VarF:=VarE/REF(CLOSE,5)>=1.01;
Var10:=VarA > 20;
Var11:=HIGH/REF(LOW,20) < 1.2;
Var12:=WINNER(CLOSE)*100;
Var13:=VarC AND Var10 AND VarD AND Var11 AND VarF;
Var14:=FILTER(Var13,20);
DRAWTEXT(Var14,-0.15,'有主力资金活动迹象'),linethick3,colormagenta;
Var15:=EMA(WINNER(CLOSE),20);
{Var16:=Var15 > 0.85 AND CLOSESUM(VOL,10)/CAPITAL > 0.2 OR SUM(VOL,
3)/CAPITAL > 0.1 OR CLOSE/REF(CLOSE,20)>=1.9;}
Var16:=Var15 > 0.85 AND (CLOSE> 0.2 OR SUM(VOL,3)/CAPITAL > 0.1) OR C
LOSE/REF(CLOSE,20)>=1.9;
DRAWTEXT(Var16,0.5,'主力出货迹象'),COLORYELLOW,LINETHICK3;
611111*********
来自天津市
主题数:2
回帖数:11
16楼
2011-03-02 16:22:16|快速回复|引用回复|举报|
Var1:=0;
{多头买入} ENTERLONG: ZIG(3,DATA)>REF(ZIG(3,DATA),1) AND REF(ZIG(3,DAT A),1)<=REF(ZIG(3,DATA),2) AND REF(ZIG(3,DATA),2)<=REF(ZIG(3,DATA),3); {多头卖出} EXITLONG: ZIG(3,DATA)=REF(ZIG(3,DATA),2) AND REF(ZIG(3,DATA),
2)>=REF(ZIG(3,DATA),3);
611111*********
来自天津市
主题数:2
回帖数:11
17楼
2011-03-02 16:24:13|快速回复|引用回复|举报|
Var1:=0;
{多头买入} ENTERLONG: ZIG(3,DATA)>REF(ZIG(3,DATA),1) AND REF(ZIG(3,DAT A),1)<=REF(ZIG(3,DATA),2) AND REF(ZIG(3,DATA),2)<=REF(ZIG(3,DATA),3); {多头卖出} EXITLONG: ZIG(3,DATA)=REF(ZIG(3,DATA),2) AND REF(ZIG(3,DATA),
2)>=REF(ZIG(3,DATA),3);
611111*********
来自天津市
主题数:2
回帖数:11
18楼
2011-03-02 16:27:01|快速回复|引用回复|举报|
80,COLORRED;
20;
VAR1:=HHV(HIGH,9)-LLV(LOW,9);
VAR2:=HHV(HIGH,9)-C;
VAR3:=C-LLV(LOW,9);
VAR4:=VAR2/VAR1*100-70;
VAR5:=(C-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60))*100;
VAR6:=(2*C+H+L)/4;
VAR7:=SMA(VAR3/VAR1*100,3,1);
VAR8:=LLV(LOW,34);
VAR9:=SMA(VAR7 ,3 ,1 )-SMA(VAR4 ,9 ,1);
VAR10:=IF(VAR9>100 ,VAR9-100 ,0 );
VAR11:=HHV(HIGH,34);
VAR12:=EMA((VAR6- VAR8)/(VAR11-VAR8)*100,13 );
VAR13:=EMA(0.667*REF(VAR12 ,1) +0.333*VAR12,2 );
VAR13,COLORRED;
STICKLINE(VAR12-VAR13 >0,VAR12 ,VAR13 ,8 ,0 ),COLOR00FF0F; STICKLINE(VAR12-VAR13 <0,VAR12 ,VAR13 ,8 ,0),COLORRED;
差值:(VAR12-VAR13)*5,POINTDOT,COLOR33CC00;
STICKLINE( 差值>=0 ,0 ,差值,4 ,0 ),COLORYELLOW;
STICKLINE( 差值>=0 ,0 ,差值*0.8 ,4 ,0),COLORFFAA66;
STICKLINE( 差值>=0 ,0 ,差值*0.6 ,4 ,0),COLORFFBB99;
STICKLINE( 差值>=0 ,0 ,差值*0.4 ,4 ,0),COLORFFCCCC;
STICKLINE( 差值>=0 ,0 ,差值*0.2 ,4 ,0),COLORFFDDDD;
STICKLINE( 差值<=0 ,0 ,差值*1 ,4 , 0),COLORGREEN;
STICKLINE( 差值<=0 ,0 ,差值*0.8 ,4 ,0),COLOR33CC00;
STICKLINE( 差值<=0 ,0 ,差值*0.6 ,4 ,0),COLOR339900;
STICKLINE( 差值<=0 ,0 ,差值*0.4 ,4 ,0),COLOR337700;
STICKLINE( 差值<=0 ,0 ,差值*0.2 ,4 ,0),COLOR005500;
611111*********
来自天津市
主题数:2
回帖数:11
19楼
2011-03-02 16:29:15|快速回复|引用回复|举报|
Var1:=(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4;
STICKLINE(CLOSE>Var1,CLOSE,Var1,9,0), COLORRED;
STICKLINE(CLOSE<VAR1,VAR1,CLOSE,9,0),COLORFFAA66;
MA(CLOSE,68);
611111*********
来自天津市
主题数:2
回帖数:11
20楼
2011-03-02 16:31:43|快速回复|引用回复|举报|
Var1:=3*SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)-2*SMA(SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),1
5,1);
Var2:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
Var3:=SMA(SMA(Var2,3,1),3,1);
Var4:=EMA(Var3,5);
Var5:=LLV(LOW,26);
Var6:=HHV(HIGH,34);
Var7:=EMA((CLOSE-Var5)/(Var6-Var5)*4,4)*25;
Var8:=100-Var1;
Var9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
Var10:=SMA(Var9,3,1);
Var11:=SMA(Var10,3,1);
Var12:=EMA(3*Var10-2*Var11,3);
Var13:=(-1)*(EMA(Var8,1)-50)+50;
Var14:=EMA(100*(HHV(HIGH,14)-CLOSE)/(HHV(HIGH,14)-LLV(LOW,14)),6); 底部:STICKLINE(CROSS(Var4,10) AND Var4>10,50,0,10,0),coloryellow,LINETHIC
K1;
建仓: IF((Var7<10),80,100), ,linethick2 color00ccff;
派发: IF((Var7>90),10,0), , linethick2 color6699ff;
大户:sma((c-llv(l,27))/(hhv(h,27)-llv(l,27))*100,9,1);
散户:sma(大户,3,1), , colorff9933;
主力:3*大户-2*散户, , COLORRED;
头部:89.307,,pointdot;
底线:6.788,,COLORFFFF00;
强弱线:49,,COLORGREEN,pointdot;
611111*********
来自天津市
主题数:2
回帖数:11
21楼
2011-03-02 16:35:25|快速回复|引用回复|举报|
BBI:(MA(CLOSE,3)+MA(CLOSE,6)+MA(CLOSE,12)+MA(CLOSE,24))/4;
UPR:BBI+3*STD(BBI,10);
DWN:BBI-3*STD(BBI,10);
A1:(EMA(CLOSE,2.7)+MA(CLOSE,6)+MA(CLOSE,10.8))/3;
A2:(EMA(CLOSE,3)+MA(CLOSE,7.5)+MA(CLOSE,13))/3;
A3:(EMA(CLOSE,4)+MA(CLOSE,8.5)+MA(CLOSE,16.5))/3;
A4:(EMA(CLOSE,4.8)+MA(CLOSE,10.2)+MA(CLOSE,18.6))/3;
A5:(EMA(CLOSE,6.5)+MA(CLOSE,11.8)+MA(CLOSE,21))/3;
A6:(EMA(CLOSE,7)+MA(CLOSE,13.5)+MA(CLOSE,23))/3;
安全线:MA(CLOSE,60);
LC:=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100; DRAWTEXT(DATE>700101 and CROSS(84,RSI) , HIGH,'卖出') COLORff9966;
A7:=(2*C+H+L)/4;
Var1:=LLV(LOW,34);
Var2:=HHV(HIGH,34);
SK:=EMA((A7-Var1)/(Var2-Var1)*100,n);
SD:=EMA(0.667*REF(SK,1)+0.333*SK,p);
Var3:=LLV(LOW,120);
Var4:=HHV(HIGH,60);
Var5:=Var4-Var3;
最低价: Var3;
最高价: Var4;
DRAWTEXT(IF(count(closeq/10 and vol>=1.5*ma(vol,5) and
count(sk>=sd,3) and ref(low,1)=LLV(Low,120),1,0),LOW,'买进') COLOR0099ff;
DRAWTEXT(IF(count(close6/10 and
count(sk>sd,6) and ref(low,5)=LLV(Low,120) and ref(close>=open,4) and ref(close>open,3) and REF(CLOSE>OPEN,2) AND ref(open>close,1) and open>ref(close,1),1,0),LOW,'买进') COLOryellow;
D:=MA(CLOSE,80)-MA(CLOSE,10)/3;
DRAWTEXT(if(CLOSEMA(VOL,5)/240 AND CLOSE>REF(CLOSE,1)*1.08
AND CLOSE<>
611111*********
来自天津市
主题数:2
回帖数:11
22楼
2011-03-02 16:36:59|快速回复|引用回复|举报|
Var1:=999999999999999999999999999;
Var2:=(HHV(HIGH,21)-CLOSE)/(HHV(HIGH,21)-LLV(LOW,21))*100-10;
Var3:=(CLOSE-LLV(LOW,21))/(HHV(HIGH,21)-LLV(LOW,21))*100;
Var4:=SMA(Var3,13,8);
高抛: 90, POINTDOT;
低吸: 0, POINTDOT;
多方能量: SMA(Var4,13,8);
空方能量: SMA(Var2,21,8);
买进: IF(CROSS(多方能量,45),18,-4);
卖出: IF(CROSS(45,多方能量),18,-4);
强弱分界: 45, CIRCLEDOT;
611111*********
来自天津市
主题数:2
回帖数:11
23楼
2011-03-02 16:41:11|快速回复|引用回复|举报|
X1:EMA(C,7),color0088ff;
X2:EMA(c,21),color44bbff;
X3:EMA(X2,21),color0088ff;
x4:ema(x3,27),color009900;
x5:ema(x2,100),colorFFAA00;
x6:ema(x5,100),color009900;
顺风飞
来自辽宁省
主题数:1
回帖数:7
24楼
2011-03-05 12:31:32|快速回复|引用回复|举报|
第23横CLOSE SUM写成了CLOSESUM,然后还缺少一个;,但是本人技术水平不行,还是没弄明
白,希望楼主自己检查一下
921104
来自江苏省无锡市
主题数:22
回帖数:47
25楼
2011-03-05 13:16:25|快速回复|引用回复|举报|
好贴,谢谢!
大龙虾
dunguixin
来自北京市
主题数:6
回帖数:7
26楼
2011-03-07 12:03:54|快速回复|引用回复|举报|
小星你好!请教一下5分钟的收盘价用公式怎么表示?谢谢了!
qinlin5806
来自黑龙江省佳木斯市。