如何在分笔分段基础上写公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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%的涨幅,下跌是

相关文档
最新文档