以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 这个可以代替跨品种引用吗 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=162703) |
-- 作者:shensane -- 发布时间:2018/4/12 6:00:44 -- 这个可以代替跨品种引用吗 引用操作符 例如: "INDIE.VAR"(P1,P2) 引用INDI指标的VAR输出,计算参数为P1,P2。若没有指定公式线,系统将取最后一行公式输出 数据类型有TICK、MIN1、MIN3、MIN5、MIN10、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、YEAR、MULTIDAY、MULTIMIN、MULTISEC、MULTIHOUR、QUARTER、SEMIYEAR、SOLARTERM "MACD#WEEK"(26,10,5) 引用周线数据的MACD指标最后一行公式输出 "MACD"表示该指标的最后—行公式输出并且使用公式的默认参数。 "000001$CLOSE" 引用品种000001的收盘价 "SZ000001$CLOSE#WEEK" 引用SZ市场的品种000001周线收盘价 "VOL##DAY"引用日线数据的前一周期的VOL指标 引用数据时,需要实现确认被引用品种周期数据齐全,再首次使用或者在不确定时,请手工进行数据补充工作 "DLLNAME@FNCNAME"(P1,P2) 引用DLLNAME.DLL的FNCNAME函数,计算参数为P1,P2 用户函数模式:#用户函数.指标线(参数)# 例如:#test01.B1(20,45)#,表示调用test01指标的B1输出线,参数为20和45,使用用户函数模式比扩周期引用更加节省内存,提高运行效率. 所属函数组:控制语句 比如建立指标A:ma5:ma(c,5); ma10:ma(c,10); ma50:ma(c,50); ma60:ma(c,60); ma100:ma(c,100); ma180:ma(c,180); ma300:ma(c,300); n10:=todaybar; dm:=4-INTPART(LOG(C)); N:=barslast(date<>ref(date,1))+1; JSJ:ROUNDS(IF(sum(vol,n10)=0,C,sum(C*vol,n10)/sum(vol,n10)),2+dm),colorred; DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIFF,9); MACD:=2*(DIFF-DEA); KD:H>ref(hhv(h,todaybar),1)&&H>ma300&&H>PRVSETTLEMENT&&(TIME>1303&&TIME<=1859); KK:L<ref(llv(l,todaybar),1)&&L<ma300&&L<PRVSETTLEMENT&&(TIME>1303&&TIME<=1859); T:=BARSLAST(L<(JSJ)||L<(ma180))+1; T1:=BARSLAST(H>(JSJ)||H>(ma180))+1; ZD1:COUNT(KD,T); ZK1:COUNT(KK,T1); ZD2:COUNT(zd1>0,T); ZK2:COUNT(zk1>0,T1); DK:if(zd1>0,zd2,if(zk1>0,-zk2,0)); 如何用这个引用操作符同周期跨品种引用,避免用FZD1:stkindi(\'DqJD09\',\'C.DK\',0,1);消耗太大内存 |
-- 作者:wenarm -- 发布时间:2018/4/12 8:11:21 -- 可以。 |
-- 作者:shensane -- 发布时间:2018/4/12 8:17:54 -- 我不会,你帮我把这个跨周期函数FZD1:stkindi(\'DqJD09\',\'C.DK\',0,1);改成用操作引用符的,,改成一个范例我后面自己套用 |
-- 作者:wenarm -- 发布时间:2018/4/12 8:43:20 -- 抱歉,前面说错了。这种方式不能跨品种引用指标值,你只能用STKINDI |