有个公式立同时有ma指标和macd或KDJ指标,能不能在公式里直接写成MA在主图里输出线条,KDJ在副图里输出线条。(不想要“显示方式改成子图”,在插入KDJ的子图公式)
我之前写过一个布林和MACD的,把具体指标改下就可以的。
Params
Numeric Length(20); //布林周期
Numeric Offset(2); //标准差倍数
Numeric FastLength(12); //MACD参数1
Numeric SlowLength(26); //MACD参数2
Numeric MACDLength(9); //MACD参数3
Vars
Plot plt1; //主图plt1
Plot plt2; //主图plt2
Array<Numeric> xData; //x轴数据集
Array<Numeric> yData; //y轴数据集
Series<Numeric> MdLine; //布林中轨
Numeric Band;
Series<Numeric> MACDDiff; //MACDDiff
Numeric AvgMACD; //MACDDEA
Numeric MACDValue; //MACD
Events
OnInit()
{
plt2.figure(0);
plt2.setOption("plt2","x-format","time");
}
OnBar(ArrayRef<Integer> indexs)
{
MdLine = AverageFC(Close,Length);
Band = StandardDev(Close,Length,2);
xData[0] = Date+Time;
yData[0] = MdLine;
plt1.setOption("MdLine","color",Magenta);
plt1.line("MdLine",xData,yData);
yData[0] = MdLine + Offset * Band;
plt1.setOption("UpLine","color",Yellow);
plt1.line("UpLine",xData,yData);
yData[0] = MdLine - Offset * Band;
plt1.setOption("DnLine","color",Cyan);
plt1.line("DnLine",xData,yData);
yData[0] = 0;
plt2.line("零线",xData,yData);
MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
yData[0] = MACDDiff;
plt2.line("MACDDiff",xData,yData);
AvgMACD = XAverage(MACDDiff,MACDLength);
yData[0] = AvgMACD;
plt2.line("MACDDEA",xData,yData);
MACDValue = MACDDiff - AvgMACD;
yData[0] = MACDValue;
If(yData[0]>=0)
{
plt2.setOption("MACD","color",Red);
}
Else
{
plt2.setOption("MACD","color",Green);
}
plt2.barv("MACD",xData,yData);
}