以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=172693) |
-- 作者:mzxg -- 发布时间:2019/10/30 0:55:21 -- 仓差代码编写 请老师帮忙写个仓差的自定义函数:分钟级别的上根K线和当根K线的持仓量之差。现有的仓差只能取当天的,还是返回常数。 |
-- 作者:FireScript -- 发布时间:2019/10/30 9:05:55 -- cc:openint-ref(openint,1); 这样就可以了啊。
|
-- 作者:mzxg -- 发布时间:2019/10/30 10:46:45 -- 但是这个在全局变量的公式并在逐K模式运行中用不了 |
-- 作者:FireScript -- 发布时间:2019/10/30 10:55:36 -- 没太明白,你是在序列下给全局变量赋这个openint的值? 序列模式下无法定义全局变量的。你算仓差为什么要用到全局变量啊。而且还是在序列模式下。 |
-- 作者:mzxg -- 发布时间:2019/10/30 11:17:48 -- 像下面这样,画不出线,也没有数值。 VARIABLE:ljh:=0,b1:=0;N1:=5; mid:=c; hsl:=(openint-ref(openint,1))/openint; ljh:=if(BARPOS=1,hsl,ljh*(1-hsl)*(n1-1)/n1+hsl); b1:=if(BARPOS=1,mid,(mid*hsl+b1*ref(ljh,1)*(1-hsl)*(n1-1)/n1)/ljh); K:b1,COLORYELLOW; |
-- 作者:FireScript -- 发布时间:2019/10/30 13:49:47 -- 是因为一个原因。hsl 在第一个K 其实是一个无效值,这时候赋值给全局变量会导致出问题的。 VARIABLE:ljh:=0,b1:=0;
N1:=5; mid:=c; hsl:=if(BARPOS=1,0,(openint-ref(openint,1))/openint); ljh:=if(BARPOS=1,hsl,ljh*(1-hsl)*(n1-1)/n1+hsl); b1:=if(BARPOS=1,mid,(mid*hsl+b1*ref(ljh,1)*(1-hsl)*(n1-1)/n1)/ljh); K:b1,COLORYELLOW; |
-- 作者:FireScript -- 发布时间:2019/10/30 13:50:02 -- 上面代码需要在逐K模式,序列下无法定义全局变量。 |
-- 作者:mzxg -- 发布时间:2019/11/1 23:48:34 -- 谢谢老师的回复,感谢! |
-- 作者:mzxg -- 发布时间:2019/11/7 1:55:57 -- 老师,这个公式能让它在分钟周期里从每天开盘第一根K线计算到收盘,然后第二天开盘又重新计算,如此循环。这样该怎么编写? |
-- 作者:FireScript -- 发布时间:2019/11/7 9:55:54 -- 那 这样试下呢。 VARIABLE:ljh:=0,b1:=0; N1:=5; mid:=c; hsl:=if(BARPOS=1 or TODAYBAR=1,0,(openint-ref(openint,1))/openint); ljh:=if(BARPOS=1 or TODAYBAR=1,hsl,ljh*(1-hsl)*(n1-1)/n1+hsl); b1:=if(BARPOS=1 or TODAYBAR=1,mid,(mid*hsl+b1*ref(ljh,1)*(1-hsl)*(n1-1)/n1)/ljh); K:b1,COLORYELLOW; |