VARIABLE:StdBars[9]=0;
//标准化K线队列,每根K线保存高、低、方向,右侧为最新
If BARPOS=1 Then
//初始化标准K线队列
Begin
StdBars[7]:=High;
StdBars[8]:=Low;
If Close>Open Then
StdBars[9]:=1;
Else
StdBars[9]:=0;
End
////////////////处理K线包含关系////////////////
If BarPos>1 Then
//从第二根K线开始,判断K线包含关系
Begin
If StdBars[7]>High And StdBars[8]<Low Then
//当前K线被前一K线包含
Begin
If StdBars[9]=1 Then
//向上K线
Begin
StdBars[8]:=Low;
//合并后的K线取低点中的高者
DrawLine(BARPOS,StdBars[7],Barpos,StdBars[8],0,ColorMagenta,1);
End
End
Else
//未发生包含关系,平移队列,放入最新K线数据
Begin
StdBars[1]:=StdBars[4];
StdBars[2]:=StdBars[5];
StdBars[3]:=StdBars[6];
StdBars[4]:=StdBars[7];
StdBars[5]:=StdBars[8];
StdBars[6]:=StdBars[9];
StdBars[7]:=High;
StdBars[8]:=Low;
If StdBars[7]>StdBars[4] Then StdBars[9]:=1;
If StdBars[8]<StdBars[5] Then StdBars[9]:=0;
End
End
红色代码本意是在当前K线处,将合并后的K线区间画出来,但实际变成了本次合并K线的低点和前次合并K线的高点的连线,真奇怪。
此主题相关图片如下:未命名.jpg

[此贴子已经被作者于2013-1-4 14:49:47编辑过]
我想在
逐K线模式下画MACD金死叉前后高低点间连线,怎么设定DrawLine的COND都画不出。无意在这段代码中发现有画线,但逻辑却是混乱的。
[此贴子已经被作者于2013-1-4 14:58:36编辑过]