以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  几个关于创新低新高的问题麻烦老师解答一下  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=52585)

--  作者:vermouth
--  发布时间:2013/5/29 17:02:16
--  几个关于创新低新高的问题麻烦老师解答一下
第一个:
怎么来表示上证没有创新低或者新高
这个是我写的上证创新低的一段:
sl:=CALLSTOCK(\'000001\',vtLOW,1,0);
SZXD:=REF(LLV(sl,CYC),1);
是一分钟的图。不知道是否有问题。麻烦老师看下。

是不是可以通过上证创新低来比较得出上证没有创新低?

第二个:
当股指创新低的时候,怎么来表示创新低那根K线的最高点?

第三个:
当我知道股指创新低的时候,说明前面一根K线应该已经走完了。
那我用if语句的时候 “if 创新低 and 引用一根K线的最高点 then”
不知道这里的引用一个K线的最高点是不是就是穿新低之后的这根K线?

麻烦老师解答一下。谢了

--  作者:jinzhe
--  发布时间:2013/5/29 17:12:49
--  

1.直接在引用公式进行判断是否创新低,再引用。你写的是错误的,因为被引用对象加上ref进行偏移,得到的不是被引用对象的偏移,得到是自身的偏移

2、valuewhen(l<ref(llv(l,周期),1),h)

3.这个是什么思路?


--  作者:vermouth
--  发布时间:2013/5/29 17:18:56
--  
以下是引用jinzhe在2013-5-29 17:12:49的发言:

1.直接在引用公式进行判断是否创新低,再引用。你写的是错误的,因为被引用对象加上ref进行偏移,得到的不是被引用对象的偏移,得到是自身的偏移

2、valuewhen(l<ref(llv(l,周期),1),h)

3.这个是什么思路?


CYC:=BARSLAST(DATE>REF(DATE,1))+1;                              

sl:=CALLSTOCK(\'000001\',vtLOW,1,0);

SZXD:=REF(LLV(sl,CYC),1

刚才少了一个CYC

如果还不对。麻烦老师写一个吧。。。


我第三个的思路是这样的:当股指达到新低的时候上证没有达到新低。这个时候如果新低后面的那个K线的高点比前面的高点要高。我做多。


--  作者:jinzhe
--  发布时间:2013/5/30 9:01:51
--  

我写的1就是表明你写的是错误的,不要ref被引用对象,直接在引用对象中进行偏移

[此贴子已经被作者于2013-5-30 9:01:58编辑过]

--  作者:vermouth
--  发布时间:2013/5/30 9:08:02
--  
以下是引用jinzhe在2013-5-30 9:01:51的发言:

我写的1就是表明你写的是错误的,不要ref被引用对象,直接在引用对象中进行偏移


如果不用SZXD,直接在前面callstock这个函数那边偏离的话。我怎么来比较得出上证是否创新低呢?


[此贴子已经被作者于2013-5-30 9:09:23编辑过]

--  作者:jinzhe
--  发布时间:2013/5/30 9:10:21
--  

公式1:

cond:l<ref(llv(l,todaybar),1);

 

公式2引用公式1的cond结果就行了


--  作者:vermouth
--  发布时间:2013/5/30 9:34:15
--  
以下是引用jinzhe在2013-5-30 9:10:21的发言:

公式1:

cond:l<ref(llv(l,todaybar),1);

 

公式2引用公式1的cond结果就行了


还是没有看懂。

我是要引用上证的新低。

前面应该是sl:=CALLSTOCK(\'000001\',vtLOW,1,-1);这边0改成了-1,向前引用吧。

这个cond表示出来的是创新低啊。

我如何引用到创新低呢?


--  作者:vermouth
--  发布时间:2013/5/30 9:40:42
--  
刚才理了一下思绪。

发现了一个致命性的错误、
我在写SZXD这段的时候其实是没有引用证劵的。所以登出来的明显是错误的。

按照老师的说法

是不是应该这么写:
cond:=l<ref(llv(l,todaybar),1);
SZXD:=CALLSTOCK(\'000001\',cond,1,0);

但是我看callstock这个函数里面的type的类型里面好像没有提到可以用公式来替代

--  作者:jinzhe
--  发布时间:2013/5/30 9:45:13
--  

公式2引用公式1啊,不是这样引用的啊

 

zzzz:stkindi(\'sh000001\',\'公式1.cond\',0,1);

这样才是引用


--  作者:vermouth
--  发布时间:2013/5/30 9:58:43
--  
以下是引用jinzhe在2013-5-30 9:45:13的发言:

公式2引用公式1啊,不是这样引用的啊

 

zzzz:stkindi(\'sh000001\',\'公式1.cond\',0,1);

这样才是引用


我的思路是这样的:当股指达到新低的时候上证没有达到新低。这个时候如果新低后面的那个K线的高点比前面的高点要高。我做多。


刚才那个我直接做了当日新低的技术指标,代码如下

//创今日新低

//nn:=BARSLAST(DATE>REF(DATE,1))+1;

nn:=TODAYBAR;

ll:=ref(llv(l,nn),1);

创新低:= l<ll ;


SZXD:=stkindi(\'000001\',\'DD.CXD\',0,1);

sl:=CALLSTOCK(\'000001\',vtLOW,1,0);


CYC:=BARSLAST(DATE>REF(DATE,1))+1;

XDGD:=valuewhen(l<ref(llv(l,CYC),1),h);

cond:=h>XDGD;


IF 创新低 and sl>szxd and time>93000 and time<15000 and cond then

 开多:buy(1,1,LIMIT,CLOSE);


麻烦老师看看,好像还是有问题。麻烦老师指出来