代码如下:mdiff:="macd.diff";
mdea:="macd.dea";
mmacd:="macd.macd1";
白上黄下位置:=BARSLAST(cross(MDIFF,mdea));
对上一次白上穿距离:=ref(白上黄下位置,白上黄下位置+1)+1+白上黄下位置;
黄上白下位置:=BARSLAST(cross(mdea,mdiff));
对上一次黄上穿距离:=ref(黄上白下位置,黄上白下位置+1)+1+黄上白下位置;
aa:对上一次黄上穿距离-白上黄下位置;
bb:白上黄下位置+1;
cc:ref(llv(low,aa),bb);
aaa:37;
bbb:2;
ccc:ref(llv(LOW,aaa),bbb);
------------------------------------------------------------------------
把代码加载到图表上,如今天的RB13日线数据,可计算出aa为37,bb为2.
手工赋相同的值给aaa和bbb,
可发现cc与ccc的值是不相同的。
需求主要是求出macd相邻两个绿柱时期的2个低点,还有其它一些计算需求。
其实这个需求不是问题的重点,重点是通过运算得出的aa和bb推导出的cc值不正常。
k线图最新位置手工输入等值的aaa和bbb求出ccc比较一下。
你自己代理逻辑处理有问题。
白上黄下位置:BARSLAST(cross(DIFF,DEA));
对上一次白上穿距离:ref(白上黄下位置,白上黄下位置+1)+1+白上黄下位置+1;
黄上白下位置:BARSLAST(cross(DEA,DIFF));
对上一次黄上穿距离:ref(黄上白下位置,黄上白下位置+1)+2+黄上白下位置+1;
aa:对上一次黄上穿距离-(白上黄下位置+1);
bb:白上黄下位置+1;
cc:ref(llv(low,aa),bb);
aaa:aa;
bbb:bb;
ccc:ref(llv(LOW,aaa),bbb);
按照楼上意思代码这样表达:
mdiff:="macd.diff";
mdea:="macd.dea";
mmacd:="macd.macd1";
白上黄下位置:=BARSLAST(cross(mDIFF,mDEA));
对上一次白上穿距离:=ref(白上黄下位置,白上黄下位置+1)+1+白上黄下位置+1;
黄上白下位置:=BARSLAST(cross(mDEA,mDIFF));
对上一次黄上穿距离:=ref(黄上白下位置,黄上白下位置+1)+2+黄上白下位置+1;
aa:对上一次黄上穿距离-(白上黄下位置+1);
bb:白上黄下位置+1;
cc:ref(llv(low,aa),bb);
aaa:aa;
bbb:bb;
ccc:ref(llv(LOW,aaa),bbb);
a1:38;
b1:3;
c1:ref(llv(LOW,a1),b1);
见下图:

[此贴子已经被作者于2016-10-3 15:02:02编辑过]