FX.H
上传用户:bjghjy
上传日期:2007-01-07
资源大小:379k
文件大小:6k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////////////////
  2. //This function and macro is to deal with the hirstory data analyser.
  3. //
  4. #define FRAME_WIDTH 2
  5. #define MAX_GPDM_SIZE  6
  6. #define MAX_PARA_NAME 6
  7. #define MIN_5    0
  8. #define MIN_15   1
  9. #define MIN_30   2
  10. #define MIN_60   3
  11. #define DAY      4
  12. #define WEEK     5
  13. #define MONTH    6
  14. #define DEFSHOWDOT      60
  15. #define MAXSHOWDOT      900
  16. #define ABS(x) ((x>=0) ? x:0.00-x)
  17. #define PV(x)   ((x>=0) ? x:0.00)
  18. #define NV(x)   ((x<=0) ? 0-x:0)
  19. #define FX_CLASS "JXFX"
  20. typedef struct tag_MACD_DATA
  21. {
  22.      double macd;
  23.      double ema1,ema2;
  24.      double dif;
  25.      double cha;
  26. }MACD_DATA, FAR *LPMACD_DATA;
  27. typedef struct tag_RSI_DATA
  28. {
  29. double un[3],dn[3],rsi[3];
  30. }RSI_DATA,FAR *LPRSI_DATA;
  31. typedef struct tag_DMI_DATA
  32. {
  33. double tr,pdm,ndm,pdi,ndi;
  34. double dx,adx;
  35. }DMI_DATA,LPDMI_DATA;
  36. typedef struct tag_PSY_DATA
  37. {
  38. double psy;
  39. }PSY_DATA,LPPSY_DATA;
  40. typedef struct tag_VR_DATA
  41. {
  42. double vr;
  43. }VR_DATA,LPVR_DATA;
  44. typedef struct tag_OBV_DATA
  45. double obv;
  46. }OBV_DATA,LPOBV_DATA;
  47. typedef struct tag_BIAS_DATA
  48. {
  49. double bias;
  50. }BIAS_DATA,LPBIAS_DATA;
  51. typedef struct tag_WR_DATA
  52. {
  53. double wr[4];
  54. }WR_DATA,LPWR_DATA;
  55. typedef struct tag_KDJ_DATA
  56. {
  57. double k,d,j;
  58. }KDJ_DATA,LPKDJ_DATA;
  59. typedef struct tag_K_DATA
  60. {
  61. char date[10];               //yymmddhhmi
  62. float ks;
  63. float zg;
  64. float zd;
  65. float ss;
  66. long  cj;
  67. }K_DATA,MAIN_DATA,FAR *LPK_DATA;
  68. //This  struct to draw curve para.
  69. //feature:
  70. //       bit1 -bit10 -----draw data object
  71. #define DW_DATA1 (1L<< 0)
  72. #define DW_FRAME (1L<<10)
  73. #define DW_LEFT (1L<<11)
  74. #define DW_X_COOR (1L<<12)
  75. #define DW_ALERT (1L<<13)
  76. #define DW_TOP (1L<<14)
  77. #define DW_NAME (1L<<15)
  78. #define DW_MAX (1L<<16)
  79. #define DW_MIN (1L<<17)
  80. #define DW_SELE (1L<<18)
  81. #define DW_NULL (1L<<19)
  82. #define DW_DELE (1L<<20)
  83. //bit 22 -25 is ret no code.value is 0 -16
  84. #define GetSerial(x) (x>>21)
  85. #define SetSerial(x,y) (x<<21|y)
  86. #define DW_BASE 0x3ff
  87. #define DW_OBJECT 0xffff
  88. #define DW_ATTR 0xffff0000
  89. #define DW_ALL 0x3fc00
  90. #define MAX_DATA_ITEM 10
  91. typedef struct tag_PARA
  92. {
  93. char name[MAX_PARA_NAME+1];      //参数名称
  94. char pname[MAX_DATA_ITEM][MAX_PARA_NAME+1]; //参数名称
  95. int no;                      //目标标号
  96. int dnum;                        //数据项个数
  97. COLORREF color[MAX_DATA_ITEM*2];   //色参数,对应于该目标的画图项数
  98. RECT rc;             //作图区
  99. int pnum;              //参数个数(指可调参数个数,等于Periods个数)
  100. int periods[MAX_DATA_ITEM]; //计算周期
  101. double price[5];      //价参数   price[0] MAX price[1] MIN price[2]alert1,price[3]alert2
  102. int htitle;                  //顶标注区高度
  103. int xtitle[5];                   //顶标注区数据项X坐标(数据项名称在xtitle[i]-ltitle处)
  104. double fwdt,fhdj;                //宽密度、高密度
  105. unsigned long feature;           //32位特性码
  106. struct tag_PARA *next;           //下一个参数对象指针
  107. }PARA;
  108. typedef struct tag_DATA
  109. {
  110.     int no;                         //数据对象编号
  111.     char gpdm[MAX_GPDM_SIZE+1];  //数据对象的股票代码
  112.     int type;                    //数据对象的分析曲线类型
  113.     int range;                   //分析周期  
  114.     int size;                       //每项数据个数
  115.     int num;                  //数据项个数
  116.     int method[MAX_DATA_ITEM];      //每个数据项的画法
  117. double* v[MAX_DATA_ITEM];       //数据值
  118. struct tag_DATA *next;       //下一个数据对象地址
  119. }DATA;
  120. #define PRICE_BAR_METHOD    0   //用价参数画方形图(KS、SS、ZG、ZD)
  121. #define VOULMN_BAR_METHOD 1   //用量参数画方形图(CJ)
  122. #define CURVE_METHOD 2   //曲线
  123. #define VERT_LINE_METHOD    3   //垂直线
  124. typedef struct tag_PAINT_PARA
  125. {
  126. int num;                        //初始化表项数
  127. RECT rc;             //作图区整体大小
  128. int wleft;           //左标注区宽度
  129. int object;                  //操作目标的编号
  130. long item;                    //操作目标的项目编号
  131. BOOL IsMax;                  //窗口是否开大
  132. BOOL IsAvLineShow;           //是否画平均线
  133. BOOL IsScroll;               //窗口是否在左右滚动
  134. BOOL IsUpDown;               //窗口是否在上下滚动
  135. BOOL IsPainting;
  136. BOOL IsSetPara;              //是否在设置参数
  137. HFONT hFont;
  138. }PAINT_PARA;
  139. typedef struct tag_FX
  140. {                 
  141.     char gpdm[MAX_GPDM_SIZE+1];
  142.     char gpmc[20];
  143.     PAINT_PARA PaintPara;
  144.     MAIN_DATA *MainData;
  145.     PARA KxPara,CjlPara;
  146.     DATA KxData,CjlData;
  147.     PARA *Para;
  148.     DATA *Data;
  149.     BOOL IsDataOk;
  150.     int range,type;
  151.     int ShowDot,RecCount,CurRecPrt,TotalCount;
  152. }FX,FAR *LPFX;
  153. HWND ghWndSetup;
  154. FX *Fx;
  155. char *RANGE_NAME[];
  156. unsigned int RANGE_MENU[7];
  157. BOOL RegisterFx();
  158. BOOL CreateWndFx(HWND);
  159. LRESULT CALLBACK FxWndProc(HWND, UINT, WPARAM, LPARAM);
  160. #define  SCROLL_RIGHT 1
  161. #define SCROLL_LEFT -1
  162. #define SCROLL_CANCEL 0
  163. #define SCROLL_HOME 'H'
  164. #define SCROLL_END 'E'
  165. int DrawScroll(FX *fx,int orient);
  166. int UpDown(FX *fx,int orient);
  167. extern int vLineTo(HDC hDC, int x1, int y1);
  168. extern int hLineTo(HDC hDC, int x1, int y1);
  169. typedef struct tag_DAY_DATA
  170. {
  171. long day;
  172. float kpjg, spjg, zgjg, zdjg;
  173. long cjss;
  174. double cjje;
  175. }DAY_DATA, FAR *LPDAY_DATA;
  176. BOOL AnalyseInit(void);  
  177. int WriteDefaultPara(void);
  178. int WritePara(PARA *para);
  179. int GetAnalysePara (PARA *para);
  180. void SetDiagColor(int x,int y,PARA *Para);
  181. void SetAnalysePara(PAINT_PARA *PaintPara);
  182. typedef int (* CREATEDATA)(K_DATA *MainData,int Num,DATA *Data,PARA *Para);
  183. typedef struct tag_ANALYSER_INIT_ITEM
  184. {
  185.    int type;
  186.    char name[MAX_PARA_NAME+1];
  187.    CREATEDATA CreateData;
  188. }ANALYSER_INIT_TABLE;
  189. extern ANALYSER_INIT_TABLE *INIT_TABLE;
  190. extern HWND ghWndSetup;
  191. extern FX *Fx;
  192. extern BOOL RegisterFx(void);
  193. extern BOOL CreateWndFx(HWND hWnd);
  194. extern int FxExit(LPFX Fx);
  195. int DrawDiagram(HDC hDc,int CurRecPrt,int Show,PARA *Para,DATA *Data,PAINT_PARA *PaintPara,long feature);
  196. long GetObjectItem(int x,int y,int CurRecPrt,int Show,PARA *Para,DATA *Data,PAINT_PARA *PaintPara);