以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  实时监控输出显示今天的开盘变成昨天的开盘价,请问老师是怎么回事?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=66945)

--  作者:雪球
--  发布时间:2014/7/4 11:15:59
--  实时监控输出显示今天的开盘变成昨天的开盘价,请问老师是怎么回事?
实时监控输出显示今天的开盘变成昨天的开盘价,请问老师是怎么回事?

 

2014-07-04 09:15:00.253    OTODAY+3*mindiff:2167.0
2014-07-04 09:15:00.253    kd00:1

公式如下

OTODAY:=ref(open,todaybar-1),LINETHICK0;//今天的开盘价

t1:=time>opentime(1);

IF t1  and  kd00   THEN  begin
      多开:buy(1,SS,limitr,OTODAY+3*mindiff);

 

     今天开盘价为2170.4,所以造成追单超过限价直接撤单,没有成交了。
也勾选了只在交易时段进行程式化交易。取行情报价时间。也勾选了自动与时间服务器同步。

--  作者:jinzhe
--  发布时间:2014/7/4 11:27:42
--  
调试的代码贴一下
--  作者:雪球
--  发布时间:2014/7/4 12:02:13
--  

IF t1 and  kd00   THEN  begin
      多开:buy(1,SS,limitr,OTODAY+3*mindiff);
      HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价
      kdcj:=ENTERPRICE; //开多仓价
      LOWPRICE:=ENTERPRICE;
      n1:=n1+1;
      n3:=n3+1;
      kg1:=1;
      cc1:=1;
      多开ENT后值:=ENTERBARS ;
      IF  ISLASTBAR then BEGIN
              DEBUGFILE(\'E:\\TEST.TXT\',\'holding:%.0f\',holding);//输出HOLDING
              DEBUGFILE(\'E:\\TEST.TXT\',\'多开ENT后值:%.0f\',多开ENT后值);//多开ENT后值
       DEBUGFILE(\'E:\\TEST.TXT\',\'HIGHPRICE:%.1f\',HIGHPRICE);//输出HIGHPRICE
       DEBUGFILE(\'E:\\TEST.TXT\',\'kdcj:%.1f\',kdcj);//输出kdcj
       DEBUGFILE(\'E:\\TEST.TXT\',\'LOWPRICE:%.1f\',LOWPRICE);//输出LOWPRICE
       DEBUGFILE(\'E:\\TEST.TXT\',\'OTODAY+3*mindiff:%.1f\',OTODAY+3*mindiff);//输出OTODAY+3*mindiff
       DEBUGFILE(\'E:\\TEST.TXT\',\'kd00:%.0f\',kd00);//输出kd00
       DEBUGFILE(\'E:\\TEST.TXT\',\'N1:%.1f\',N1);//输出N1
      END
  end

 

1分钟K,1秒轮询。还发现今天9:15至9:16是2167,9:16之后是2171正常了。
 
2014-07-04 09:15:00.253    holding:3
2014-07-04 09:15:00.253    多开ENT后值:0
2014-07-04 09:15:00.253    HIGHPRICE:2167.0
2014-07-04 09:15:00.253    kdcj:2167.0
2014-07-04 09:15:00.253    LOWPRICE:2167.0
2014-07-04 09:15:00.253    OTODAY+3*mindiff:2167.0
2014-07-04 09:15:00.253    kd00:1
2014-07-04 09:15:00.253    N1:1.0
 
2014-07-04 09:16:00.580    多损前price:2171.0

(多损前price:=ENTERPRICE;)

9:15至9:16由2167变为2171这期间没有其他交易发生。

--  作者:jinzhe
--  发布时间:2014/7/4 13:51:17
--  

t1和kd00是什么?

 


--  作者:雪球
--  发布时间:2014/7/4 14:28:55
--  
t1在一楼。kD00是复合条件其一是引用日K线上一天,其二是要用到今天开盘价otoday价进行计算得到。不存在未来也不会闪的。
--  作者:雪球
--  发布时间:2014/7/4 14:31:17
--  
用otoday价计算也不复杂就加减乘除。
--  作者:jinzhe
--  发布时间:2014/7/4 14:45:16
--  
kd00的定义贴一下
--  作者:雪球
--  发布时间:2014/7/4 15:48:24
--  
 

QBBIO:=STKINDIEX(\'\',\'指标.BBIO\',0,6,0,100),PRECISION1,NODRAW,LINETHICK0;//(QBBIO用open计算来的 不会闪的)

QB:=STKINDIEX(\'\',\'指标.A\',0,6,-1,100),PRECISION1,NODRAW,LINETHICK0;

D:=(callstockex(stklabel,vtCLOSE,6,-3,100)*系数1 +callstockex(stklabel,vtCLOSE,6,-6,100)* 系数2 +callstockex(stklabel,vtCLOSE,6,-12,100)*系数3 +callstockex(stklabel,vtCLOSE,6,-24,100))系数4 ;

QtodayOBBI:=QB+OTODAY*系数-D,PRECISION1,LINETHICK0;

QXZC:QtodayOBBI-QBBIO,PRECISION1,NODRAW,LINETHICK0;//

QHX:= COUNT(QXZC>0 , todaybar+ 1)= todaybar+ 1,linethick0; //(统计todaybar+1根K棒就行!因为每天的QXZC值是不变的!)

KD00:QHX AND ROUNDS(QXZC,2)>0.06 AND OTODAY-ref(close, todaybar)<30,linethick0;
--  作者:jinzhe
--  发布时间:2014/7/4 16:13:17
--  
先把全部代码贴一下,我周一测试
--  作者:jinzhe
--  发布时间:2014/7/4 16:13:51
--  
开仓时间是什么时候?