以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请老师帮忙补全一下代码  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=161213)

--  作者:hj007s
--  发布时间:2018/1/22 13:33:51
--  请老师帮忙补全一下代码
//指标
MA5:MA(C,5);
MA10:MA(C,10);
//金叉死叉
JX:CROSS(MA5,MA10);
SX:CROSS(MA10,MA5);
Lastsc:BARSLAST(SX);          //上一个死叉的K线位置
//标记死叉位置
DRAWICON(Lastsc=0,L,10,2);   

我想记录一下死叉位置,就是第一次死叉出现后,标记为1,第二个出现后标记为2,以此类推,如果有金叉出现,则清零,同理记录金叉位置
请问这样的代码后面应该怎么写?

--  作者:FireScript
--  发布时间:2018/1/22 13:54:26
--  

有一个问题,如果是遇到金叉就清空死叉的统计 或者遇到死叉就清空金叉的统计,那就有一个问题了。金叉和死叉是必然交替出现的,出现一个金叉之后必然要再过过一次死叉才能出现下一个金叉。  你这统计毫无意义了都。


--  作者:hj007s
--  发布时间:2018/1/22 14:04:43
--  
不是啊,就是想要看连续的死叉和金叉位置啊。反复交替也标记出来,

而且话说……很多东西东西不断地去试,试错了之后才知道什么是正确的,
麻烦老师了

--  作者:FireScript
--  发布时间:2018/1/22 14:38:51
--  

只能交替输出上一次金叉或者死叉间隔数,或者累计金叉(死叉)数目,如果输出连续的金叉数目或者死叉数,那就是恒为1。


--  作者:FireScript
--  发布时间:2018/1/22 14:47:34
--  

//指标
MA5:MA(C,5);
MA10:MA(C,10);
//金叉死叉
JX:CROSS(MA5,MA10);
SX:CROSS(MA10,MA5);
Lastsc:ref(BARSLAST(SX),1);  //上一个死叉的K线位置
Lastjc:ref(BARSLAST(JX),1);       
//标记死叉位置
jccount:count(JX,0);//目前为止累计金叉数目
sccount:count(SX,0);

str1:\'上次金叉:\'+NUMTOSTR(Lastjc,0);
str2:\'上次死叉:\'+NUMTOSTR(Lastsc,0);

DRAWTEXT(JX or SX,L ,if(JX,str1,str2));

 

 


--  作者:hj007s
--  发布时间:2018/1/22 14:49:45
--  
就比如说这里有3个死叉,他们的收盘依次降低,那我想标记出死叉123,那么我应该怎么标记?
当后面的第一个金叉收盘>最后一个死叉的收盘,则开始记录金叉位置,那我应该怎么写??
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180122144417.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/1/22 14:50:23编辑过]

--  作者:hj007s
--  发布时间:2018/1/22 14:50:43
--  
收盘
--  作者:hj007s
--  发布时间:2018/1/22 14:50:56
--  
shou盘………………我勒个去,,,你们屏蔽了关键字?
--  作者:hj007s
--  发布时间:2018/1/22 15:00:08
--  

//指标
MA5:MA(C,5);
MA10:MA(C,10);
//金叉死叉
JX:CROSS(MA5,MA10);
SX:CROSS(MA10,MA5);
Lastsc:ref(BARSLAST(SX),1);  //上一个死叉的K线位置
Lastjc:ref(BARSLAST(JX),1);        
//标记死叉位置
jccount:count(JX,0);//目前为止累计金叉数目
sccount:count(SX,0);

str1:\'上次金叉:\'+NUMTOSTR(Lastjc,0);
str2:\'上次死叉:\'+NUMTOSTR(Lastsc,0);

DRAWTEXT(JX or SX,L ,if(JX,str1,str2));


你这样标记死叉延后了2个Bar,我那样标记就是在当时出现死叉时候的位置,老师,你这样标记死叉的位置的理由是???


--  作者:FireScript
--  发布时间:2018/1/22 15:15:01
--  

原本思路是当死叉的时候 显示上次死叉位置。那个没有延2个BAR,是延迟一个BAR,忘记改了。因为如果在当前死叉位置使用barslast(死叉)返回值是0,这样就无法获取上次死叉位置了。

这里改下:

Lastsc:ref(BARSLAST(SX),1)+1,NODRAW;  //上一个死叉的K线位置
Lastjc:ref(BARSLAST(JX),1)+1,NODRAW;