Vars
//此处添加变量
Series<Numeric> con;
OnInit()
{
con=0;
}
OnBar(ArrayRef<Integer> indexs)
{
if (longshort[1]> 50+boLength1 and MarketPosition == 0)
{
SellShort(0,open);
con = 1;
}
Commentary(\"con指标:\"+text(con) );
}
为什么以上代码在运行时 并没有满足建仓条件 CON指标就显示为1
而变成下面这样 就会显示为0
Vars
//此处添加变量
Series<Numeric> con;
OnInit()
{
con=0;
}
OnBar(ArrayRef<Integer> indexs)
{
if (longshort[1]> 50+boLength1 and MarketPosition == 0)
{
SellShort(0,open);
//con = 1;
}
Commentary(\"con指标:\"+text(con) );
}
图表命令有一个机制,就是强制在开始的若干根k线上不执行buysell信号。因为一开始的数据如果数量不够,有一些指标计算是失真的。比如你的指标式60周均线,那么前60根k线上可能会满足你的开仓条件,但是不会执行buy命令,这种情况下就会造成con1状态变量被污染了。
改进方法可以在开仓条件里加上在一定k线以后再执行,就能防止一开始的数据污染状态变量