以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  是否可以这样调用跨周期?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=181393)

--  作者:OscarDeng
--  发布时间:2020/7/25 12:09:40
--  是否可以这样调用跨周期?

是否可以这样调用跨周期?
TBUPDAY:=STKINDI(\'\',\'SECRETTOPBOTTOM.TBUP\',0,6,-1) or STKINDI(\'\',\'SECRETTOPBOTTOM.NB\',0,6,-1) ,noaxis;

--  作者:wenarm
--  发布时间:2020/7/27 7:53:31
--  

正确的。

但是建议考虑到STKINDI引用效率和个数的限制,并且你还是调用同一个公式中变量作为因子项的需求,可以直接在被引用公式中处理。这种既能减少引用次数,相对也能提高效率

cond:TBUP or NB;

 

 

TBUPDAY:=STKINDI(\'\',\'SECRETTOPBOTTOM.cond\',0,6,-1)


--  作者:OscarDeng
--  发布时间:2020/8/12 18:51:46
--  
REFTBUPPDDAY:=STKINDI(\'\',\'SECRETTOPBOTTOM.REFTBUPPD\',0,6,-1),noaxis;//抄底
REFTBDOWNNDDAY:=STKINDI(\'\',\'SECRETTOPBOTTOM.REFTBDOWNND\',0,6,-1),noaxis;//抄底

TBPD1min:"SECRETTOPBOTTOM.TBPD1";
TBND1min:"SECRETTOPBOTTOM.TBND1";

上面四句, STKINDI前面是可以加等号也可以不加等号。  但是这句可以加等号码?  TBPD1min:="SECRETTOPBOTTOM.TBPD1"; 加了等号会显示出错。   还有, 为什么STKINDI 里面是加单引号, 而TBPD1min:="SECRETTOPBOTTOM.TBPD1" 是要加双引号? 如果是字符串格式的变量, 那就不能使用了吗? 例如
STR00:=\'SECRETTOPBOTTOM\';

TBPD1min:"STR00.TBPD1";这种表达是错误的, 改怎样表达? 

--  作者:wenarm
--  发布时间:2020/8/13 6:14:35
--  

 

TBPD1min:="SECRETTOPBOTTOM.TBPD1"; 加了等号会显示出错

本地没有问题。你看具体报什么语法错误。报错位置可能不准,在报错位置上下检查下。

 

 

为什么STKINDI 里面是加单引号, 而TBPD1min:="SECRETTOPBOTTOM.TBPD1" 是要加双引号?

stkindi内的第二个参数是字符串,自然是单引号。金字塔中的双引号是,老式的引用方法。两者之间在颜色上也能区分开。单引号定义的字符串是粉红色。双引号的引用是红色、

两者不是一个概念。

 

如果是字符串格式的变量, 那就不能使用了吗? 例如

STR00:=\'SECRETTOPBOTTOM\';

什么意思?没看出开你上下文的意思

 

TBPD1min:"STR00.TBPD1";这种表达是错误的, 改怎样表达? 

如果这个位置的TBPD1min不是第一次定义。应该是:=  


--  作者:OscarDeng
--  发布时间:2020/8/17 12:44:42
--  
那现在是用 stkindi 还是 用双引号  好? 假如是调用同一周期的函数? 

--  作者:FireScript
--  发布时间:2020/8/17 13:25:15
--  
 你这里如果是不跨品种和周期。那么你可以用双引号的调用方式。

类似这种形式:
"INDIE.VAR"(P1,P2)   // 引用INDI指标的VAR输出,计算参数为P1,P2.如果没有参数可以不用写参数。

当然其实跨周期也是可以的,主要不跨品种用这种双引号方式调用效率会更高点:
"MACD.macd1#WEEK";//引用周线数据的MACD的macd1输出