For loop 内条着色只要在母条AFL范围内即可
For loop 内条着色只要在母条AFL范围内即可,for-loop,amibroker,For Loop,Amibroker,n=-1; 颜色=IIf(高参考(低,n)),红色,白色; 绘图(关闭,“彩色价格”、颜色、样式栏) 红色箭头指向条是主条,蓝色箭头指向白色条在主条范围内的条内。 所以我试着比较当前条和母条,如果当前条在母条的范围内,则比较前一条,但如果代码条件为真,我试着增加递减n值,但它不起作用,我不知道为什么。为了更清晰,请参考图片 n=-1; 颜色=IIf((高参考值(低,n)),红色和&n=n--,白色); 绘图(关闭,“彩色价格”、颜色、样式栏)我发现写出for循环更容易 function Ins
n=-1;
颜色=IIf(高<参考(高,n)和低>参考(低,n)),红色,白色;
绘图(关闭,“彩色价格”、颜色、样式栏)代码>
红色箭头指向条是主条,蓝色箭头指向白色条在主条范围内的条内。
所以我试着比较当前条和母条,如果当前条在母条的范围内,则比较前一条,但如果代码条件为真,我试着增加递减n值,但它不起作用,我不知道为什么。为了更清晰,请参考图片
n=-1;
颜色=IIf((高<参考值(高,n)&低>参考值(低,n)),红色和&n=n--,白色);
绘图(关闭,“彩色价格”、颜色、样式栏)代码>我发现写出for循环更容易
function InsideBarColor() {
local state;
local isInsideBar;
local index;
local insideHigh;
local insideLow;
local priceColor;
state = 0;
isInsideBar = Inside();
priceColor = colorDefault;
for(index = 1; index < BarCount; index += 1) {
if (state == 0 && isInsideBar[index] == True) {
// Record the High/Low of the first inside bar.
insideHigh = High[index-1];
insideLow = Low[index-1];
state = 1;
priceColor[index] = colorRed;
} else if(state == 1) {
if (High[index] > insideHigh || Low[index] < insideLow) {
// Price broke out of range
priceColor[index] = colorWhite;
state = 0;
} else {
// Price still inside range
priceColor[index] = colorBlue;
}
} else {
priceColor[index] = priceColor[index -1];
}
}
return priceColor;
}
colors = InsideBarColor();
函数InsideBarColor(){
地方政府;
局部伊辛西德巴;
地方指数;
局部内高;
地方内幕;
地方色彩;
状态=0;
isInsideBar=内部();
priceColor=colorDefault;
对于(索引=1;索引内部高| |低[指数]<内部低){
//价格超出了范围
priceColor[索引]=彩色白色;
状态=0;
}否则{
//价格仍在区间内
priceColor[index]=colorBlue;
}
}否则{
priceColor[index]=priceColor[index-1];
}
}
返回颜色;
}
颜色=内部颜色();