我是NinjaTrader编码的新手。我试图根据条件为真在条形下画一个点。
如果我的条件尽可能简单,就像这样:
if (Close[0] < Open[0])
- 我可以正确显示点。
但是,如果我尝试引用之前的栏,就像这样:
if (Close[0] < Open[1])
- 代码不起作用。所以,我认为这是条件本身,我错了。
有人可以解释为什么这种改变会阻止代码工作,以及我如何正确引用以前的代码?
任何帮助表示感谢。
这是代码的其余部分。
protected override void OnBarUpdate()
{
{
//if (Close[0] < Open[0])
if (Close[1] > Open[1])
//if(Close[1] < Close[0] && Close[1] < Close[2])
{
myBarCloses=1;
} else {
myBarCloses=0;
}
if (myBarCloses==1)
{
DrawDot(CurrentBar.ToString() +"BarCloseDot",true, 0, Low[0]*0.997, Color.Magenta);
}
}
}
答案 0 :(得分:3)
如果其他人需要此信息,则需要检查您正在访问的数据系列中是否有足够的条形码。
我不知道是否允许发布外部链接,所以我认为不是。 Google搜索应该找到信息。
我必须修改下面的代码。
protected override void OnBarUpdate()
{
if (CurrentBar < 1)
return;
if (Close[0] < Open[1])
// etc
}
答案 1 :(得分:0)
对于这些情况,您可以仅使用Strategy Builder创建代码。我做到了,这就是我得到的:
if (BarsInProgress != 0)
return;
if (CurrentBars[0] < 1)
return;
// Set 1
if (Close[1] > Open[1])
{
Draw.Dot(this, @"Temp01 Dot_1", false, 0, 3, Brushes.CornflowerBlue);
}
此方法的优势在于,您始终可以获得有效的代码。