4.04K 浏览
0

为了动态定位最高K线位置,在K线数量399内循环调用了hhv函数,发现内存占用严重,运行一段时间后报错退出:

MemoryError:Unable to allocate 3.12 Kib for an array with shape<399,> and datatype int64

【3940】Failed to execute script

请教:

1、hhv函数调用后是否未释放内存或释放比较慢?该如何优化?

2、有其他好办法动态定位最高最低K线位置吗?完成类似功能: high>=hhv(high,21) and high>=hhv(high,35)?

谢谢!

yanqiong Ma 已回答的问题 2020年7月16日
0

贴代码的时候,可以用 “insert code” 贴,这样根本看不了你代码是什么。

yanqiong Ma 已回答的问题 2020年7月16日
0

你是怎么使用的呢,有没有简短的重现代码呢

kenny 发表新评论 2020年7月13日

ND0=21
#NHD01,NHD02,NLD01,NLD02=0,0,0,0
NHD1,NLD1,NHD2,NLD2=0,0,0,0
#第1高低点
countH,countL=0,0
count=0
while (count=hhv(iklines.high,ND0).iloc[-1-count] and iklines.high.iloc[-1-count]>=hhv(iklines.high,15+ND0).iloc[-1-count]):
countH=countH+1
if (countH==1):
NHD1=count
if (iklines.low.iloc[-1-count]<=llv(iklines.low,ND0).iloc[-1-count] and iklines.low.iloc[-1-count]0 and countL>0):
break;

代码黏贴上去老变形.while这句是
while(count<390):

if(iklines.high.iloc[-1-count]>=hhv(iklines.high,ND0).iloc[-1-count] and iklines.high.iloc[-1-count]>=hhv(iklines.high,15+ND0).iloc[-1-count])

if (countH>0 and countL>0):
break;