炒股软件编制指导编写指标公式技巧全集.docx
《炒股软件编制指导编写指标公式技巧全集.docx》由会员分享,可在线阅读,更多相关《炒股软件编制指导编写指标公式技巧全集.docx(64页珍藏版)》请在冰点文库上搜索。
炒股软件编制指导编写指标公式技巧全集
编写指标公式技巧全集
0001--主图显示代码及板块
一、显示板块
例一:
DRAWTEXT〔BARPOS=SYSPARAM〔2〕,H,'\N所属板块:
'+BLKNAME〕,ALIGN4,COLORYELLOW;
例二:
DRAWTEXT〔SYSPARAM〔2〕=BARPOS,C,'所属板块:
'+BLKNAME〕,ALIGN4,COLORYELLOW;
例三:
DRAWTEXT〔SYSPARAM〔2〕=BARSCOUNT〔C〕,H,'[所属版块]:
'+BLKNAME〕,ALIGN4,COLORYELLOW;
二、显示代码及板块
S:
=STKLABEL;
DRAWTEXT〔SYSPARAM〔2〕=BARPOS,C,S〕,ALIGN4,COLORYELLOW;
DRAWTEXT〔BARPOS=SYSPARAM〔2〕,H,'\N所属板块:
'+BLKNAME〕,ALIGN4,COLORYELLOW;{N与所属板块之间空六格,以显示代码}
0031--均线多头排列
A1:
=MA〔C,N1〕;
A2:
=MA〔C,N2〕;
A3:
=MA〔C,N3〕;
A4:
=MA〔C,N4〕;
COUNT〔A1>A2ANDA2>A3ANDA3>A4,3〕;
0032--均线空头排列
A1:
=MA〔C,N1〕;
A2:
=MA〔C,N2〕;
A3:
=MA〔C,N3〕;
A4:
=MA〔C,N4〕;
COUNT〔A1 0033--N日均线向下
AA:
=MA〔C,N〕;
BB:
=REF〔AA,1〕;
AA 0034--N日均线向上
AA:
=MA〔C,N〕;
BB:
=REF〔AA,1〕;
AA>BB
0035--N日均线走平
AA:
=MA〔C,N〕;
BB:
=REF〔AA,1〕;
AA=BB
0036--向前N日至M日出现过均线死叉〔P1 AA:
=MA〔C,P1〕;
BB:
=MA〔C,P2〕;
CC:
=REF〔CROSS〔BB,AA〕,N〕;
COUNT〔CC,M〕;
0037--今日成交量大于N日以来的均量
VOL>MA〔VOL,N〕;
0038--低位密集
A1:
=COST〔85〕;
A2:
=COST〔15〕;
A3:
=A1-A2;
A4:
=〔A1+A2〕/2;
A5:
=A3/A4*100<10;
B1:
=HHV〔H,120〕;
B2:
=LLV〔L,120〕;
B3:
=B1-B2;
B4:
=〔A4-B2〕 A5ANDB4;
0039--换手率
VOL/CAPITAL*100;
0040--N日盈亏
V1:
=VOL/SUM〔VOL,N〕;
V2:
=DMA〔CLOSE,V1〕;
V3:
〔CLOSE-V2〕/V2*100;
0041--曲线叠加
指标线的叠加,是为了方便观看和比较,没什么其他的意义。
一、对指标曲线的变化幅度放大
此法,一线变形,另一线不变,但变形线的走势与原线完全相似。
举例:
C叠加V
BC:
=HHV〔C,N〕-LLV〔C,N〕;//N一般取常用主图上的K线数量
BV:
=HHV〔V,N〕;
BI:
=BC/BV;//叠加比
B:
=BI[DATACOUNT];//最后一根K线的叠加比,保证叠加比前后统一
成交量:
V,VOLSTICK;
F:
=C/REF〔C,1〕;
JC:
=REF〔C,1〕*〔1+A*F〕*B/A;//A-放大倍数,将C的涨跌幅度F放大
JL:
=LLV〔JC,N〕;//平移量。
请去掉JC句的=看JL的作用
收盘价:
C,LINETHICK0,COLORYELLOW;//只显示数值,不画线
PARTLINE〔C>0,JC-JL[DATACOUNT]〕,COLORYELLOW;//收盘价趋势线,只画线,不显示数值
通式:
曲线X叠加曲线Y
BX:
=HHV〔X,N〕-LLV〔X,N〕;
BY:
=HHV〔Y,N〕-LLV〔Y,N〕;
BI:
=BX/BY;
B:
=BI[DATACOUNT];
FX:
=X/REF〔X,1〕;
JX:
=REF〔X,1〕*〔1+A*FX〕*B/A;
XL:
=LLV〔JX,N〕;
曲线Y:
Y;
曲线X:
X,LINETHICK0;//曲线X的值
PARTLINE〔C,JX-XL[DATACOUNT]〕;//曲线X的线
二、百分比叠加
把两曲线的波动幅度划成百分比进展叠加
此法,两线都变形,但走势都与原线完全相似。
举例:
C叠加V
HV:
=HHV〔V,N〕;
DV:
=HV[DATACOUNT];
BV:
=100/DV;
V*BV,VOLSTICK;
HC:
=HHV〔C,N〕;
LC:
=LLV〔C,N〕;
BC:
=100/〔HC[DATACOUNT]-LC[DATACOUNT]〕;
〔C-LC[DATACOUNT]〕*BC;
通式一:
曲线X,曲线Y
XH:
=HHV〔X,N〕;
XL:
=LLV〔X,N〕;
XDH:
=XH[DATACOUNT];
XDL:
=XL[DATACOUNT];
BX:
=100/〔XDH-XDL〕;
曲线X:
〔X-XDL〕*BX;
YH:
=HHV〔Y,N〕;
YL:
=LLV〔Y,N〕;
YDH:
=YH[DATACOUNT];
YDL:
=YL[DATACOUNT];
BY:
=100/〔YDH-YDL〕;
曲线Y:
〔Y-YDL〕*BY;
通式二:
X曲线+Y曲线
N:
=SYSPARAM〔3〕-SYSPARAM〔2〕;
X:
=.........;{.........为X曲线定义}
XH:
=HHV〔X,N〕;
XL:
=LLV〔X,N〕;
XDH:
=XH[SYSPARAM〔3〕];
XDL:
=XL[SYSPARAM〔3〕];
BX:
=100/〔XDH-XDL〕;
曲线X:
〔X-XDL〕*BX;
Y:
=.........;{.........为Y曲线定义}
YH:
=HHV〔Y,N〕;
YL:
=LLV〔Y,N〕;
YDH:
=YH[SYSPARAM〔3〕];
YDL:
=YL[SYSPARAM〔3〕];
BY:
=100/〔YDH-YDL〕;
曲线Y:
〔Y-YDL〕*BY;
三、固定位置叠加
此法应用不多,仅举例。
例一:
主图成交量〔V叠加C〕
{M:
960,1,2000}
R0:
=M/1000;R:
=〔L-R0*SYSPARAM〔5〕〕/V;
R1:
=LLV〔R,SYSPARAM〔3〕-SYSPARAM〔2〕〕;R2:
=R1[SYSPARAM〔3〕];
R3:
=LLV〔L-R2*V,SYSPARAM〔3〕-SYSPARAM〔2〕〕;
R4:
=R3[SYSPARAM〔3〕];R5:
=〔R2*V+R4〕*0.995;
STICKLINE〔C>=REF〔C,1〕,R5,R0*SYSPARAM〔5〕,6,1〕COLORRED;
STICKLINE〔C PARTLINE〔V>=0,R0*SYSPARAM〔5〕〕COLORWHITE;
PARTLINE〔R5>0,MA〔R5,5〕〕;
PARTLINE〔R5>0,MA〔R5,10〕〕;
PARTLINE〔R5>0,MA〔R5,20〕〕;
例二:
INPUT:
N〔10,2,999〕;
M:
=SYSPARAM〔3〕-SYSPARAM〔2〕;
X:
=C;
Y:
=SUM〔IF〔CLOSE>REF〔CLOSE,1〕,VOL/CAPITAL,IF〔CLOSE XH:
=HHV〔X,M〕;XL:
=LLV〔X,M〕;XDH:
=XH[SYSPARAM〔3〕];XDL:
=XL[SYSPARAM〔3〕];
BX:
=100/〔XDH-XDL〕;
收盘:
C,LINETHICK0,;
收盘↑:
PARTLINE〔X>REF〔X,1〕,〔X-XDL〕*BX〕,COLORRED;
收盘↓:
PARTLINE〔X YH:
=HHV〔Y,M〕;YL:
=LLV〔Y,M〕;YDH:
=YH[SYSPARAM〔3〕];YDL:
=YL[SYSPARAM〔3〕];
BY:
=100/〔YDH-YDL〕;
TY:
=〔Y-YDL〕*BY;
OBV值:
Y*1000,LINETHICK0,COLOR007BFF;
OBV线↑:
PARTLINE〔Y>REF〔Y,1〕,〔Y-YDL〕*BY〕,COLORYELLOW;
OBV线↓:
PARTLINE〔Y A1:
=REF〔TY,N〕=HHV〔TY,2*N+1〕;B1:
=FILTER〔A1,N〕;C1:
=BACKSET〔B1,N+1〕;HD:
=FILTER〔C1,N〕;
A2:
=REF〔TY,N〕=LLV〔TY,2*N+1〕;B2:
=FILTER〔A2,N〕;C2:
=BACKSET〔B2,N+1〕;LD:
=FILTER〔C2,N〕;
AA:
=REF〔TY,BARSLAST〔HD〕〕;BB:
=REF〔TY,BARSLAST〔LD〕〕;A1:
=REF〔Y,BARSLAST〔HD〕〕*1000;B1:
=REF〔Y,BARSLAST〔LD〕〕*1000;
T1:
=BARSLAST〔HD〕 T2:
=BARSLAST〔HD〕>BARSLAST〔LD〕ANDNOT〔LD〕;
PARTLINE〔T1,AA〕,COLORMAGENTA,LINETHICK2;
PARTLINE〔T2,BB〕,COLORGREEN,LINETHICK2;
DRAWNUMBER〔T1=0ANDREF〔T1,1〕>0,REF〔AA,1〕+0.1,A1,2〕;
DRAWNUMBER〔T2=0ANDREF〔T2,1〕>0,REF〔BB,1〕+0.1,B1,2〕;
DRAWNUMBER〔ISLASTBARANDT1>0,REF〔AA,1〕+0.1,A1,2〕,COLORYELLOW;
DRAWNUMBER〔ISLASTBARANDT2>0,REF〔BB,1〕+0.1,B1,2〕,COLORMAGENTA;
0042--均线变色
MA05:
MA〔CLOSE,5〕;
MA30:
MA〔CLOSE,30〕;
IF〔MA05 IF〔MA05 IF〔MA05>MA30,MA30,MA30〕,COLORBLUE;
DRAWICON〔CROSS〔MA05,MA30〕,L*0.98,4〕;
DRAWICON〔CROSS〔MA30,MA05〕,H*1.02,5〕;
0055--底背离
LLV〔L,60〕=L〕ANDNOT〔LLV〔DEA,60〕=DEA〕;
0056--顶背离
HHV〔H,60〕=H〕ANDNOT〔HHV〔DEA,60〕=DEA〕;
0057--N次金叉、死叉
0轴上二次金叉
COUNT〔CROSS〔DIF,DEA〕ANDDEA>0,20〕=2ANDCROSS〔DIF,DEA〕AND
DEA>0;
0轴上三次金叉
COUNT〔CROSS〔DIF,DEA〕ANDDEA>0,20〕=3ANDCROSS〔DIF,DEA〕AND
DEA>0;
0轴上四次金叉
COUNT〔CROSS〔DIF,DEA〕ANDDEA>0,20〕=4ANDCROSS〔DIF,DEA〕ANDDEA>0;
二次金叉
EXPLAIN〔COUNT〔CROSS〔DIF,DEA〕,20〕=2ANDCROSS〔DIF,DEA〕;
二次死叉
COUNT〔CROSS〔DEA,DIF〕,20〕=2ANDCROSS〔DEA,DIF〕;
0058--5分钟副图显示15分钟K线
建公式:
0015
C15:
CLOSE;
O15:
OPEN;
H15:
HIGH;
L15:
LOW;
建公式:
十五K线
C15:
="0015.C15#MIN15";
O15:
="0015.O15#MIN15";
H15:
="0015.H15#MIN15";
L15:
="0015.L15#MIN15";
TI:
=OPENMINUTES〔TIME〕=10OROPENMINUTES〔TIME〕=25OROPENMINUTES〔TIME〕=40OROPENMINUTES〔TIME〕=55OROPENMINUTES〔TIME〕=70OROPENMINUTES〔TIME〕=85OROPENMINUTES〔TIME〕=100OROPENMINUTES〔TIME〕=115OROPENMINUTES〔TIME〕=130OROPENMINUTES〔TIME〕=145OROPENMINUTES〔TIME〕=160OROPENMINUTES〔TIME〕=175OROPENMINUTES〔TIME〕=190OROPENMINUTES〔TIME〕=205OROPENMINUTES〔TIME〕=220OROPENMINUTES〔TIME〕=235;
HH15:
=IF〔TI,H15,C15〕;
LL15:
=IF〔TI,L15,C15〕;
STICKLINE〔C15>O15,C15,O15,10,0〕,COLORRED;
STICKLINE〔C15>O15ANDH15>C15,HH15,C15,0.1,0〕,COLORRED;
STICKLINE〔C15>O15ANDO15>L15,O15,LL15,0.1,0〕,COLORRED;
STICKLINE〔C15<=O15,C15,O15,10,0〕,COLORGREEN;
STICKLINE〔C15<=O15ANDC15>L15,C15,LL15,0.1,0〕,COLORGREEN;
STICKLINE〔C15<=O15ANDH15>O15,HH15,O15,0.1,0〕,COLORGREEN;
注:
以大陆股市为例,四小时,其他市场如超过四小时,可在中间语句“TI:
=〞中以15为系数顺序加足,如:
OR250OR265……等等。
0059--挪动本钱
不知道函数算法,计算误差在所难免。
调整参数“%〞可看到不同的挪动本钱。
///筹码%
INPUT:
%〔90,1,100〕;
A:
=AMOUNT/V/100;
本钱:
FLOOR〔COST〔50-%/2〕*100〕/100,COLORYELLOW,LINETHICK0;
~:
CEILING〔COST〔50+%/2〕*100〕/100,COLORYELLOW,LINETHICK0;
集中度:
INTPART〔〔~-本钱〕/〔~+本钱〕*1000〕/10,COLORGREEN;
平均本钱:
ROUND〔COST〔50〕*100〕/100,LINETHICK0;
穿透力:
〔WINNER〔C〕-REF〔WINNER〔C〕,1〕〕/V*CAPITAL,LINETHICK0;//计算误差大
//穿透力2:
〔WINNER〔C〕-WINNER〔O〕〕/V*CAPITAL,LINETHICK0;//这一写法还是误差大
获利比例:
ROUND〔WINNER〔C〕*1000〕/10,LINETHICK0;
0059--挪动本钱
不知道函数算法,计算误差在所难免。
调整参数“%〞可看到不同的挪动本钱。
///筹码%
INPUT:
%〔90,1,100〕;
A:
=AMOUNT/V/100;
本钱:
FLOOR〔COST〔50-%/2〕*100〕/100,COLORYELLOW,LINETHICK0;
~:
CEILING〔COST〔50+%/2〕*100〕/100,COLORYELLOW,LINETHICK0;
集中度:
INTPART〔〔~-本钱〕/〔~+本钱〕*1000〕/10,COLORGREEN;
平均本钱:
ROUND〔COST〔50〕*100〕/100,LINETHICK0;
穿透力:
〔WINNER〔C〕-REF〔WINNER〔C〕,1〕〕/V*CAPITAL,LINETHICK0;//计算误差大
//穿透力2:
〔WINNER〔C〕-WINNER〔O〕〕/V*CAPITAL,LINETHICK0;//这一写法还是误差大
获利比例:
ROUND〔WINNER〔C〕*1000〕/10,LINETHICK0;
0060--妙用SUMBARS〔〕函数
SUMBARS〔X,N〕
函数的用法如下:
向前累加到指定值到如今的周期数。
用法:
SUMBARS〔X,A〕
将X向前累加直到大于等于A,返回这个区间的周期数
例如:
SUMBARS〔VOL,CAPITAL〕
1、设计一个指标,计算当日成交量是几天内的最高成交量?
2、设计一个指标,计算当日最高价是几天内的最高价?
提示:
直接用HHV〔〕函数无法得到正确结果。
例一:
B:
=HHV〔H,0〕;
A:
=IF〔BARPOS=1,B[DATACOUNT]*1.2,H〕;
价:
SUMBARS〔REF〔A,1〕-A,0〕;
U:
=HHV〔V,0〕;
S:
=IF〔BARPOS=1,U[DATACOUNT]*1.2,V〕;
量:
SUMBARS〔REF〔S,1〕-S,0〕;
或:
VH:
=HHV〔VOL,0〕;
FV:
=IF〔BARPOS=1,VH[DATACOUNT]*1.2,VOL〕;//VH[DATACOUNT]是历史最高成交量
量创新高周期数:
SUMBARS〔REF〔FV,1〕-FV,0〕;
{这里的关键是REF〔FV,1〕-FV,想想看写成FV-REF〔FV,1〕行不行?
}
另一种写法:
VH:
=HHV〔VOL,0〕;
FV:
=VOL;
FV[1]:
=VH[DATACOUNT]*1.2;//VH[DATACOUNT]是历史最高成交量
量创新高周期数:
SUMBARS〔REF〔FV,1〕-FV,0〕;
{这里的关键是REF〔FV,1〕-FV,想想看写成FV-REF〔FV,1〕行不行?
}
代码已经成功了,原理是什么呢?
假设某日成交量是3日内的最大成交量,那么必有:
REF〔VOL,3〕-VOL>=0
等价于:
〔REF〔VOL,3〕-REF〔VOL,2〕〕+〔REF〔VOL,2〕-REF〔VOL,1〕〕+〔REF〔VOL,1〕-VOL〕>=0
意思就是说,“昨成交量与今成交量之差〞逐日累加,直到某日累加和大于等于0,那么这之间的天数,就是所要求的日数。
我们再来看看SUMBARS〔〕函数的含义:
SUMBARS〔X,A〕:
将X向前累加直到大于等于A,返回这个区间的周期数。
显然上面的式子:
〔REF〔VOL,3〕-REF〔VOL,2〕〕+〔REF〔VOL,2〕-REF〔VOL,1〕〕+〔REF〔VOL,1〕-VOL〕>=0
可以写成:
SUMBARS〔REF〔VOL,1〕-VOL,0〕;
为何第1周期的成交量要交换成比所有成交量都大的数值?
最后,再来考虑一个问题,把题目中的求“最大〞,改成求“最小〞,即多少天内是最小的?
例二:
B:
=HHV〔H,0〕;
A:
=IF〔BARPOS=1,9999,H〕;
Z:
SUMBARS〔REF〔A,1〕-A,0〕;
DRAWNUMBER〔BARPOS=SYSPARAM〔1〕,1,Z,0〕ALIGN4,COLORWHITE;
U:
=HHV〔V,0〕;
S:
=IF〔BARPOS=1,999999999999,V〕
Y:
SUMBARS〔REF〔S,1〕-S,0〕;
DRAWNUMBER〔BARPOS=SYSPARAM〔1〕,1,Y,0〕ALIGN3,COLORYELLOW;
例三:
HH:
=IF〔BARSCOUNT〔C〕=1,9999,H〕;
ZH:
SUMBARS〔REF〔HH,1〕-HH,0〕;//价创了N周期新高
VH:
=IF〔BARSCOUNT〔C〕=1,99999999,V〕;
HV:
SUMBARS〔REF〔VH,1〕-VH,0〕;//量创了N周期新高
LL:
=IF〔BARSCOUNT〔C〕=1,0,L〕;
ZL:
SUMBARS〔LL-REF〔LL,1〕,0〕;//价创了N周期新低
VL:
=IF〔BARSCOUNT〔C〕=1,0,V〕;
LV:
SUMBARS〔VL-REF〔VL,1〕,0〕;//量创了N周期新低
附注:
用99999999等详细数值,最好是尽可能大的数值〔比方单精数的上限〕,否那么仍有可能无法全部完成计算,比方上证指数的年线,成交量最大时,仍然超过了99999999。
倒数第6天的最高价格怎么表示?
FH:
=HIGH;
FH[DATACOUNT-5];//倒数第6天的最高价格。
[DATACOUNT]
返回K线的