⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jszb.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "jszb.h"#include "gmclient.h"/*技术指标编号和名称*/int curjszbno;char curjszbname[8];int maxjszbnum;JSZBSTRUCT *jszbrec;int jszbInit(){   int i=0;   if(!frechtblflag)      return -1;   maxjszbnum=13;   jszbrec=(JSZBSTRUCT *)malloc(sizeof(JSZBSTRUCT)*maxjszbnum);   strcpy(jszbrec[i].jszbname,"MACD");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBCOLUMETYPE;   jszbrec[i].num=3;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)DIFF;   jszbrec[i].callback[1]=(JszbFunc)DEA;   jszbrec[i].callback[2]=(JszbFunc)MACD;   strcpy(jszbrec[i].jszblabel[0],"DIFF");   strcpy(jszbrec[i].jszblabel[1],"DEA");   strcpy(jszbrec[i].jszblabel[2],"MACD");   jszbrec[i].arg[0]=12;   jszbrec[i].arg[1]=9;   jszbrec[i].arg[2]=12;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"DMA");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].num=2;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   strcpy(jszbrec[i].jszblabel[0],"DMA");   strcpy(jszbrec[i].jszblabel[1],"AMA");   jszbrec[i].callback[0]=(JszbFunc)DMA;   jszbrec[i].callback[1]=(JszbFunc)AMA;   jszbrec[i].arg[0]=10;   jszbrec[i].arg[1]=10;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"EXPMA");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].initflag[3]=0;   jszbrec[i].initflag[4]=0;   jszbrec[i].type[0]=JSZBKLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].type[3]=JSZBLINETYPE;   jszbrec[i].type[4]=JSZBLINETYPE;   jszbrec[i].num=5;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=NULL;   jszbrec[i].callback[1]=(JszbFunc)SEMA;   jszbrec[i].callback[2]=(JszbFunc)SEMA;   jszbrec[i].callback[3]=(JszbFunc)SEMA;   jszbrec[i].callback[4]=(JszbFunc)SEMA;   strcpy(jszbrec[i].jszblabel[0],"");   strcpy(jszbrec[i].jszblabel[1],"EMA5");   strcpy(jszbrec[i].jszblabel[2],"EMA10");   strcpy(jszbrec[i].jszblabel[3],"EMA20");   strcpy(jszbrec[i].jszblabel[4],"EMA60");   jszbrec[i].arg[0]=1;   jszbrec[i].arg[1]=5;   jszbrec[i].arg[2]=10;   jszbrec[i].arg[3]=20;   jszbrec[i].arg[4]=60;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   jszbrec[i].jszbdata[3]=NULL;   jszbrec[i].jszbdata[4]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"BRAR");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].num=2;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)AR;   jszbrec[i].callback[1]=(JszbFunc)BR;   strcpy(jszbrec[i].jszblabel[0],"AR");   strcpy(jszbrec[i].jszblabel[1],"BR");   jszbrec[i].arg[0]=26;   jszbrec[i].arg[1]=26;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"CR");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].initflag[3]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].type[3]=JSZBLINETYPE;   jszbrec[i].num=4;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)CR;   jszbrec[i].callback[1]=(JszbFunc)REFMACR;   jszbrec[i].callback[2]=(JszbFunc)REFMACR;   jszbrec[i].callback[3]=(JszbFunc)REFMACR;   strcpy(jszbrec[i].jszblabel[0],"CR");   strcpy(jszbrec[i].jszblabel[1],"MACR1");   strcpy(jszbrec[i].jszblabel[2],"MACR2");   strcpy(jszbrec[i].jszblabel[3],"MACR3");   jszbrec[i].arg[0]=26;   jszbrec[i].arg[1]=5;   jszbrec[i].arg[2]=10;   jszbrec[i].arg[3]=20;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   jszbrec[i].jszbdata[3]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"VR");   jszbrec[i].initflag[0]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].num=1;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)VR;   strcpy(jszbrec[i].jszblabel[0],"VR");   jszbrec[i].arg[0]=26;   jszbrec[i].jszbdata[0]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"OBV");   jszbrec[i].initflag[0]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].num=1;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)OBV;   strcpy(jszbrec[i].jszblabel[0],"OBV");   jszbrec[i].arg[0]=1;   jszbrec[i].jszbdata[0]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"RSI");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].num=3;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=1;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)RSI;   jszbrec[i].callback[1]=(JszbFunc)RSI;   jszbrec[i].callback[2]=(JszbFunc)RSI;   strcpy(jszbrec[i].jszblabel[0],"RSI6");   strcpy(jszbrec[i].jszblabel[1],"RSI12");   strcpy(jszbrec[i].jszblabel[2],"RSI24");   jszbrec[i].arg[0]=6;   jszbrec[i].arg[1]=12;   jszbrec[i].arg[2]=24;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"W&R");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].num=2;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=1;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   strcpy(jszbrec[i].jszblabel[0],"WR1");   strcpy(jszbrec[i].jszblabel[1],"WR2");   jszbrec[i].callback[0]=(JszbFunc)WR;   jszbrec[i].callback[1]=(JszbFunc)WR;   jszbrec[i].arg[0]=10;   jszbrec[i].arg[1]=20;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"KDJ");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].num=3;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=1;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)K;   jszbrec[i].callback[1]=(JszbFunc)D;   jszbrec[i].callback[2]=(JszbFunc)J;   strcpy(jszbrec[i].jszblabel[0],"K");   strcpy(jszbrec[i].jszblabel[1],"D");   strcpy(jszbrec[i].jszblabel[2],"J");   jszbrec[i].arg[0]=3;   jszbrec[i].arg[1]=3;   jszbrec[i].arg[2]=3;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"ROC");   jszbrec[i].initflag[0]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].num=1;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)ROCMA;   strcpy(jszbrec[i].jszblabel[0],"ROC");   jszbrec[i].arg[0]=6;   jszbrec[i].jszbdata[0]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"PSY");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].num=2;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   strcpy(jszbrec[i].jszblabel[0],"PSY6");   strcpy(jszbrec[i].jszblabel[1],"PSY12");   jszbrec[i].callback[0]=(JszbFunc)PSY;   jszbrec[i].callback[1]=(JszbFunc)PSY;   jszbrec[i].arg[0]=6;   jszbrec[i].arg[1]=12;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   i++;   strcpy(jszbrec[i].jszbname,"BIAS");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].num=3;   jszbrec[i].spiltlinenum= 3;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)BIAS;   jszbrec[i].callback[1]=(JszbFunc)BIAS;   jszbrec[i].callback[2]=(JszbFunc)BIAS;   strcpy(jszbrec[i].jszblabel[0],"BIAS1");   strcpy(jszbrec[i].jszblabel[1],"BIAS2");   strcpy(jszbrec[i].jszblabel[2],"BIAS3");   jszbrec[i].arg[0]=6;   jszbrec[i].arg[1]=12;   jszbrec[i].arg[2]=24;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   i++;   /*   strcpy(jszbrec[i].jszbname,"MA");   jszbrec[i].initflag[0]=0;   jszbrec[i].initflag[1]=0;   jszbrec[i].initflag[2]=0;   jszbrec[i].type[0]=JSZBLINETYPE;   jszbrec[i].type[1]=JSZBLINETYPE;   jszbrec[i].type[2]=JSZBLINETYPE;   jszbrec[i].num=3;   jszbrec[i].spiltlinenum= 4;   jszbrec[i].gdz=0;   jszbrec[i].maxgdz= 100;   jszbrec[i].mingdz= 0;   jszbrec[i].callback[0]=(JszbFunc)SMA;   jszbrec[i].callback[1]=(JszbFunc)SMA;   jszbrec[i].callback[2]=(JszbFunc)SMA;   strcpy(jszbrec[i].jszblabel[0],"MA1");   strcpy(jszbrec[i].jszblabel[1],"MA2");   strcpy(jszbrec[i].jszblabel[2],"MA3");   jszbrec[i].arg[0]=5;   jszbrec[i].arg[1]=10;   jszbrec[i].arg[2]=30;   jszbrec[i].jszbdata[0]=NULL;   jszbrec[i].jszbdata[1]=NULL;   jszbrec[i].jszbdata[2]=NULL;   i++;*/   curjszbno=0;   strcpy(curjszbname,jszbrec[curjszbno].jszbname);//   createJszbData();    return 0;}jpointer getJszbZg(int start,int end){   jpointer tmp=0;   int i,j;   int flag=0;      if(start<=0 || end<start)      return -1;         for(i=0;i<jszbrec[curjszbno].num;i++){     if(!jszbrec[curjszbno].initflag[i]) continue;     if(jszbrec[curjszbno].type[i] == JSZBKLINETYPE) continue;     if(!flag){       tmp=jszbrec[curjszbno].jszbdata[i][start];       flag = 1;     }     for(j=0;start+j<=end && start+j<=stocksum;j++){       if(tmp<jszbrec[curjszbno].jszbdata[i][start+j])             tmp=jszbrec[curjszbno].jszbdata[i][start+j];      }           }  return tmp;   }jpointer getJszbZd(int start,int end){   jpointer tmp=0;   int i,j;   int flag = 0;      if(start<=0 || end<start)      return -1;         tmp=jszbrec[curjszbno].jszbdata[0][start];   for(i=0;i<jszbrec[curjszbno].num;i++){     if(!jszbrec[curjszbno].initflag[i]) continue;     if(jszbrec[curjszbno].type[i] == JSZBKLINETYPE) continue;     if(!flag){       tmp=jszbrec[curjszbno].jszbdata[i][start];       flag = 1;     }     for(j=0;start+j<=end && start+j<=stocksum;j++){       if(tmp>jszbrec[curjszbno].jszbdata[i][start+j])             tmp=jszbrec[curjszbno].jszbdata[i][start+j];      }           }  return tmp;   }FUNC_JSZB(getJydate){  jpointer tmp;  tmp=(jpointer)stock[point].jydate;   return tmp;}FUNC_JSZB(getKpj){  jpointer tmp;  tmp=(jpointer)stock[point].kpj;   return tmp/100;}FUNC_JSZB(getSpj){  jpointer tmp;  tmp=(jpointer)stock[point].spj;   return tmp/100;}FUNC_JSZB(getZgj){  jpointer tmp;  tmp=(jpointer)stock[point].zgj;   return tmp/100;}FUNC_JSZB(getZdj){  jpointer tmp;  tmp=(jpointer)stock[point].zdj;   return tmp/100;}FUNC_JSZB(getCjl){  jpointer tmp;  tmp=(jpointer)stock[point].cjsl;   return tmp/100;}FUNC_JSZB(getCjje){  jpointer tmp;  tmp=(jpointer)stock[point].cjje;   return tmp/100;}FUNC_JSZB(isUp){   if(stock[point].spj>stock[point].kpj) return 1;   else return 0;}FUNC_JSZB(isDown){   if(stock[point].spj<stock[point].kpj) return 1;   else return 0;}FUNC_JSZB(isEqual){   if(stock[point].spj==stock[point].kpj) return 1;   else return 0;}FUNC_JSZBOPR(REF){   return func(point-oprnum,jszbnum);}FUNC_JSZBOPR(HHV){   int i;   int s;   jpointer tmp;       s=((point<stocksum)?point:stocksum);   tmp=func(s,jszbnum);   for(i=0;i<oprnum && s-oprnum>=1;i++){       if(tmp<func(s-i,jszbnum))          tmp=func(s-i,jszbnum);       }          return tmp; }FUNC_JSZBOPR(LLV){   int i;   int s;   jpointer tmp;       s=((point<stocksum)?point:stocksum);   tmp=func(s,jszbnum);   for(i=0;i<oprnum && s-oprnum>=1;i++){       if(tmp>func(s-i,jszbnum))          tmp=func(s-i,jszbnum);       }          return tmp; }FUNC_JSZBOPR(MA){   int i;   jpointer tmp=0;      if(point-oprnum<=0) return 0;   for(i=0;i<oprnum;i++)      tmp+=func(point-i,jszbnum);   return tmp/oprnum;}FUNC_JSZBOPR(SUM){   int i;   jpointer tmp=0;      if(point-oprnum<=0) return 0;   for(i=0;i<oprnum;i++)      tmp+=func(point-i,jszbnum);   return tmp;}FUNC_JSZBOPR(EMA){  float p;    if(oprnum<=12) p=0.1538;  else        p=0.0741;  return MA(func,point-1,jszbnum,oprnum)-         p*(func(point,jszbnum)-MA(func,point-1,jszbnum,oprnum));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -