通过python代码计算缠论高低点,然后将缠论高低点保存到了pel语言的czsc_bars数组中,数组元素的索引值和barpos的取值一一对应,当数组元素值是1时表示高点,-1时表示低点,其余元素值是0;在最后一根K线时,如何根据数组元素的高低点在K线上标记"●";下面是我的代码,最后在渲染高低点标记时不生效;问题:如何正确的进行高低点标记?
[PEL] 复制代码
N:=5;
WARNING_DISABLE:11;//禁止提醒
//调用缠论技术指标,获取最后一笔的顶底分型
Py_Import czsc_ind_v2;
size:=DATACOUNT+1;
//数组定义,数组元素取值:-1表示低点,1表示高点,无信号0
VARIABLE:czsc_bars[size]:=0;
//触发Python中的Handle_bar方法
FIREPYHANDLEBAR;
//是否最后一根K线
czsc_bars_end:=GETPYTHONVAL('czsc_bars_end');
//高点索引:最近一个高点索引,若倒数3根K线是高点,则返回3
high_index:=GETPYTHONVAL('high_bar_index');
//低点索引:最近一个低点索引,若倒数5根K线是低点,则返回5
low_index:=GETPYTHONVAL('low_bar_index');
//默认设置成0
czsc_bars[BARPOS]:=0;
//设置高点元素的值,设置为1
if HIGH_INDEX > 0 THEN BEGIN
index:=BARPOS-HIGH_INDEX;
czsc_bars[index]:=1;
MSGOUT(HIGH_INDEX > 0, NUMTOSTR(BARPOS, 0)&': index = '&NUMTOSTR(index, 0)&' : val = '&NUMTOSTR(czsc_bars[index], 0));
END
//设置高点元素的值,设置为-1
if low_index > 0 THEN BEGIN
index:=BARPOS-low_index;
czsc_bars[index]:=-1;
MSGOUT(low_index > 0, NUMTOSTR(BARPOS, 0)&': index = '&NUMTOSTR(index, 0)&' : val = '&NUMTOSTR(czsc_bars[index], 0));
END
//问题渲染高低点不生效,如何根据数组元素中的1和-1进行正确的渲染?
if czsc_bars_end=1 then BEGIN
MSGOUT(czsc_bars_end=1, NUMTOSTR(czsc_bars[BARPOS], 0));
for index=1 to DATACOUNT-1 do begin
if czsc_bars[index] > 0 THEN BEGIN
MSGOUT(index > 0, 'high index ='&NUMTOSTR(index, 0));
//这里渲染高点不生效,如何正确的渲染?
drawtext(index > 0 and BARPOS=index, H[index]+50, '●', COLORGREEN), ALIGN0;
END
if czsc_bars[index] < 0 THEN BEGIN
MSGOUT(index > 0, 'low index ='&NUMTOSTR(index, 0));
//这里渲染低点不生效,如何正确的渲染?
drawtext(index > 0 and BARPOS=index, L[index]-50, '●', COLORRED), ALIGN0;
END
end
END
|