全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
用plot.setLayout 写监控界面,出现了延迟现象
2023-03-27 15:12

用plot.setLayout 写监控界面,出现了延迟现象.

每次刷新一次,可以把时间刷新到最新,但是放一会就会延迟了,预估会延迟20分钟上下。

新建一个空白工作区,加载下面的代码看看。




Params
	//此处添加参数
	Numeric pIC_Index1(1);
	Numeric pIC_Index2(4);	
	Array<String> strMySymbol([\"000905.SSE\",\"IC2304.CFFEX\",\"IC2305.CFFEX\",\"IC2306.CFFEX\",\"IC2309.CFFEX\"]);
Vars
	 Plot  plt1;
	 Plot  plt2;
	 Plot  plt3;
	 Plot  plt4;
	 Plot  plt5;
	 Plot  plt6;
    String tableName(\"品种列表\");
	Numeric i; 
	Numeric vDayDiff;// 到期天数
	Series<String> strLineNameSymbol1;		
Events
    OnInit()
    {
    	strLineNameSymbol1 = data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 最新价差\";
   		for i = 0 to GetArraySize(strMySymbol)-1
		{
			SubscribeBar(strMySymbol[i],\"1m\",20230217);
		}
		 plt1.figure();
		 plt2.figure();
		 plt3.figure();
		 plt4.figure();
		 plt5.figure();
		      
		 plt1.setLayout(0,0);//布局在(0,2)
		 plt2.setLayout(0,2);//布局在(1,0) 
		 plt3.setLayout(2,0);//布局在(1,0)  
		 plt4.setLayout(2,1);//布局在(1,0)   
		 plt5.setLayout(2,2);//布局在(1,0)	
		 plt6.setLayout(2,3);//布局在(1,0)           	
         plt1.setOption(tableName,\"data-pagination\",False);
         plt1.setOption(tableName,\"column-index\",tableName+\"=0\");
         plt1.setOption(tableName,\"column-index\",\"value=1\");
       
         plt2.setOption(\"跨期套利监控面板\",\"data-pagination\",False);
         plt2.setOption(\"跨期套利监控面板\",\"column-index\",tableName+\"=0\");
         plt2.setOption(\"跨期套利监控面板\",\"column-index\",\"value=1\");       
             

		plt3.setOption(data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 最新价差\",\"x-format\",\"time\");//设置X为时间轴

    }

    OnBar(ArrayRef<Integer> indexs)
    {
		For i = 0 to DataSourceSize-1
		{
			data[i].vDayDiff = DateDiff(data[i].Date,IntPart(Data[i].ExpiredDateTime()))+1; // 各合约到期天数
		}
		   
		    	 	
    	for i = 0 To DataSourceSize-1
    	{

			//当前公式应用商品的最新买盘价格
			
			plt1.table(tableName,\"最新价\",data[i].Close,data[i].symbol);
			//当前公式应用商品的最新买盘价格
			plt1.table(tableName,\"BidPrice\",data[i].Q_BidPrice,data[i].symbol);
			//当前公式应用商品的最新卖盘价格
			plt1.table(tableName,\"AskPrice\",data[i].Q_AskPrice,data[i].symbol);   
			plt1.table(tableName,\"盘口中间价\",(data[i].Q_BidPrice+data[i].Q_AskPrice)/2,data[i].symbol);
			//当前公式应用商品的盘口价差
			plt1.table(tableName,\"盘口价差\",data[i].Q_AskPrice - data[i].Q_BidPrice,data[i].symbol);

			If(i>=0 And i <5)
			{
				If(i>=0 And i<4)
				{
				plt1.table(tableName,\"基差\",Data[0].Close - (data[i].Q_BidPrice+data[i].Q_AskPrice)/2,data[i].symbol);  
				}
				If(i==4)
				{
				plt1.table(tableName,\"基差\",Data[0].Close - (data[i].Q_BidPrice+data[i].Q_AskPrice)/2-0,data[i].symbol); 
				}
			}
			plt1.table(tableName,\"到期天数\",data[i].vDayDiff,data[i].symbol); 
			plt1.table(tableName,\"索引\",i,data[i].symbol);								
    	}
    	
    	
		plt2.table(\"跨期套利监控面板\",\"正套价差(卖价)\",Data[pIC_Index1].Q_AskPrice - Data[pIC_Index2].Q_BidPrice,data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol);
		plt2.table(\"跨期套利监控面板\",\"反套价差(买价)\",Data[pIC_Index1].Q_BidPrice - Data[pIC_Index2].Q_AskPrice,data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol);
			
    	strLineNameSymbol1 = data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 最新价差\";
		
		plt3.line(data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 最新价差\",date+time,Data[pIC_Index1].Close - Data[pIC_Index2].Close);

		plt3.line(data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 90%分位\",date+time,NthHigher(Data[pIC_Index1].Close-Data[pIC_Index2].Close,60,6));
		plt3.line(data[pIC_Index1].symbol+\"-\"+data[pIC_Index2].symbol+\" 10%分位\",date+time,NthLower(Data[pIC_Index1].Close-Data[pIC_Index2].Close,60,6));
    }


您未登录,请先 登录注册 后发表评论
顶部