期权VIX实现副图以线型显示以及主图数字显示
各位老师好,之前得到履巽乘乾的老师的指导,已经实现了期权VIX的输出和字段显示,但面临以下问题,一是由于目前期权上下影极长,所以在日线级别想直接以收盘连线的形式在副图显示二是目前是以文本显示在data0实现了字段功能,但由于是文本显示,字段的排序会出问题,比如个别期权VIX只有8、9,会排到最前面,所以按老师的用PLOTNUMRIC,但一运行,日K线就自动上抬,导致没法看了,想请教一下如何解决,非常感谢!Params
Numeric millsecs(1000);
Vars
Numeric avg;
Global Integer timerId;
Natural Integer kflag(0);
Global Integer barperiod;
Series<Numeric> b; //实体涨幅绝对值
Numeric AvgAbs20; //20周期平均实体绝对值
Series<Numeric> openVal;
Events
OnInit()
{
Integer ret = SubscribeBar(SymbolType()+"VIX.TBFT", Frequency, BeginDateTime, 0, 0);
// print("ret="+text(iif(ret == InvalidNumeric,999,ret)));
}
OnBar(ArrayRef<Integer> indexes)
{
Range[0:0]
//仅最后一根Bar执行赋值打印
if(barstatus==2)
{
// Print("Q_UpperLimit:" + Text(Q_UpperLimit()));
// Print("Q_UpperLimit:" + Text(close/Q_UpperLimit()));
//Round(数值,保留位数) 原生锁两位小数
Numeric openVal = Round(DATA1.Close,2);
Print("价格:"+Text(openVal,2));
if(openVal>35)
{
// PlotNumeric ("VX",openVal,close, Green);
PlotString("VIX", Text(openVal,2), High * 1.001, Red);
}
ELSE if(openVal>20 )
PlotString("VIX", Text(openVal,2), High * 1.001, Black);
ELSE
PlotString("VIX", Text(openVal,2), High * 1.001, Gray);
}
Else
{
Return;
}
}
用这个判断,, 是否是行情报价字段输出不在k线上输出,仅在行情报价输出
Bool ViewCon; ViewCon = (StrategyMode() == Enum_Mode_Strategy_Trade );
回复:好的,非常感谢老师,我马上试下
回复:老师好,刚试了下,不显示了,是不是这个模式不对,我看了下他的枚举值,没有字段输出模式Params
Numeric millsecs(1000);
Vars
Numeric avg;
Global Integer timerId;
Natural Integer kflag(0);
Global Integer barperiod;
Series<Numeric> b; //实体涨幅绝对值
Numeric AvgAbs20; //20周期平均实体绝对值
Series<Numeric> openVal;
Bool ViewCon;
Events
OnInit()
{
Integer ret = SubscribeBar(SymbolType()+"VIX.TBFT", Frequency, BeginDateTime, 0, 0);
// print("ret="+text(iif(ret == InvalidNumeric,999,ret)));
}
OnBar(ArrayRef<Integer> indexes)
{
Range[0:0]
//仅最后一根Bar执行赋值打印
if(barstatus==2)
{
// Print("Q_UpperLimit:" + Text(Q_UpperLimit()));
// Print("Q_UpperLimit:" + Text(close/Q_UpperLimit()));
//Round(数值,保留位数) 原生锁两位小数
Numeric openVal = Round(DATA1.Close,2);
Print("价格:"+Text(openVal,2));
ViewCon = (StrategyMode() == Enum_Mode_Strategy_Trade );
if(openVal>35 and ViewCon)
{
PlotNumeric ("VX",openVal,close, Green);
// PlotString("VIX", Text(openVal,2), High * 1.001, Red);
}
ELSE if(openVal>20 and ViewCon)
PlotString("VIX", Text(openVal,2), High * 1.001, Black);
ELSE
PlotString("VIX", Text(openVal,2), High * 1.001, Gray);
}
Else
{
Return;
}
}
回复:
回复:一个字段里, 不能既输出文字, 又输出数字, 还有逻辑要完备, 在之前帖子里有写不要自己瞎创造, 搞明白机制 https://bbs.tbquant.net/thread/20251105140415187796