以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  我想定义一个以stklabel()为参数的函数,该怎么办?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=1355)

--  作者:p_b_yu
--  发布时间:2010/4/4 22:05:20
--  我想定义一个以stklabel()为参数的函数,该怎么办?

我想定义一个以stklabel()为参数的函数。

 

比如图表的stklabel()返回是rb00(螺纹连续),这个函数叫sigma,sigma(stklabel())就返回一个与螺纹连续相关的值。

 

这个函数我已经写好了:

 

Function sigma(Formula,code as string)
    \'系统会在解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
    Code1=Left(LCase(code),1)
    Code2=Left(LCase(Code),2)
 if "cu" = Code2 then
  sigma=0.01573750
 Elseif "zn" = Code2 then
  sigma=0.02080251
 Elseif "au" = Code2 then
  sigma=0.01651787
 Elseif "cf" = Code2 then
  sigma=0.00961140
 Elseif "ru" = Code2 then
  sigma=0.01848095
 Elseif "sr" = Code2 then
  sigma=0.01528973
 Elseif "rb" = Code2 then
  sigma=0.01461848
 Elseif "er" = Code2 then
  sigma=0.00707902
 Elseif "fu" = Code2 then
  sigma=0.01663630
 Elseif "ta" = Code2 then
  sigma=0.01428965
 Elseif "ro" = Code2 then
  sigma=0.01717132

 Elseif "a" = Code1 then
  sigma=0.01350464
 Elseif "m" = Code1 then
  sigma=0.01482739
 Elseif "y" = Code1 then
  sigma=0.01638256
 Elseif "v" = Code1 then
  sigma=0.01422112
 Elseif "p" = Code1 then
  sigma=0.02099730
 Elseif "l" = Code1 then
  sigma=0.01773463
 Elseif "c" = Code1 then
  sigma=0.01531951
 End If
End Function

问题就出在红色的“code as string”上。

如果这个“code as string”改为"code",则code默认是数值型的变量,传进一个数值型的数,总是传进来100000,我这个函数就达不到效果。

如果保留“code as string”,又编译不过,编译器不识别"as string"。

 

我想请问的就是,我该如何定义一个参数类型是字符串型的变量,来达到我的目的?


--  作者:admin
--  发布时间:2010/4/5 11:49:10
--  

金字塔公式系统和自定义函数不支持字符串参数


--  作者:p_b_yu
--  发布时间:2010/4/5 14:01:01
--  
以下是引用admin在2010-4-5 11:49:10的发言:

金字塔公式系统和自定义函数不支持字符串参数

 

谢谢您的及时回复。

 

非常感谢!