以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  C穿越MA20  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=6415)

--  作者:jztyy
--  发布时间:2011/5/4 17:22:52
--  C穿越MA20

初学编程,请问如果要定义C穿越MA20时就开多,写C>MA20,与CROSS(C,MA20),两者是一样的吗?


--  作者:阿火
--  发布时间:2011/5/4 20:26:01
--  
不一样。c>ma20可能一直成立。cross(c,ma20)只有在c由下而上上穿ma20的时候才成立
[此贴子已经被作者于2011-5-4 20:26:49编辑过]

--  作者:jinzhe
--  发布时间:2011/5/5 9:09:35
--  

不一样,c>ma20能一直成立;而cross(c,ma20)只有c上穿ma20时成立。


--  作者:虫儿飞
--  发布时间:2011/5/5 9:35:38
--  
cross(c,ma20) 是从下往上穿过 ma20均线才达成条件
--  作者:jztyy
--  发布时间:2011/5/5 9:52:02
--  

比如

MA5:=MA(CLOSE,5);

MA10:=MA(CLOSE,10);

MA20:=MA(CLOSE,20);

{开多} ENTERLONG: MA5>MA10 AND MA10>MA20,TFILTER;

{平多} EXITLONG: MA5<MA10 AND MA10<MA20,TFILTER;

因为MA5>MA10和 MA10>MA20成立后就一直成立,那么它们什么时间开、平仓,

这时MA5>MA10是相当于CROSS(MA5,MA10)、MA10>MA20相当于CROSS(MA10,MA20)吗,

为什么公式用>,而不用CROSS呢


--  作者:fly
--  发布时间:2011/5/5 12:51:07
--  

2楼正解.请楼主再好好体会一下!!!

 

楼主的本意,是想MA5,MA10,MA20成多头排列的情况下,开多仓吧

按楼主的写法,会在MA5>MA10和 MA10>MA20成立后每一根K线上都开仓

 

可以改成以下写法,就会在成多头排列的条件,第一次成立时,开多仓

MA5:=MA(CLOSE,5);

MA10:=MA(CLOSE,10);

MA20:=MA(CLOSE,20);

 

//当MA5>MA10,且MA10自下而上上穿MA20的条件成立时,开多仓

{开多} ENTERLONG: MA5>MA10 AND CROSS(MA10,MA20),TFILTER;

//当MA5<MA10,且MA20自下而上上穿MA10的条件成立时,平多仓

{平多} EXITLONG: MA5<MA10 AND CROSS(MA0,MA10),TFILTER;