51,411
社区成员
发帖
与我相关
我的任务
分享我想用java实现k线周期的处理,我有60根1分钟周期的k线,我想得到第n根时前面k线累加的一根k线。比如,我想得到第6根时累加的k线,即前面6分钟的一根k线
看GPT的回答,感觉很厉害,还有解释:
public KLine calculateSumKLine(List kLines, int n) {
if (n <= 0 || kLines == null || kLines.size() < n) {
return null;
}
double open = kLines.get(n-1).getOpen();
double high = kLines.get(n-1).getHigh();
double low = kLines.get(n-1).getLow();
double close = kLines.get(n-1).getClose();
double volume = kLines.get(n-1).getVolume();
for (int i = n-2; i >= 0; i--) {
open = kLines.get(i).getOpen();
low = Math.min(low, kLines.get(i).getLow());
high = Math.max(high, kLines.get(i).getHigh());
volume += kLines.get(i).getVolume();
}
return new KLine(open, high, low, close, volume);
}
该方法的参数包括一个k线列表和一个整数n,表示要获取前n根k线的总和。它将遍历k线列表中的前n个元素,对于每个元素,它将更新open、high、low和volume属性的总和。最后,它将创建一个新的k线对象,将这些总和值设置为新对象的属性,并返回该对象。