以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  金字塔有没有类似TB的自建用户函数的功能?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=48154)

--  作者:金日成
--  发布时间:2013/1/28 9:47:07
--  金字塔有没有类似TB的自建用户函数的功能?
就是比如多个策略需要调用同一个算法,然后我把这个算法独立写成一个模块让其他策略调用,这样便于代码维护,以及权限处理!我查了一下金字塔帮助,有一个stkindi的函数,有点类似,但是这个是跨周期函数,后面帮助的解释是尽量少用,会严重影响程序性能!那有没有别的方式呢?我就是想自建一个公用模块,不牵扯什么跨周期的调用,仅仅是把代码分离一下!如果有请老师告知!
--  作者:admin
--  发布时间:2013/1/28 9:49:21
--  

如果不是大量的使用stkindi,没什么效率问题的。

实际上stkindi的功能等于自建函数的功能,并且功能更加灵活


--  作者:金日成
--  发布时间:2013/1/28 11:16:43
--  
谢谢admin,但是用stkindi似乎只能返回数值型,不能返回字符型!比如返回一串字符!
--  作者:金日成
--  发布时间:2013/1/28 14:50:57
--  

stkindi的限制如此之多!!

我如果想使用序列参数传递,目前是不行的!我如何能把序列变量变为常数变量传递进去呢?我在公用模块里只是想用一下价格!


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


--  作者:金日成
--  发布时间:2013/1/28 14:56:14
--  
我有点搞不清了,为什么会出现这个提示?尤其是第三个情形,我是在引用模块里不能使用序列变量还是什么,请老师详细说明下啊,帮助这块实在没有详细说明。多谢!
--  作者:王锋
--  发布时间:2013/1/28 14:56:30
--  
不清楚你的具体需求,你可以描述一下,我们帮你做个例子
--  作者:金日成
--  发布时间:2013/1/28 15:10:13
--  
感谢王峰老师,我的需求是想把业务逻辑和资金管理代码分离,这样便于代码维护以及编写权限的设置(比如某些人只能编写资金管理模块)。这样我只需要传递几个参数给资金管理模块即可,比如一个开仓价,一个平仓价,以及权益等。然后在交易规则模块中去写stkindi调用资金管理模块,然后由资金管理模块返回一个仓位即可。我就是基于这个思路做的,可是系统的提示让我很为难!这种模块化开发是很常见的,请老师帮助一下!
--  作者:王锋
--  发布时间:2013/1/28 15:12:24
--  

你的描述太笼统,没法给你做例子


--  作者:金日成
--  发布时间:2013/1/28 15:25:13
--  

例子我已经做好了,代码如下:

公用模块test4代码:

INPUT:N_EnterPrice(1,1,200000,0.01);
INPUT:N_ExitPrice(1,1,200000,0.01);
INPUT:N_FirstAsSet(1,1,100000000,0.01);
INPUT:N_NowAsSet(1,1,100000000,0.01);
INPUT:N_MaxAsSet(1,1,100000000,0.01);

CwTrue:=1;

 

test3模块代码:

N1:=NUMTOSTR(CLOSE,2);
N2:=NUMTOSTR(CLOSE,2);
N3:=NUMTOSTR(1000,2);
N4:=NUMTOSTR(1000,2);
N5:=NUMTOSTR(1000,2);

CwTrue:=STKINDI(\'\',\'test4.CwTrue(\'&N1&\',\'&N2&\',\'&N3&\',\'&N4&\',\'&N5&\')\',0,-1);

 

把test3加载到螺纹钢连续合约日线中,就报错了!

[此贴子已经被作者于2013-1-28 15:26:01编辑过]

--  作者:admin
--  发布时间:2013/1/28 15:31:15
--  
代码用在逐K线模式下应该没问题的