Skip to content

Commit fd9d696

Browse files
committed
add INDEXADV/INDEXDEC
1 parent 786d3e4 commit fd9d696

File tree

3 files changed

+121
-58
lines changed

3 files changed

+121
-58
lines changed
+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*
2+
* Copyright (c) 2025 hikyuu.org
3+
*
4+
* Created on: 2025-01-16
5+
* Author: fasiondog
6+
*/
7+
8+
#include "CONTEXT.h"
9+
#include "INDEX.h"
10+
11+
namespace hku {
12+
13+
Indicator HKU_API INDEXO() {
14+
KData k = getKData("SH000001", KQueryByIndex(-1));
15+
return CONTEXT(k.open());
16+
}
17+
18+
Indicator HKU_API INDEXO(const KQuery& query) {
19+
KData k = getKData("SH000001", query);
20+
return CONTEXT(k.open());
21+
}
22+
23+
Indicator HKU_API INDEXH() {
24+
KData k = getKData("SH000001", KQueryByIndex(-1));
25+
return CONTEXT(k.high());
26+
}
27+
28+
Indicator HKU_API INDEXH(const KQuery& query) {
29+
KData k = getKData("SH000001", query);
30+
return CONTEXT(k.high());
31+
}
32+
33+
Indicator HKU_API INDEXL() {
34+
KData k = getKData("SH000001", KQueryByIndex(-1));
35+
return CONTEXT(k.low());
36+
}
37+
38+
Indicator HKU_API INDEXL(const KQuery& query) {
39+
KData k = getKData("SH000001", query);
40+
return CONTEXT(k.low());
41+
}
42+
43+
Indicator HKU_API INDEXC() {
44+
KData k = getKData("SH000001", KQueryByIndex(-1));
45+
return CONTEXT(k.close());
46+
}
47+
48+
Indicator HKU_API INDEXC(const KQuery& query) {
49+
KData k = getKData("SH000001", query);
50+
return CONTEXT(k.close());
51+
}
52+
53+
Indicator HKU_API INDEXA() {
54+
KData k = getKData("SH000001", KQueryByIndex(-1));
55+
return CONTEXT(k.amo());
56+
}
57+
58+
Indicator HKU_API INDEXA(const KQuery& query) {
59+
KData k = getKData("SH000001", query);
60+
return CONTEXT(k.amo());
61+
}
62+
63+
Indicator HKU_API INDEXV() {
64+
KData k = getKData("SH000001", KQueryByIndex(-1));
65+
return CONTEXT(k.vol());
66+
}
67+
68+
Indicator HKU_API INDEXV(const KQuery& query) {
69+
KData k = getKData("SH000001", query);
70+
return CONTEXT(k.vol());
71+
}
72+
73+
Indicator HKU_API INDEXADV() {
74+
KData k = getKData("SH880005", KQueryByIndex(-1));
75+
return CONTEXT(k.close());
76+
}
77+
78+
Indicator HKU_API INDEXADV(const KQuery& query) {
79+
KData k = getKData("SH880005", query);
80+
return CONTEXT(k.close());
81+
}
82+
83+
Indicator HKU_API INDEXDEC() {
84+
KData k = getKData("SH880005", KQueryByIndex(-1));
85+
return CONTEXT(k.open());
86+
}
87+
88+
Indicator HKU_API INDEXDEC(const KQuery& query) {
89+
KData k = getKData("SH880005", query);
90+
return CONTEXT(k.open());
91+
}
92+
93+
}

hikyuu_cpp/hikyuu/indicator/crt/INDEX.h

+18-58
Original file line numberDiff line numberDiff line change
@@ -11,78 +11,38 @@
1111

1212
namespace hku {
1313

14-
/** 大盘开盘价 */
15-
inline Indicator INDEXO() {
16-
KData k = getKData("SH000001", KQueryByIndex(-1));
17-
return CONTEXT(k.open());
18-
}
14+
// 这里的大盘都指 sh000001
1915

20-
inline Indicator INDEXO(const KQuery& query) {
21-
KData k = getKData("SH000001", query);
22-
return CONTEXT(k.open());
23-
}
16+
/** 大盘开盘价 */
17+
Indicator HKU_API INDEXO();
18+
Indicator HKU_API INDEXO(const KQuery& query);
2419

2520
/** 大盘最高价盘价 */
26-
inline Indicator INDEXH() {
27-
KData k = getKData("SH000001", KQueryByIndex(-1));
28-
return CONTEXT(k.high());
29-
}
30-
31-
inline Indicator INDEXH(const KQuery& query) {
32-
KData k = getKData("SH000001", query);
33-
return CONTEXT(k.high());
34-
}
21+
Indicator HKU_API INDEXH();
22+
Indicator HKU_API INDEXH(const KQuery& query);
3523

3624
/** 大盘最低价 */
37-
inline Indicator INDEXL() {
38-
KData k = getKData("SH000001", KQueryByIndex(-1));
39-
return CONTEXT(k.low());
40-
}
41-
42-
inline Indicator INDEXL(const KQuery& query) {
43-
KData k = getKData("SH000001", query);
44-
return CONTEXT(k.low());
45-
}
25+
Indicator HKU_API INDEXL();
26+
Indicator HKU_API INDEXL(const KQuery& query);
4627

4728
/** 大盘收盘价 */
48-
inline Indicator INDEXC() {
49-
KData k = getKData("SH000001", KQueryByIndex(-1));
50-
return CONTEXT(k.close());
51-
}
52-
53-
inline Indicator INDEXC(const KQuery& query) {
54-
KData k = getKData("SH000001", query);
55-
return CONTEXT(k.close());
56-
}
29+
Indicator HKU_API INDEXC();
30+
Indicator HKU_API INDEXC(const KQuery& query);
5731

5832
/** 大盘成交额 */
59-
inline Indicator INDEXA() {
60-
KData k = getKData("SH000001", KQueryByIndex(-1));
61-
return CONTEXT(k.amo());
62-
}
63-
64-
inline Indicator INDEXA(const KQuery& query) {
65-
KData k = getKData("SH000001", query);
66-
return CONTEXT(k.amo());
67-
}
33+
Indicator HKU_API INDEXA();
34+
Indicator HKU_API INDEXA(const KQuery& query);
6835

6936
/** 大盘成交量 */
70-
inline Indicator INDEXV() {
71-
KData k = getKData("SH000001", KQueryByIndex(-1));
72-
return CONTEXT(k.vol());
73-
}
74-
75-
inline Indicator INDEXV(const KQuery& query) {
76-
KData k = getKData("SH000001", query);
77-
return CONTEXT(k.vol());
78-
}
37+
Indicator HKU_API INDEXV();
38+
Indicator HKU_API INDEXV(const KQuery& query);
7939

80-
#if 0
81-
/** 大盘上涨家数 */
40+
/** 大盘上涨家数, 使用通达信 SH880005,可能无法用于实盘 */
8241
Indicator HKU_API INDEXADV();
42+
Indicator HKU_API INDEXADV(const KQuery& query);
8343

84-
/** 大盘下跌家数 */
44+
/** 大盘下跌家数, 使用通达信 SH880005,可能无法用于实盘 */
8545
Indicator HKU_API INDEXDEC();
86-
#endif
46+
Indicator HKU_API INDEXDEC(const KQuery& query);
8747

8848
} // namespace hku

hikyuu_pywrap/indicator/_build_in.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -2072,4 +2072,14 @@ void export_Indicator_build_in(py::module& m) {
20722072
m.def("INDEXA", py::overload_cast<const KQuery&>(INDEXA), R"(INDEXA([query])
20732073
20742074
大盘成交额)");
2075+
2076+
m.def("INDEXADV", py::overload_cast<>(INDEXADV));
2077+
m.def("INDEXADV", py::overload_cast<const KQuery&>(INDEXADV), R"(INDEXADV([query])
2078+
2079+
通达信 880005 大盘上涨家数, 可能无法盘中更新!)");
2080+
2081+
m.def("INDEXDEC", py::overload_cast<>(INDEXDEC));
2082+
m.def("INDEXDEC", py::overload_cast<const KQuery&>(INDEXDEC), R"(INDEXDEC([query])
2083+
2084+
通达信 880005 大盘下跌家数, 可能无法盘中更新!)");
20752085
}

0 commit comments

Comments
 (0)