2024年3月31日发(作者:)
网页教程地址:
/
分笔分段公式其实是一个基础公式,非常接近的解决了缠论中比较难处理的笔段关系。
有了顶、底、笔段数据后,在此基础上,可写出相当多缠论的公式来。
在分笔分段公式基础上写公式有两种写法:
1为直接写普通公式,比较简单,适用与普通缠友.
2为再写一个新的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;
公式写法
飞狐有一套接口的,
你可以用任何语言MASM32,VC,来写dll,只要调用就可以
了。
代码范例在
/ 6楼有下载


发布评论