如何在分笔分段基础上写公式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何在分笔分段基础上写公式
作者:悟多
分笔分段公式其实是一个基础公式,较接近的解决了缠论中比较难处理的笔段关系。
有了顶、底、笔段数据后,在此基础上,可写出相当多缠论的公式来。
本人写一个基础的公式教程,抛砖引玉,各位同学有好的想法可与我沟通哦。
在分笔分段公式基础上写公式有两种写法:
1为直接写普通公式,比较简单,适用与普通学友。
2为再写一个新的dll,来调用我的基础dll,这个稍难,要有编程基础,但写起来自由
1.普通公式写法
以飞狐举例。
比如我们要写一个按笔统计成交量之和的公式
思路如下:
第一步:要找到所有笔的顶底(当然也可以用段的)
1.如何找出顶底呢?在分笔分段基础公式中,-1代表底,1代表顶,其余的数据都是0,所以我们找出-1或1就行了。
var1:="chzhshch@kxian";
var2:="chzhshch@bi";
a1:barslast(var2<>0);
前面两行是调用分笔分段公式进行计算,第3行,就把所有的顶和底都到当前的距离找出来了。不懂的,可以把上面三行放到附图,自己调试一下看看。看光标位置,a1的值为12,所以a1到前一个顶或底的位置是12,但具体是顶还是底,我们还需要再观察一下。
再来一行代码
a2:ref(var2,a1);
这行代码的意思是取出前a1个位置,var2的数值,由于a1的值代表到前一个顶或底的位置,所以a2取出的的值,一定是-1或者1;
我们再放到附图观察一下。仔细看,黄白线像脉冲形,它的值要么是是-1,要么是1
再仔细观察一下上图,好像不太符合使用习惯啊。
比如:
附图白线,它到前顶或前底的距离最小数值是0,但实际中啊有距离0的的啊。
上涨的一笔,对应附后图黄线的值是-1,下跌一笔,对应的数值是1。
所以我们把它要稍微调整一下。
var1:="chzhshch@kxian";
var2:="chzhshch@bi";
a1:=barslast(var2<>0);
//这行换成:=号,不要显示出来,不然和后面的图缠在一起
了,看不清。
a2:=ref(var2,a1);
//这行换成:=号,不要显示出来,不然看不清。
aa1:ref(a1+1,1);
aa2:-ref(a2,1);效果如上图,这下好看了吧。
上涨的一笔,对应aa2的数据是1,下跌对应的-1.而aa1就代表了真实的到前顶或前底的距离。
基本数据有了,下面要进行第二步。
第二步:.要计算出所有顶底间的成交量之和。
先区分出上涨or下跌的成交量,正的表示上涨,负的表示下跌。
var1:="chzhshch@kxian";
var2:="chzhshch@bi";
a1:=barslast(var2<>0);
a2:=ref(var2,a1);
aa1:ref(a1+1,1); //到前顶或底的距离
aa2:-ref(a2,1); //上涨or下跌
vol,volstick;
zdvol:if (aa2>0,vol,-vol);//上涨或下跌的成交量看附图绿线,上涨笔的成交量和柱状图完全吻合,下跌的的刚好相反。
2.统计成交量。
于是我们就可以统计笔内成交量了。加一行代码
sumvol:sum(zdvol,aa1);如图,已经完全达到要求了,但统计和的数值偏大,显示不合理。
调整一下,去掉没用线,再缩小为1/10试试。如图:再完美
一下,显示出数值,不然肉眼不容易看。
最后代码如下:
var1:="chzhshch@kxian";
var2:="chzhshch@bi";
a1:=barslast(var2<>0);
a2:=ref(var2,a1);
aa1:ref(a1+1,1); //到前顶或底的距离
aa2:-ref(a2,1); //上涨or下跌
vol,volstick;
zdvol:=if (aa2>0,vol,-vol);//上涨或下跌的成交量sumvol:sum(zdvol,aa1)/10;
drawnumber(var2=1,
sumvol,sumvol,0),pxup20,coloryellow;//在笔的顶点显示数值
drawnumber(var2=-1,sumvol,abs(sumvol),0),pxdn5,coloryellow ;
drawnumber(islastbar and
aa2>0,sumvol,sumvol,0),pxup20,coloryellow;//显示最后笔没完成的数值
drawnumber(islastbar and
aa2<0,sumvol,abs(sumvol),0),pxdn5,coloryellow;
最终效果如图2.dll公式写法
飞狐有一套接口的,会写程序的一看就明白,不会的,就不是几句话能说清的了。
你可以用任何语言MASM32,VC,VB,Delphi...来写dll,只要调用chzhshch.dll就可以了。
接口文档如下,分析家,大智慧新一代,飞狐通用
这是CK缠友提供的调用chzhshch.dll代码范例。
dll中的关键代码:
LoadLibrary("chzhshch.dll");
pfnbi = (FNCZSC)GetProcAddress(g_hMod, "_bi");
后记:
上面两种方法,大智慧,分析家,飞狐通用的。
有了分笔分段公式,你可以用来做很多事
比如写段的macd面积,统计每笔上涨的周期,统计下跌速度等等。。。。。
你也可以统计出平均一周有1.3段的1F走势,这也是缘起说一周操作一次的数据统计基础。
你也可以统计出牛市平均1F上涨有有7%的涨幅,下跌是