forked from neuks/Indicator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FxSelector.h
254 lines (230 loc) · 8.05 KB
/
FxSelector.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
/*****************************************************************************
* 禅论可视化分析系统
* Copyright (C) 2016, Martin Tang
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
#ifndef __FXSelector_h__
#define __FXSelector_h__
#pragma pack(push,1)
#define ASK_ALL -1
#define INVDATA 0xf8f8f8f8
// NTime时间信息
typedef struct tag_NTime
{
unsigned short year;
unsigned char month;
unsigned char day;
unsigned char hour;
unsigned char minute;
unsigned char second;
} NTime;
// 分析数据
typedef struct tag_HISDAT
{
NTime Time; // 时间
float Open; // 开盘价
float High; // 最高价
float Low; // 最低价
float Close; // 收盘价
union
{
float Amount; // 成交金额
DWORD VolInStock; // 持仓量(期货有效)
};
float fVolume; // 成交量
union
{
float Settle; // 结算价(期货有效)
long lYClose;
struct
{
WORD up; // 上涨家数(指数有效)
WORD down; // 下跌家数(指数有效)
}zd;
};
} HISDAT,*LPHISDAT;
// 行情数据(第二版)
typedef struct tag_REPORTDAT2
{
DWORD ItemNum; // 采样点数
float Close; // 前收盘价
float Open; // 今开盘价
float Max; // 最高价
float Min; // 最低价
float Now; // 现价
DWORD RefreshNum; // 刷新数
DWORD Volume; // 总手
DWORD NowVol; // 现手(总手差)
float Amount; // 总成交金额
DWORD Inside; // 内盘
DWORD Outside; // 外盘
float TickDiff; // 笔涨跌(价位差)
BYTE InOutFlag; // 内外盘标志 0:Buy 1:Sell 2:None
DWORD CJBS; // 成交笔数
float Jjjz; // 基金净值
union
{
struct // 个股
{
float Buyp[5]; // 五个叫买价
DWORD Buyv[5]; // 对应五个叫买价的五个买盘
float Sellp[5]; // 五个叫卖价
DWORD Sellv[5]; // 对应五个叫卖价的五个卖盘
} Ggpv;
struct // 指数
{
float LxValue; // 领先指标
float Yield; // 不含加权的指数
long UpHome; // 上涨家数
long DownHome; // 下跌家数
} Zspv;
} Other;
char ununsed[20]; // 备用
} REPORTDAT2,*LPREPORTDAT2;
// 品种基本数据
typedef struct tag_STOCKINFO
{
char Name[9]; // 证券名称
short Unit; // 交易单位
long VolBase; // 量比的基量
short Fz[8]; // 开收市时间(4段)
short InitTimer; // 初始化时间
short EndTimer; // 收盘时间
short nDelayMin; // 延时分钟数
char bBelongHS300; // 是否属于沪深300板块
char bBelongHasKQZ; // 是否属于含可转债板块
char nBelongRZRQ; // 是否属于融资融券板块
char bQH; // 是否是期货品种
char bHKGP; // 是否是港股品种
short QHVol_BaseRate; // 期货的每手乘数
float MinPrice; // 最小变动价位
char unused[1]; // 备用
float ActiveCapital; // 流通股本
long J_start; // 上市日期
short J_addr; // 所属省份
short J_hy; // 所属行业
float J_zgb; // 总股本
float J_zjhhy; // 证监会行业
float J_oldjly; // 上年此期净利润
float J_oldzysy; // 上年此期营业收入
float J_bg; // B股
float J_hg; // H股
float J_mgsy2; // 季报每股收益 (财报中提供的每股收益,有争议的才填)
float J_zzc; // 总资产(元)
float J_ldzc; // 流动资产
float J_gdzc; // 固定资产
float J_wxzc; // 无形资产
float J_gdrs; // 股东人数
float J_ldfz; // 流动负债
float J_cqfz; // 少数股东权益
float J_zbgjj; // 资本公积金
float J_jzc; // 股东权益(就是净资产)
float J_yysy; // 营业收入
float J_yycb; // 营业成本
float J_yszk; // 应收帐款
float J_yyly; // 营业利润
float J_tzsy; // 投资收益
float J_jyxjl; // 经营现金净流量
float J_zxjl; // 总现金净流量
float J_ch; // 存货
float J_lyze; // 利益总额
float J_shly; // 税后利益
float J_jly; // 净利益
float J_wfply; // 未分配利益
float J_mgjzc2; // 季报每股净资产 (财报中提供的每股收益,有争议的才填)
float J_jyl; // 净益率%
float J_mgwfp; // 每股未分配
float J_mgsy; // 每股收益(折算成全年的)
float J_mggjj; // 每股公积金
float J_mgjzc; // 每股净资产
float J_gdqyb; // 股东权益比
} STOCKINFO,*LPSTOCKINFO;
// 股本总股本信息
typedef struct tag_GBInfo
{
float Zgb;
float Ltgb;
} GBINFO,*LPGBINFO;
// 股票涨跌停价格数据
typedef struct tag_TPPrice
{
float Close;
float TPTop;
float TPBottom;
} TPPRICE,*LPTPPRICE;
// 数据回调的类型
#define PER_MIN5 0 // 5分钟数据
#define PER_MIN15 1 // 15分钟数据
#define PER_MIN30 2 // 30分钟数据
#define PER_HOUR 3 // 1小时数据
#define PER_DAY 4 // 日线数据
#define PER_WEEK 5 // 周线数据
#define PER_MONTH 6 // 月线数据
#define PER_MIN1 7 // 1分钟数据
#define PER_MINN 8 // 多分析数据(10)
#define PER_DAYN 9 // 多天线数据(45)
#define PER_SEASON 10 // 季线数据
#define PER_YEAR 11 // 年线数据
#define PER_SEC5 12 // 5秒线
#define PER_SECN 13 // 多秒线(15)
#define PER_PRD_DIY0 14 // DIY周期
#define PER_PRD_DIY10 24 // DIY周期
#define REPORT_DAT2 102 // 行情数据(第二版)
#define GBINFO_DAT 103 // 股本信息
#define STKINFO_DAT 105 // 股票相关数据
#define TPPRICE_DAT 121 // 涨跌停数据
// 参数信息的结构定义
typedef struct tag_PluginPara
{
char acParaName[14]; // 参数的中文名称
int nMin; // 参数最小取值范围
int nMax; // 参数最大取值范围
int nDefault; // 系统推荐的缺省值
int nValue; // 用户定义的值
} PLUGINPARAM;
typedef struct tag_PlugInfo
{
char Name[50]; // 名称与版本
char Dy[30]; // 产地
char Author[30]; // 设计人
char Descript[100]; // 选股描述
char Period[30]; // 适应周期
char OtherInfo[300];
short ParamNum; // 0<=参数个数<=4
PLUGINPARAM ParamInfo[4]; // 参数信息,见上
} PLUGIN,*LPPLUGIN;
// 1. Code为股票代码,如申请上证指数数据则赋值为999999
// 2. nSetCode为市场分类,0为深市,1为沪市
// 3. DataType为申请数据类型,缺省为日K线历史数据,如申请行情数据则赋值为
// REPORT_DAT2,其他相关类型参见OutStruct.h
// 4. pData为申请数据缓冲区,若为NULL且nDataNum为-1则函数返回历史数据个数
// 5. nDataNum为申请数据个数,若为-1且pData为NULL则函数返回历史数据个数
// 6. 2个Ntime为申请数据的时间范围,缺省为全部本地历史数据
// 7. nTQ是否为精确除权
// 回调函数,取数据接口
typedef long(CALLBACK * PDATAIOFUNC)(char *Code, short nSetCode, short DataType, void *pData, short nDataNum, NTime ntTime1, NTime ntTime2, BYTE nTQ, unsigned long);
#ifdef __cplusplus
extern "C" {
#endif
// 注册回调函数
DECLSPEC_EXPORT void RegisterDataInterface(PDATAIOFUNC pfn);
// 得到版权信息
DECLSPEC_EXPORT void GetCopyRightInfo(LPPLUGIN info);
// 按最近数据计算(nDataNum为ASK_ALL表示所有数据)
DECLSPEC_EXPORT BOOL InputInfoThenCalc1(char * Code,short nSetCode,int Value[4],short DataType,short nDataNum,BYTE nTQ,unsigned long unused);
// 选取区段计算
DECLSPEC_EXPORT BOOL InputInfoThenCalc2(char * Code,short nSetCode,int Value[4],short DataType,NTime time1, NTime time2, BYTE nTQ,unsigned long unused);
#ifdef __cplusplus
};
#endif
#pragma pack(pop)
#endif