目录(2023,1,21修订)
前言 1
一、 什么是抵扣价 2
二、 为什么要研究抵扣价 4
三、 抵扣价走势的几种状况 4
1. 多头有利 4
2. 震荡 5
3. 空头有利 5
四、 抵扣价指标参数 6
五、 利用抵扣价制定交易计划 7
六、 抵扣价公式编写过程(思考与练习) 8
1. 通达信公式编辑器设置 8
2. 外部参数的定义 9
3. 内部参数的定义 9
4. 像图层一样由底向上写代码 9
5. 动态的均线 10
6. 运动的K线 11
7. 联动的抵扣价垂线 12
8. 定义一个简易的参考盈亏比 13
七、 抵扣价公式完整代码 13
附录1:通达信颜色表大全 16
附录2:盈亏比与胜率对余额的影响 18
附录3:根据盈亏比与胜率计算仓位 18
前言
本文是我对自己学习过程的记录和思考。希望能对初入股市的你有所帮助。
在我看来公式的作用是把数据通过可视化的方式展现,从而方便投资者理解判断目前市场的状况;数据展现出来的状态是已经发生事情,并不表示将要发生的事情。
编写公式的目的是为了根据数据进行各种情况的推演,制定有利于自己的交易计划。
本文编写经历数次修整,插图中的个股并非都一样,后期代码有轻微改动,所以前后截图略有一些差异。后续会再抽时间完善,作为入门系列文章中的第一章。
您的点赞是我写作的动力,请点赞,谢谢。
SK
2023.1
一 、什么是抵扣价

图1 抵扣价标识
图示说明:
①②③垂线指示的收盘价是对应抵扣价的位置(默认为20、60、120);
④⑤⑥为抵扣价所使用的均线(默认为20、60、120);
⑦是目前收盘价位置;
⑧是目前所显示的均线类型(可选EMA或MA);
MA均线的计算方法为:N日移动平均线=N日收市价之和/N
公式对应的N日第一个价格叫抵扣价。
举例说明:某股连续十个交易日收盘价分别为:(单位:元)
8.15、 8.07、 8.84、 8.10、 8.40、 9.10、 9.20、 9.10、 8.95、 8.70
以五天短期均线为例:
第五天均值=(8.15+8.07+8.84+8.10+8.40)/5=8.31
第六天均值=(8.07+8.84+8.10+8.40+9.10) /5=8.50
第七天均值=(8.84+8.10+8.40+9.10+9.20)/5=8.73
第八天均值=(8.10+8.40+9.10+9.20+9.10)/5=8.78
第九天均值=(8.40+9.10+9.20+9.10+8.95)/5=8.95
第十天均值=(9.10+9.20+9.10+8.95+8.70)/5=9.01
如上面例子每天的抵扣价为左边第一个数值,因此我们定义如下
20抵扣价就是从右往左数第20日的收盘价;
60抵扣价就是从右往左数第60日的收盘价;
120抵扣价就是从右往左数第120日的收盘价。
当最新的价格高于抵扣价,对应均线呈上升形态,反之呈下降形态;抵扣价原理是基于➊均线理论为基础的理论,分析的是均线有利运行方向。
!注意
➊均线理论不能解决的问题,抵扣价同样不能解决;由于不知道未来的价格是多少,所以抵扣价所展示的方法和推演并不是“预测”,不能判断均线的未来走势。移动平均线是一种趋势追踪的工具,便于识别趋势已经终结或反转,领先的趋势正在形成或延续的契机。它不会领先于市场,只是忠实地追随市场,所以它具有滞后的特点,然而却无法造假。
二、为什么要研究抵扣价
抵扣价可以解决短线交易的交易时机问题(择时交易)。通过抵扣价的运行方向判断有利于均线运行的方向(此处注意是“➊有利方向”,并非“实际方向”)。需要注意的是抵扣价并非唯一的择时交易解决方案。在以后会陆续讨论其他的观察指标搭配使用,从而有利提高➋盈亏比。
三、抵扣价走势的几种状况
1,多头有利
假如新一天的收盘价 > 抵扣价,均线向上。由此推演,收盘价未知,已知抵扣价在N日内保持向下(特别是迅速向下)时,那么在未来N天内收盘价大于抵扣价的概率增加。有如下几种情况发生,
未来N天假如收盘价向上走,均线会快速向上,有利多头;
未来N天假如收盘价基本不动,均线会保持向上,有利多头;
未来N天假如收盘价缓慢向下走(降幅小于抵扣价),均线会缓慢向上,有利多头;
假如未来N天假如收盘价快速向下走(降幅大于抵扣价且价格低于抵扣价),均线会缓慢向下,有利空头;
◈注释
➊有利方向:假设未来价格往此方向变化的话,均线变化幅度会比反向变化更大。
➋盈亏比:盈亏比的计算公式就是总获利金额除以总亏损金额,举例来说:总获利金额100,总亏损金额50,盈亏比=100/50就是盈亏比=2,表示每赚2块钱就要付出1块钱的亏损,这也反映出交易获利时所承担的风险。
2,震荡
若新一天的收盘价 = 抵扣价,均线持平;由此推演,收盘价未知,已知抵扣价在N日内保持持平,那么在未来收盘价,有如下情况发生,
假如收盘价突然跳高,均线会快速向上,有利多头;
假如收盘价突然下跌,均线会快速向下,有利空头;
3,空头有利
若新一天的收盘价 < 抵扣价,均线向下。由此推演,收盘价未知,已知抵扣价在N日内保持向上(特别是迅速跳高)时,那么在未来N天内收盘价小于抵扣价的概率增加。有如下情况发生,
未来N天假如收盘价向下走,均线会快速向下,有利空头;
未来N天假如收盘价基本不动,均线会保持向下,有利空头;
未来N天假如收盘价缓慢向上走(升幅小于抵扣价),均线会缓慢向下,有利空头;
假如未来N天假如收盘价快速向上走(升幅大于抵扣价且价格高于抵扣价),均线会缓慢向上,有利多头;
四、抵扣价指标参数

图示2 抵扣价参数调整
参数说明
1,MA2EMA参数切换显示均线类型;
2,LINETYPE参数切换垂线显示类型;
3,D0参数为遮盖K线的数量,最大值为180,最小值为0;
五、利用抵扣价制定交易计划

图3 利用抵扣价做交易计划
在图示3中,我调整了参数D0以方便复盘说明如何制定交易计划。
选择这个位置的原因是“20抵扣价”在这个位置上和收盘价接近同一水平线,而且“20抵扣价”为持续下行,符合“多头有利”的状态。
◈重要提醒
决定交易不能依赖单一指标,影响股价的因素是复杂的。本例子仅用于说明抵扣价在交易计划中的使用方法之一。在实际交易计划中,切换周线或60分钟线以观察均线变化也是必须的过程。
止损和止盈的位置需要在另外的文章中讨论说明。在本例子中,止盈为上一个k线波峰,止损为上一个波谷加交易价格的中间值。
交易计划举例:
1,交易价格①收盘价57买入;
2,止损设置取②最低价49和57的中间值53元;
3,止盈位置设置为③上一个波峰68元;
4,关键时间点为“20抵扣价”走到底部最低点的时间,大约为10个交易日(10日之后可根据有利自己的情况选择离场或重新制定交易计划)。
六、抵扣价公式编写过程(思考与练习)
1,通达信公式编辑器设置
在通达信个股分析的页面中,可以用公式管理器(快捷键CTRL+F),新建一个公式。

图4 公式管理器
2,外部参数的定义
在“指标公式编辑器”中设置,由于本公式为主图使用,而且不使用系统默认的K线图,因此设置为“主图替换”。
需要经常切换的外部参数放到左侧参数区,不需要经常切换的参数可以在编辑区编写。

图5 公式编辑器的顶部
3,内部参数的定义

图6 第1段代码
上面这段代码中,半角冒号“:”的左侧为参数的名称,右侧为参数的内容;
等号“=”表示该参数不显示输出结果,没有“=”的话,这行代码会输出一条对应数值的曲线。
注意每行结束用半角分号“;”表示。
代码中绿色的这几个字母分别代表股价的4个数值,C 收盘价,也可写成CLOSE;O 开盘价,也可写成OPEN;H 最高价,也可写成HIGH;L 最低价,也可写成LOW;
4,像图层一样由底向上写代码
在公式代码的执行中,写在最前面的内容会显示在最底层,后面的内容如果有重叠会遮盖前面的内容显示在画面的最上面(类似画图软件中的图层概念)。
继续输入代码

图7 第2段代码
这段代码中,NOTEXT开头的名字表示,这行内容只输出显示图形,不在状态栏显示名字和数值;
IF的用法 IF(X,A,B)若X不为0则返回A,否则返回B,在这里表示当“MA2EMA”这个参数设置为0时,输出MA均线,当“MA2EMA”不为0时,输出EMA均线;
后面的COLORGRAY,表示这个曲线的颜色为灰色(GRAY)。在通达信中,定义颜色会使用“COLOR+代码”来表达。除了官方公开的颜色代码之外,可以参考文章最后的“通达信颜色表”通达信颜色表获取更多颜色定义。
保存后,看下我们得到类似以下图形

图8 最底层的灰色的线条
5,动态的均线
继续输入代码

图9 第3段代码
让D0这个参数影响均线的颜色变化;
“LINETHICK+数字”表示加粗显示曲线,数字越大,线条越粗;
保存后,调整D0,看看,曲线的变化;

图10 彩色的曲线
继续输入代码

图11 第4段代码(显示当前均线类型)
1,当满足条件MA2EMA=0时,在横轴0.01纵轴0.9位置书写红色文字“MA”;
2,当满足条件MA2EMA=1时,在横轴0.01纵轴0.9位置书写红色文字“EMA”;
3,当满足条件MA2EMA=2时,在横轴0.01纵轴0.9位置书写红色文字“MA+EMA”;
通达信的坐标定义横轴最左侧为0,最右侧为1;纵轴最上为0,最下为1。
6,运动的K线
继续输入代码

图12 第5段代码
这里的作用是重新定义价格显示的时间,方便后面显示动态的K线。
继续输入代码

图13 第6段代码
1,STICKLINE画一根灰色的柱子在均线图层之上,数值从最低价到最高价,作用是在这一层画“小脚印”,就像运动轨迹;
2,DRAWKLINE在灰色脚印图层上,画彩色K线;
3,受“D0”参数影响,当D0为任意数N时,K线会不显示最新的N个数值,显示效果如下图。

图14 运动的K线
!注意
在设置D0时,尝试使用鼠标中间的滚轮来改变数值的大小,同时留意图像的变化过程。
这个功能能更直观地理解价格的运行和均线的关系。便捷地复盘能加深理解价格的运行。有些现象用图形能看出来,但是未必能用文字准确描述出来。例如我们能想象出“均线缠绕”的状态画面,但是很难用程序准确描述何为“缠绕”。
7,联动的抵扣价垂线
继续输入代码

这段代码的作用是画出3根垂线指向对应抵扣价的位置,并且会跟随D0参数的设置而变动。

图15 联动的抵扣价垂线
8,定义一个简易的参考盈亏比
这里的演示代码并不准确能描述“盈亏比”,需要另行讨论“盈亏比”的定义。实际应用中,每个人心里的“盈亏比”定义并不一样。
继续输入代码
止盈价:HHV(H1,20),NODRAW,COLORRED; 止损价:LLV(L1,20),NODRAW,COLOR437B00; NOTEXT11:DRAWSL(CURRBARSCOUNT=D0+1,止损价,0,1000,2),COLOR437B00; NOTEXT12:DRAWSL(CURRBARSCOUNT=D0+1,止盈价,0,1000,2),COLORRED; 盈亏比:(止盈价-C1)/(C1-止损价),NODRAW,COLORRED; DRAWTEXT_FIX(1,0.36,0.95,0,'COPYRIGHT (C) ALL RIGHTS RESERVED 版权所有 @SK'),COLORLIGRAY; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.1,0,STRCAT('止盈价:',CON2STR(REF(止盈价,D0),2))),COLOR356AD6; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.15,0,STRCAT('当前价:',CON2STR(REF(C1,D0),2))),COLOR5C3274; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.2,0,STRCAT('止损价:',CON2STR(REF(止损价,D0),2))),COLOR437B00; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.25,0,STRCAT('盈亏比:',CON2STR(REF(盈亏比,D0),2))),COLOR984888;
NODRAW表示这行内容只输出数值到状态栏,不绘制图形;
最终的效果如下

图16 抵扣价公式完整效果
七、抵扣价公式完整代码
{::公式开始::}
D1:=20;
D2:=60;
D3:=120;
C1:=C;
O1:=O;
H1:=H;
L1:=L;
NOTEXT01:IF(MA2EMA=0,MA(C1,D3),EMA(C1,D3)),COLORGRAY;
NOTEXT02:IF(MA2EMA=0,MA(C1,D2),EMA(C1,D2)),COLORGRAY;
NOTEXT03:IF(MA2EMA=0,MA(C1,D1),EMA(C1,D1)),COLORGRAY;
NOTEXT04:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=2,MA(C1,D3),DRAWNULL)),COLOREBC389;
NOTEXT05:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=2,MA(C1,D2),DRAWNULL)),COLORCAE9D6;
NOTEXT06:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=2,MA(C1,D1),DRAWNULL)),COLORBCBFF6;
NOTEXT07:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=0,MA(C1,D3),EMA(C1,D3))),COLORC1813A,LINETHICK2;
NOTEXT08:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=0,MA(C1,D2),EMA(C1,D2))),COLORD2CC83,LINETHICK2;
NOTEXT09:IF(CURRBARSCOUNT<=D0,DRAWNULL,IF(MA2EMA=0,MA(C1,D1),EMA(C1,D1))),COLOR3D59F4,LINETHICK2;
DRAWTEXT_FIX(MA2EMA=0,0.01,0.9,0,'MA'),COLORRED;
DRAWTEXT_FIX(MA2EMA=1,0.01,0.9,0,'EMA'),COLORRED;
DRAWTEXT_FIX(MA2EMA=2,0.01,0.9,0,'MA+EMA'),COLORRED;
HA1:=IF(CURRBARSCOUNT<=D0,DRAWNULL,H1);
OA1:=IF(CURRBARSCOUNT<=D0,DRAWNULL,O1);
LA1:=IF(CURRBARSCOUNT<=D0,DRAWNULL,L1);
CA1:=IF(CURRBARSCOUNT<=D0,DRAWNULL,C1);
HA2:=IF(CURRBARSCOUNT<=D0-1,DRAWNULL,H1);
OA2:=IF(CURRBARSCOUNT<=D0-1,DRAWNULL,O1);
LA2:=IF(CURRBARSCOUNT<=D0-1,DRAWNULL,L1);
CA2:=IF(CURRBARSCOUNT<=D0-1,DRAWNULL,C1);
STICKLINE(CURRBARSCOUNT<=D0,L1,H1,2,0),COLORGRAY;
NOTEXT4:DRAWKLINE(HA1,OA1,LA1,CA1);
DAY1:=D0+D1;
DAY2:=D0+D2;
DAY3:=D0+D3;
HH:=IF(LINETYPE=1,L1,H1);
DRAWSL(CURRBARSCOUNT=DAY1,HH,10000,1000,LINETYPE),COLOR0083F0;
DRAWSL(CURRBARSCOUNT=DAY2,HH,10000,1000,LINETYPE),COLORD2CC83;
DRAWSL(CURRBARSCOUNT=DAY3,HH,10000,1000,LINETYPE),COLORC1813A;
止盈价:HHV(H1,20),NODRAW,COLORRED; 止损价:LLV(L1,20),NODRAW,COLOR437B00; NOTEXT11:DRAWSL(CURRBARSCOUNT=D0+1,止损价,0,1000,2),COLOR437B00; NOTEXT12:DRAWSL(CURRBARSCOUNT=D0+1,止盈价,0,1000,2),COLORRED; 盈亏比:(止盈价-C1)/(C1-止损价),NODRAW,COLORRED; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.1,0,STRCAT('止盈价:',CON2STR(REF(止盈价,D0),2))),COLOR356AD6; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.15,0,STRCAT('当前价:',CON2STR(REF(C1,D0),2))),COLOR5C3274; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.2,0,STRCAT('止损价:',CON2STR(REF(止损价,D0),2))),COLOR437B00; DRAWTEXT_FIX(CURRBARSCOUNT=D0,0.05,0.25,0,STRCAT('盈亏比:',CON2STR(REF(盈亏比,D0),2))),COLOR984888;
DRAWTEXT_FIX(1,0.36,0.95,0,'COPYRIGHT (C) ALL RIGHTS RESERVED 版权所有 @SK'),COLORLIGRAY;
{::公式结束::}
八、扩展的大盘抵扣价指标
有时候我们可能会需要在通达信中同时显示多个不同的大盘指标,用来对比价格的变化。就像下面的这张图,同时显示了上证,沪深,深证三个大盘的K线。

图17 扩展的大盘抵扣价公式
对比前文的代码,只需要一个小小的变动就能达到目的。

红色的这段”999999$c” 999999是上证的代码,C是收盘价,$是分割符。
附录1:通达信颜色表大全


附录2:盈亏比与胜率对余额的影响

附录3:根据盈亏比与胜率计算仓位
