微指數多個波峯波谷獲取算法

Python版本

kw_x = [
    "1月31日",
    "2月1日",
    "2月2日",
    "2月3日",
    "2月4日",
    "2月5日",
    "2月6日",
    "2月7日",
    "2月8日",
    "2月9日",
    "2月10日",
    "2月11日",
    "2月12日",
    "2月13日",
    "2月14日",
    "2月15日",
    "2月16日",
    "2月17日",
    "2月18日",
    "2月19日",
    "2月20日",
    "2月21日",
    "2月22日",
    "2月23日",
    "2月24日",
    "2月25日",
    "2月26日",
    "2月27日",
    "2月28日"
]
# kw_x
kw_s = [
    1461,
    3370,
    1340,
    1987,
    4785,
    75669,
    5324,
    5044,
    26123,
    1803,
    4756,
    1768,
    2280,
    575,
    829,
    442,
    488,
    1027,
    2586,
    93,
    281,
    51,
    57,
    80,
    124,
    52,
    112,
    14,
    34
]
h = []
l = []
for i in range(1, len(kw_s) - 1):
    if kw_s[i - 1] < kw_s[i] and kw_s[i + 1] < kw_s[i]:
        h.append(kw_s[i])
    elif kw_s[i - 1] > kw_s[i] and kw_s[i + 1] > kw_s[i]:
        l.append(kw_s[i])
if len(h) == 0:
    h.append(max(kw_s))
if len(l) == 0:
    l.append(min(kw_s[kw_s.index(max(kw_s)):]))
z = [kw_x[i] for i in [kw_s.index(i) for i in h]]
print(h)
print(l)
for a1, a2 in zip(h, z):
    print(a2, a1)
複製代碼

Javascript版本

let kw_x = [
    "1月31日",
    "2月1日",
    "2月2日",
    "2月3日",
    "2月4日",
    "2月5日",
    "2月6日",
    "2月7日",
    "2月8日",
    "2月9日",
    "2月10日",
    "2月11日",
    "2月12日",
    "2月13日",
    "2月14日",
    "2月15日",
    "2月16日",
    "2月17日",
    "2月18日",
    "2月19日",
    "2月20日",
    "2月21日",
    "2月22日",
    "2月23日",
    "2月24日",
    "2月25日",
    "2月26日",
    "2月27日",
    "2月28日"
];

let kw_s = [
    1461,
    3370,
    1340,
    1987,
    4785,
    75669,
    5324,
    5044,
    26123,
    1803,
    4756,
    1768,
    2280,
    575,
    829,
    442,
    488,
    1027,
    2586,
    93,
    281,
    51,
    57,
    80,
    124,
    52,
    112,
    14,
    34
];

let h = [];
let l = [];

for (let i = 1; i < kw_s.length; i++) {
    if (kw_s[i - 1] < kw_s[i] && kw_s[i + 1] < kw_s[i]) {
        h.push(kw_s[i]);
    } else if (kw_s[i - 1] > kw_s[i] && kw_s[i + 1] > kw_s[i]) {
        l.push(kw_s[i]);
    }
}
if (h.length === 0){
    h.push(Math.max(kw_s));
}
if (l.length === 0){
    l.push(Math.min(kw_s.slice(kw_s.indexOf(Math.max(kw_s)))));
}
let z = []
for (const i of h) {
    z.push(kw_x[kw_s.indexOf(i)])
}
console.log(h);
console.log(l);

for (const a1 of h.slice(0, 5)) {
    console.log(z[h.indexOf(a1)], a1);
}

複製代碼
相關文章
相關標籤/搜索