以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4)
---- 跨周期引用TOPRANGE的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74190)
|
-- 作者:snowdog
-- 发布时间:2015/1/8 15:40:10
-- 跨周期引用TOPRANGE的问题
策略跑在1分钟周期上,现在想知道当前1分钟K线的高点是几日高点
先写了个指标TOPX,如下,其中P是价格Price的意思 INPUT:P(100,1,100000,1); topn:TOPRANGE(P),NODRAW; lown:LOWRANGE(P),NODRAW;
在策略(1分钟周期)中: M:=NUMTOSTR(H,0); N日高点:=stkindi(\'\',\'TOPX.topn(\'& M &\')\',0,6,-1);
结果,N日高点的值总是为0,不知道哪里出问题了,请帮忙看看哪里出问题了,多谢了
|
-- 作者:jinzhe
-- 发布时间:2015/1/8 15:46:00
--
处理中请稍等
|
-- 作者:fly
-- 发布时间:2015/1/8 16:12:28
--
TOPRANGE(X):X是近多少周期内X的最大值
例如:TOPRANGE(HIGH)表示当前最高价是近多少周期内的最高价
参数写错了,第一个策略本身就只有0值,引出来的也就只能是0了,改个其它参数,比如high
topn:TOPRANGE(high),NODRAW; lown:LOWRANGE(high),NODRAW;
|
-- 作者:snowdog
-- 发布时间:2015/1/8 16:26:10
--
改成HIGH的话就跟我原来的意图不一样了,TOPRANGE的参数只是一个价格而已,我是拿1分钟线的高点作为参数来调用,不应该都是0的
|
-- 作者:snowdog
-- 发布时间:2015/1/8 20:57:33
--
又有新线索,在调试和保存策略时,会提示这个 此主题相关图片如下:捕获.jpg
|
-- 作者:jinzhe
-- 发布时间:2015/1/9 9:05:29
--
此问题无解,此函数不能用来调用
|
-- 作者:snowdog
-- 发布时间:2015/1/9 10:19:41
--
行吧。我另外想办法。TOPRANGE本身内部就是递归调用是吧,会消耗很多资源,然后stkindi又限制了调用次数。因为TOPRANGE不跨周期是可以用的。
|
-- 作者:jinzhe
-- 发布时间:2015/1/9 10:24:46
--
是的
|
-- 作者:snowdog
-- 发布时间:2015/1/12 11:49:30
--
我重新写了TOPX指标,没有再使用TOPRANGE函数了,但编译时还是提示引用公式过多,请帮忙看看,软件版本V3.41
调用TOPX的策略代码如下:
M:=NUMTOSTR(H,0); N日高点:=stkindi(\'\',\'TOPX.HHIDX(\'& M &\')\',0,6,-1);
TOPX指标如下,计算价格P是几周期最高,周期数做了限制,最大为N
INPUT:P(4666,1,100000,1),N(30,10,500,1);
PT:=HIGH;
HIDX:=0; HFLAG:=0;
IF BARPOS<=N THEN EXIT;
FOR I=0 TO N DO BEGIN IF PT[BARPOS-I]>P THEN BEGIN HIDX:=I; HFLAG:=1; // 搜索到比P高的价格 BREAK; END END
IF HFLAG=0 THEN HIDX:=N+1;
HHIDX:HIDX;
|
-- 作者:jinzhe
-- 发布时间:2015/1/12 13:23:58
--
循环计算了
|