欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请教Stdind 函数引用能否是变量?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有10924人关注过本帖树形打印复制链接

主题:[求助]请教Stdind 函数引用能否是变量?

帅哥哟,离线,有人找我吗?
bhwhui
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:208 积分:1565 威望:0 精华:2 注册:2009/8/23 19:18:53
[求助]请教Stdind 函数引用能否是变量?  发帖心情 Post By:2009/11/22 4:18:41    Post IP:221.7.173.165[只看该作者]

如题:

程序代码如下:

 

intLookBackDays:=20;
BolBandTrig:=2;

 

upBand_1:STKINDI('','boll.upper(20,2)',0,DATAPERIOD);
downBand_1:STKINDI('','boll.lower(20,2)',0,DATAPERIOD);

 

upBand_2:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
downBand_2:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

 

在图上,upBand_1等正确显示,而upBand_2显示有问题,二者的区别在于后者使用了变量。在金字塔中函数引用不能使用变量?麻烦了,怎么解决?提供直接的类似 BollBand()函数解决? 如果我想引用自定义的函数呢?

 

另外在公式帮助中没有Boll函数的说明,请补充。

 

谢谢。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
Likai
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 李凯学堂
等级:论坛游侠 帖子:137 积分:854 威望:0 精华:0 注册:2009/8/24 14:44:18
  发帖心情 Post By:2009/11/22 11:06:33    Post IP:114.94.107.118[只看该作者]

在引号中间应该是不能使用参数了,因为那是被当做字符串处理了。

 

一个变通的办法是将参数数字转换成字符串,将字符串变量作为stkindi的参数。

[此贴子已经被作者于2009-11-22 12:21:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bhwhui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:208 积分:1565 威望:0 精华:2 注册:2009/8/23 19:18:53
  发帖心情 Post By:2009/11/22 15:23:00    Post IP:221.7.173.165[只看该作者]

我按照您的意见改成如下代码也不行:

 

intLookBackDays:=20;
BolBandTrig:=2;

s1:=NUMTOSTR(intLookBackDays,0);
s2:=NUMTOSTR(BolBandTrig,0);

 

upBand1:STKINDI('','boll.upper(20,2)',0,DATAPERIOD);
downBand1:STKINDI('','boll.lower(20,2)',0,DATAPERIOD);

 

//upBand:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
//downBand:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

 

upBand_2:STKINDI('',"'boll.upper('+s1+','+s2+')'",0,DATAPERIOD);
downBand_2:STKINDI('',"'boll.lower('+s1+','+s2+')'",0,DATAPERIOD);

 

请版主帮忙写一下,谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
Likai
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 李凯学堂
等级:论坛游侠 帖子:137 积分:854 威望:0 精华:0 注册:2009/8/24 14:44:18
  发帖心情 Post By:2009/11/22 16:59:20    Post IP:114.94.107.118[只看该作者]

intLookBackDays:=20;
BolBandTrig:=2;

s1:=NUMTOSTR(intLookBackDays,0);
s2:=NUMTOSTR(BolBandTrig,0);

 

//upBand1:STKINDI('','boll.upper(20,2)',0,6);
//downBand1:STKINDI('','boll.lower(20,2)',0,6);

 

//upBand:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
//downBand:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

 
fs1:='boll.upper('+s1+','+s2+')' ;
upBand_2:STKINDI('',fs1,0,6);
//downBand_2:STKINDI('',"'boll.lower('+s1+','+s2+')'",0,DATAPERIOD);

 


 回到顶部
帅哥哟,离线,有人找我吗?
bhwhui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:208 积分:1565 威望:0 精华:2 注册:2009/8/23 19:18:53
  发帖心情 Post By:2009/11/22 18:01:17    Post IP:221.7.173.165[只看该作者]

谢谢,程序通过了。

我的第二个程序错误在于想当然多加了一对“”号,下面是改过的:

 

upBand_2:STKINDI('','boll.upper('+s1+','+s2+')',0,DATAPERIOD);
downBand_2:STKINDI('','boll.lower('+s1+','+s2+')',0,DATAPERIOD);

 

谢谢。

 

不过也确实不清楚,Stkind为什么不支持变量的调用,不会类似if 语句不能调用统计类函数吧?

 


 回到顶部
帅哥哟,离线,有人找我吗?
蔡宛宏
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:129 积分:473 威望:0 精华:0 注册:2011/12/6 14:06:35
  发帖心情 Post By:2012/1/19 15:29:19    Post IP:219.141.204.130[只看该作者]

s1:=NUMTOSTR(intLookBackDays,0);
s2:=NUMTOSTR(BolBandTrig,0);

 

以上两句的意思是什么?


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/1/19 15:43:27    Post IP:58.246.57.26[只看该作者]

变成字符串。调用boll时参数不能直接用BOLBANTRIG这类的变量,需要变成字符串后在放入变量里面。



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
90也玩期货
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2013/8/22 20:05:19
  发帖心情 Post By:2013/8/31 15:54:42    Post IP:218.82.165.31[只看该作者]


intLookBackDays:=20;
BolBandTrig:=2;

s1:=NUMTOSTR(intLookBackDays,0);
s2:=NUMTOSTR(BolBandTrig,0);

 

//upBand1:STKINDI('','boll.upper(20,2)',0,6);
//downBand1:STKINDI('','boll.lower(20,2)',0,6);

 

//upBand:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
//downBand:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

 
fs1:='boll.upper('+s1+','+s2+')' ;
upBand_2:STKINDI('',fs1,0,6);
//downBand_2:STKINDI('',"'boll.lower('+s1+','+s2+')'",0,DATAPERIOD);

 这边为什么要fs1:='boll.upper('+s1+','+s2+')' ; 要加上+  +,不能直接用S1吗


 回到顶部
帅哥哟,离线,有人找我吗?
90也玩期货
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:31 积分:0 威望:0 精华:0 注册:2013/8/22 20:05:19
  发帖心情 Post By:2013/9/9 15:19:38    Post IP:59.61.42.86[只看该作者]

希望客户可以帮我解决一下,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/9/9 15:34:16    Post IP:58.246.57.26[只看该作者]

这个不是问题,是不理解吧?

直接引用是要用双引号的,这个单引号不对的,然后'+s1+'写法是因为s1是字符不能直接代入的,要代入只能是数字,用'+s1+'写法是直接把s1对应的数字型数字给直接引入了

正确写法:

"boll.upper"('+s1+','+s2+')



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
总数 14 1 2 下一页