用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));
}