以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何求北京时间的昨日高  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=159049)

--  作者:maomao8643
--  发布时间:2017/10/30 10:20:19
--  如何求北京时间的昨日高

如果用CALLSTOCK(STKLABEL,VTHIGH,6,-1)来求昨日高的话,得到的是金字塔时间的昨日高。但如果想求北京时间的昨日高,也就是北京时间09:00到当天日历日的夜盘结束时间的最高,要如何写?


--  作者:FireScript
--  发布时间:2017/10/30 11:31:40
--  

昨日写的代码有问题,改了下:如下

VARIABLE:m:=0,n:=0;
VARIABLE:hh:=0;
if time=133000 then m:=1;else if time<>133000 then m:=0;//这里需要根据周期调整,反正就是取得该周期下第一个K的时间。
if time=30000 then n:=1;else if time<>30000 then n:=0;//夜盘结束时间自行调整

LatsN:=BARSLAST(n=1);//上次30000到现在
lastM:=SUMBARS(m,2);//上上次133000到现在的K线位置

t:=hhv(h,lastM);
if LatsN=0 then
begin
hh:=t;
end
else if then
begin
hh:=0;
end

上一北京时间最高价:ref(hh,BARSLAST(hh<>0)),NODRAW;


 

 

 没发直接取得,只能从固定的时间上取得,还要考虑使用的周期问题。

代码先给你,你看下实现的思路,后续会测试和完善下细节。

[此贴子已经被作者于2017/10/31 9:25:36编辑过]

--  作者:maomao8643
--  发布时间:2017/10/31 9:14:48
--  

测试了一下,结果不对啊,得不到昨最高。麻烦老师再研究一下。

 

另外,我的系统时间已经调整成了北京时间,m可否写成如下:

m:=DATE<>REF(DATE,1);

问题是n要如何写?


--  作者:FireScript
--  发布时间:2017/10/31 9:27:49
--  
以下是引用maomao8643在2017/10/31 9:14:48的发言:

测试了一下,结果不对啊,得不到昨最高。麻烦老师再研究一下。

 

另外,我的系统时间已经调整成了北京时间,m可否写成如下:

m:=DATE<>REF(DATE,1);

问题是n要如何写?

昨天的代码不对,已经修改了,应用在不同周期下需要注意修改那个最后一个K的K线时间。不过你已经调成北京时区了?那就不需要上面的代码了啊。

[此贴子已经被作者于2017/10/31 9:29:12编辑过]

--  作者:banzhuan
--  发布时间:2017/10/31 9:27:55
--  
建议您使用金字塔时区,交易所也将夜盘行情作为第二天的第一段行情了,非要拆分的话在跨天的交易策略编写上难道很高,金字塔时间就是展现一个完整的交易日;
--  作者:yukizzc
--  发布时间:2017/10/31 9:29:16
--  
variable:n=0;
if time=1305 then n:=0;
cond1:=time>=130000 and time<=190000;
if high>n then n:=h;
aa:ref(n,todaybar);