[英]How to find the highest and lowest value of a range
代碼正在運行,但我想知道如何在“突破柱”出現后找到范圍內最后三個柱的最高值和最低值。
在下面的示例中,該值為 2。
protected override void OnBarUpdate()
{
if (CurrentBar < 3)
{
Value[0] = 0;
}
else if((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Close[0] > High[1]))
{
Value[0] = 2;
}
else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Close[0] < Low[1]))
{
Value[0] = -2;
} else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Close[0] > Close[1]))
{
Value[0] = 1;
} else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Close[0] < Close[1]))
{
Value[0] = -1;
}
else
{
Value[0] = 0;
}
}
我按照@kirodge 的建議使用了 MAX 和 MIN function 並且效果很好。 這是解決方案。
protected override void OnBarUpdate()
{
{
if (CurrentBar < 3)
{
Value[0] = 0;
}
else if((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Low[0] < Low[3] && Close[0] > MAX(High, 3)[1]))
{
Value[0] = 2;
}
else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Low[0] < Low[3] && Close[0] < MIN(Low, 3)[1]))
{
Value[0] = -2;
} else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Low[0] < Low[3] && Close[0] > Open[1]))
{
Value[0] = 1;
} else if ((High[0] > High[1] && High[0] > High[2] && High[0] > High[3] && Low[0] < Low[1] && Low[0] < Low[2] && Low[0] < Low[3] && Close[0] < Open[1]))
{
Value[0] = -1;
}
else {
Value[0] = 0;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.