以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  开盘前图型不见了是什么原因?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=63602)

--  作者:雪球
--  发布时间:2014/4/8 12:37:31
--  开盘前图型不见了是什么原因?
本想用交易时间来校正下日K线的成交量,可开盘前的校正后的成交量图型不见了(之前之后又在的),以股指期货连续为例公式如下,请问老师是什么原因?
公式如何修改?

WJTIME:=timetot0(opentime(0))-timetot0(closetime(1)),linethick0;
QTRADETIME:=timetot0(closetime(0))-timetot0(opentime(1))-WJTIME,linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(0)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(1)then IFTRADETIME:=TRADETIME;
if dynainfo(207)>=opentime(0)and dynainfo(207)<=closetime(0) then IFTRADETIME:=TRADETIME-WJTIME;
显示IFTRADETIME:IFTRADETIME,linethick0;
交易时间:dynainfo(207),linethick0;
IFVOL:QTRADETIME/IFTRADETIME*VOL,PRECISION1;
STICKLINE(Close-ref(close,1)>=0,0,IFVOL,10,1),COLORRED;
STICKLINE(Close-ref(close,1)<0,0,IFVOL,10,0),ColorCyan;

另外还发现历史的被校正的成交量Ifvol在交易时间也会变的!要使历史的ifvol与常规的成交易量vol一样不变,请问老师上述公式该怎样修改?(是日K线上的公式)。


--  作者:雪球
--  发布时间:2014/4/10 7:56:07
--  
客服老师看到上面问题了吗了
--  作者:jinzhe
--  发布时间:2014/4/10 8:37:49
--  
你用动态行情函数那么就只会有当日的数据不会有历史数据,在开盘之前是不会有数据
--  作者:雪球
--  发布时间:2014/4/10 12:47:33
--  
我已观察好长时间了,仅是开盘前几分钟图没有了,历史图型也有的只是发现交易时段会变!收盘后与vol一模一样。 如果把if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(0)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0; 改成if dynainfo(207)>opentime(1)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0; 那么图型在收盘前倒过来了!老师加载在if00上亲自观察下就知了的。关键是dynainfo(207)在开盘是怎么样的,为此以前也发贴向老师咨询过。
--  作者:jinzhe
--  发布时间:2014/4/10 13:30:10
--  

WJTIME:=timetot0(opentime(0))-timetot0(closetime(1)),linethick0;
QTRADETIME:=timetot0(closetime(0))-timetot0(opentime(1))-WJTIME,linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(0)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(1)then IFTRADETIME:=TRADETIME;
if dynainfo(207)>=opentime(0)and dynainfo(207)<=closetime(0) then IFTRADETIME:=TRADETIME-WJTIME;
显示IFTRADETIME:IFTRADETIME,linethick0;
交易时间:dynainfo(207),linethick0;
IFVOL:QTRADETIME/IFTRADETIME*VOL,PRECISION1;
STICKLINE(islastbar and Close-ref(close,1)>=0,0,IFVOL,10,1),COLORRED;
STICKLINE(islastbar and Close-ref(close,1)<0,0,IFVOL,10,0),ColorCyan;

STICKLINE(not(islastbar) and Close-ref(close,1)>=0,0,vOL,10,1),COLORRED;
STICKLINE(not(islastbar) and Close-ref(close,1)<0,0,VOL,10,0),ColorCyan;

 

 

这个就是开盘前历史k线是历史VOL,开盘后的vol按照既定的代码算


--  作者:雪球
--  发布时间:2014/4/11 6:23:42
--  
以下是引用jinzhe在2014/4/10 13:30:10的发言:

WJTIME:=timetot0(opentime(0))-timetot0(closetime(1)),linethick0;
QTRADETIME:=timetot0(closetime(0))-timetot0(opentime(1))-WJTIME,linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(0)then TRADETIME:=timetot0(dynainfo(207))-timetot0(opentime(1)),linethick0;
if dynainfo(207)>opentime(1)and dynainfo(207)<=closetime(1)then IFTRADETIME:=TRADETIME;
if dynainfo(207)>=opentime(0)and dynainfo(207)<=closetime(0) then IFTRADETIME:=TRADETIME-WJTIME;
显示IFTRADETIME:IFTRADETIME,linethick0;
交易时间:dynainfo(207),linethick0;
IFVOL:QTRADETIME/IFTRADETIME*VOL,PRECISION1;
STICKLINE(islastbar and Close-ref(close,1)>=0,0,IFVOL,10,1),COLORRED;
STICKLINE(islastbar and Close-ref(close,1)<0,0,IFVOL,10,0),ColorCyan;

STICKLINE(not(islastbar) and Close-ref(close,1)>=0,0,vOL,10,1),COLORRED;
STICKLINE(not(islastbar) and Close-ref(close,1)<0,0,VOL,10,0),ColorCyan;

 

 

这个就是开盘前历史k线是历史VOL,开盘后的vol按照既定的代码算

我的问题是希望知道:1为什么仅开盘前几分钟图型消失(而把上面代码加在其他日线公式中,显示的图型开盘前又好好的没有消失过)? 2为什么IFVOL:QTRADETIME/IFTRADETIME*VOL,PRECISION1;这个历史IFVOL会变?这里只有当日dynainfo(207)是会变的,其他都是不会变的数字包括历史vol,所以只有当日dynainfo(207)作用在历史vol才会变的,当日dynainfo(207)为什么会作用于历史vol上呢?引起所有历史ifvol交易时段都变化着? 3四楼的情况又怎么在开盘前图型没有消灭但又倒过来了呢?请老师代码加载在if00上亲自观察下就知了的,才能针对性地解得问题。揭开开盘前及交易时段dynainfo(207)的神秘面纱!
--  作者:fly
--  发布时间:2014/4/11 9:48:32
--  

您的这段代码是用在日K线上的吗?

 

dynainfo(207)是只在最后一根K线上有效的

[此贴子已经被作者于2014/4/11 10:35:58编辑过]

--  作者:fly
--  发布时间:2014/4/11 10:57:59
--  

因:dynainfo(207)是只在最后一根K线上有效

重点处理最后一根K线和非最后一根K线

 

以下为修改后代码,你试试吧

 

wjtime:=timetot0(opentime(2))-timetot0(closetime(1));//第一节休盘时间秒数
qtradetime:=timetot0(closetime(0))-timetot0(opentime(1))-wjtime;//一天的交易时间秒数

 

//如果是历史k线,则交易时间就固定了
if not(islastbar) then iftradetime:=qtradetime;

//处理如果是最后一根k线但第二天没开盘(新的一根k线又没生成)的情况,此时最后一根k线的交易时间也已固定
if islastbar and dynainfo(207)<opentime(1) then iftradetime:=qtradetime;

 

//以下重点处理,最后一根k线,且已开盘(交易所已有数据)的情况
//如果交易时间大于第一节开盘时间91500,小于第1节收盘时间113000
if islastbar and dynainfo(207)>opentime(1) and dynainfo(207)<=closetime(1)
then iftradetime:=timetot0(dynainfo(207))-timetot0(opentime(1));//开盘后交易秒数

//如果交易时间大于第二节开盘时间130000,小于最后一节收盘时间151500
if islastbar and dynainfo(207)>=opentime(2) and dynainfo(207)<=closetime(0)
then iftradetime:=timetot0(dynainfo(207))-timetot0(opentime(1))-wjtime;//开盘后交易秒数


ifvol:qtradetime/iftradetime*vol,precision1;
stickline(close-ref(close,1)>=0,0,ifvol,10,1),colorred;
stickline(close-ref(close,1)<0,0,ifvol,10,0),colorcyan;


--  作者:雪球
--  发布时间:2014/4/11 11:38:27
--  
谢谢老师。这段代码是用在日线上的,我多关注日K线上的公式开发,因这是相对蓝海。 WJTIME:=timetot0(opentime(0))-timetot0(closetime(1)),linethick0;这是午间休市时间。与你的第一节休盘时间对于If00是一模一样完全相等的,写代码之前我已反复测试过的。由于下午要准备出去,等下周末回来再与老师请教。我先把你的修改代码试着。再次谢谢老师。
--  作者:客人
--  发布时间:2014/4/11 12:58:15
--  
谢谢老师们