Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:仓差代码编写

1楼
mzxg 发表于:2019/10/30 0:55:21
请老师帮忙写个仓差的自定义函数:分钟级别的上根K线和当根K线的持仓量之差。现有的仓差只能取当天的,还是返回常数。
2楼
FireScript 发表于:2019/10/30 9:05:55
 cc:openint-ref(openint,1);

这样就可以了啊。
3楼
mzxg 发表于:2019/10/30 10:46:45
但是这个在全局变量的公式并在逐K模式运行中用不了
4楼
FireScript 发表于:2019/10/30 10:55:36
没太明白,你是在序列下给全局变量赋这个openint的值?
序列模式下无法定义全局变量的。你算仓差为什么要用到全局变量啊。而且还是在序列模式下。

5楼
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;

6楼
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;

7楼
FireScript 发表于:2019/10/30 13:50:02
上面代码需要在逐K模式,序列下无法定义全局变量。
8楼
mzxg 发表于:2019/11/1 23:48:34
谢谢老师的回复,感谢!
9楼
mzxg 发表于:2019/11/7 1:55:57
老师,这个公式能让它在分钟周期里从每天开盘第一根K线计算到收盘,然后第二天开盘又重新计算,如此循环。这样该怎么编写?
10楼
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;

共10 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.