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

📄 jszb.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
FUNC_JSZB(SMA){   if(point-num<=0) return 0;   return MA(getSpj,point,0,num);  }FUNC_JSZB(SEMA){   if(point-num<=0) return 0;   return EMA(getSpj,point,0,num);    }FUNC_JSZB(AR){   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;     tmp1=SUM(getZgj,point,0,num)-          SUM(getKpj,point,0,num);     tmp2=SUM(getKpj,point,0,num)-          SUM(getZdj,point,0,num);     if(tmp2!=0) tmp=(tmp1/tmp2)*100;        return tmp; }FUNC_JSZB(BR){   int i;   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   for(i=0;i<num;i++){     tmp1+=MAX(0,(getZgj(point-i,0)-REF(getSpj,point-i,0,1)));     tmp2+=MAX(0,(REF(getSpj,point-i,0,1)-getZdj(point-i,0)));   }     if(tmp2!=0) tmp=(tmp1/tmp2)*100;        return tmp; }FUNC_JSZB(MID){  return (getZgj(point,num)+getZdj(point,num)+getSpj(point,num))/3;}FUNC_JSZB(CR){   int i;   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   if(jszbrec[curjszbno].initflag[0] == 1)     return jszbrec[curjszbno].jszbdata[0][point];   else{    for(i=0;i<num;i++){      tmp1+=MAX(0,(getZgj(point-i,0)-REF(MID,point-i,0,1)));      tmp2+=MAX(0,(REF(MID,point-i,0,1)-getZdj(point-i,0)));    }      if(tmp2!=0) tmp=(tmp1/tmp2)*100;          return tmp;    }}FUNC_JSZB(MACR){//   int i;//   jpointer tmp=0;//   if(jszbrec[curjszbno].jszbdata[0] == NULL) return 0;      if(point-num<=0) return 0;/*   for(i=0;i<num;i++)      tmp+=jszbrec[curjszbno].jszbdata[0][point-i];   return tmp/num;*/   return MA(CR,point,26,num);}FUNC_JSZB(REFMACR){  return REF(MACR,point,num,(int)(num/2.5+1));}FUNC_JSZB(BIAS){   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   tmp2=MA(getSpj,point,0,num);   tmp1=getSpj(point,0)-tmp2;   if(tmp2!=0) tmp=(tmp1/tmp2)*100;   return tmp;   }FUNC_JSZB(RSI){   int i;   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   for(i=0;i<num;i++){     tmp1+=MAX(0,(getSpj(point-i,0)-REF(getSpj,point-i,0,1)));     tmp2+=ABS(getSpj(point-i,0)-REF(getSpj,point-i,0,1));   }   if(tmp2!=0) tmp=(tmp1/tmp2)*100;        return tmp; }FUNC_JSZB(WR){   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   tmp1=HHV(getZgj,point,0,num);   tmp2=LLV(getZdj,point,0,num);   if((tmp1-tmp2)!=0)     tmp=((getSpj(point,0)-tmp2)*100)/(tmp1-tmp2);   return tmp;}FUNC_JSZB(RSV){   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   tmp1=getSpj(point,0)-LLV(getZdj,point,0,num);   tmp2=HHV(getZgj,point,0,num)-LLV(getZdj,point,0,num);   if(tmp2!=0)     tmp=(tmp1/tmp2)*100;   return tmp; }FUNC_JSZB(K){  if(point-num<=0) return 0;   if(jszbrec[curjszbno].initflag[0] == 1)     return jszbrec[curjszbno].jszbdata[0][point];   else      return MA(RSV,point,9,num);}FUNC_JSZB(D){  if(point-num<=0) return 0;   if(jszbrec[curjszbno].initflag[1] == 1)     return jszbrec[curjszbno].jszbdata[1][point];   else      return MA(K,point,3,num);}FUNC_JSZB(J){  return 3*K(point,num)-2*D(point,num);}FUNC_JSZB(ROC){   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   tmp1=getSpj(point,0)-REF(getSpj,point,0,num);   tmp2=REF(getSpj,point,0,num);   if(tmp2!=0)     tmp=(tmp1/tmp2)*100;   return tmp;}FUNC_JSZB(ROCMA){  return MA(ROC,point,12,num);}FUNC_JSZB(VR){   int i;   jpointer tmp=0,tmp1=0,tmp2=0;      if(point-num<=0) return 0;   for(i=0;i<num;i++){    tmp1+=(getSpj(point-i,0)>REF(getSpj,point-i,0,1))?         getCjl(point-i,0):0;    tmp2+=(getSpj(point-i,0)<=REF(getSpj,point-i,0,1))?         getCjl(point-i,0):0;   }   if(tmp2!=0) tmp=(tmp1/tmp2)*100;        return tmp;   }FUNC_JSZB(DMA){  return MA(getSpj,point,0,num)-MA(getSpj,point,0,num*5);}FUNC_JSZB(AMA){  return MA(DMA,point,10,num);}FUNC_JSZB(OBV){  jpointer tmp=0,tmp1=0;   if(point < 1) return 0;   if(point == 1) return getCjl(point,0);   tmp1=getSpj(point,0)-REF(getSpj,point,0,1);   if(tmp1>0)      tmp=jszbrec[curjszbno].jszbdata[0][point-1]+getCjl(point,0);   else if(tmp1<0)      tmp=jszbrec[curjszbno].jszbdata[0][point-1]-getCjl(point,0);   else tmp=jszbrec[curjszbno].jszbdata[0][point-1];      return tmp;}FUNC_JSZB(PSY){  int i;  jpointer tmp=0;   if(point-num<=0) return 0;   for(i=0;i<num;i++){    if((getSpj(point-i,0)-REF(getSpj,point-i,0,1))>0)        tmp++;   }   if(num!=0) tmp=(tmp/num)*100;        return tmp;    }FUNC_JSZB(DIFF){   if(point-num<=0) return 0;   if(jszbrec[curjszbno].initflag[0] == 1)     return jszbrec[curjszbno].jszbdata[0][point];   else      return EMA(getSpj,point,0,num)-EMA(getSpj,point,0,2*num+2);}FUNC_JSZB(DEA){   if(point-num<=0) return 0;   if(jszbrec[curjszbno].initflag[1] == 1)     return jszbrec[curjszbno].jszbdata[1][point];   else      return EMA(DIFF,point,12,num);}FUNC_JSZB(MACD){   return 2*(DIFF(point,12)-DEA(point,9));}void createJszbData(void){   int i;   int j;      if(!frechflag) return;   releaseJszbData();      for(i=0;i<jszbrec[curjszbno].num && i<MAXJSZBLINENUM;i++){      jszbrec[curjszbno].jszbdata[i]=(jpointer *)                  malloc(sizeof(long)*(stocksum+10));      if(jszbrec[curjszbno].type[i] == JSZBKLINETYPE){         jszbrec[curjszbno].initflag[i]=1;                continue;      }      for(j=1;j<=stocksum;j++){       jszbrec[curjszbno].jszbdata[i][j]=       jszbrec[curjszbno].callback[i](j,jszbrec[curjszbno].arg[i]);      }    jszbrec[curjszbno].initflag[i]=1;          }}void releaseJszbData(void){   int i;      for(i=0;i<jszbrec[curjszbno].num;i++){     if(!jszbrec[curjszbno].initflag[i]) continue;     free(jszbrec[curjszbno].jszbdata[i]);     jszbrec[curjszbno].initflag[i] = 0;   }       }int changeJszb(int num){      if(num<0 && num>maxjszbnum) return FAIL;   releaseJszbData();   curjszbno=num;   strcpy(curjszbname,jszbrec[curjszbno].jszbname);   createJszbData();    return SUCCESS;}int findNextJszb(void){   int tmp=curjszbno;      if(tmp>=(maxjszbnum-1))      tmp=0;   else      tmp++;   return changeJszb(tmp);}int findPreJszb(void){   int tmp=curjszbno;      if(tmp<=0)      tmp=(maxjszbnum-1);   else      tmp--;  return changeJszb(tmp);}int findJszb(char *name){  int i;    for(i=0;i<maxjszbnum;i++){    if(!strcmp(name,jszbrec[i].jszbname))       return changeJszb(i);  }  return FAIL;}int getAreazgj(int areastart,int areaend){   int i;   int tmpzgj;       if(frechflag == 0)      return 0;      if(areastart<=0 || areaend<areastart)      return 0;       tmpzgj=(stocksum>0)?stock[areastart].zgj:100;   for(i=0;areastart+i<=areaend && areastart+i<=stocksum;i++){       if(tmpzgj<stock[areastart+i].zgj)             tmpzgj=stock[areastart+i].zgj;       }        //     areazgj=tmpzgj;  return tmpzgj;}int getAreazdj(int areastart,int areaend){   int i;   int tmpzdj;       if(frechflag == 0)      return 0;         if(areastart<=0 || areaend<areastart)      return 0;          tmpzdj=(stocksum>0)?stock[areastart].zdj:0;   for(i=0;areastart+i<=areaend && areastart+i<=stocksum;i++){       if(tmpzdj>stock[areastart+i].zdj)             tmpzdj=stock[areastart+i].zdj;      }        //     areazdj=tmpzdj;  return tmpzdj;}long getAreacjl(int areastart,int areaend){   int i;   long tmpcjl;       if(frechflag == 0)      return 0;         if(areastart<=0 || areaend<areastart)      return 0;          tmpcjl=(stocksum>0)?stock[areastart].cjsl:10;   for(i=0;areastart+i<=areaend && areastart+i<=stocksum;i++){       if(tmpcjl<stock[areastart+i].cjsl)             tmpcjl=stock[areastart+i].cjsl;      }        //     areacjl=tmpcjl;  return tmpcjl;}long getAreacjlTotal(int areastart,int areaend){   int i;   long tmpcjl=0;       if(frechflag == 0)      return 0;         if(areastart<=0 || areaend<areastart)      return 0;         for(i=0;areastart+i<=areaend && areastart+i<=stocksum;i++){       tmpcjl+=stock[areastart+i].cjsl;   }          return tmpcjl;}long getAreacjjeTotal(int areastart,int areaend){   int i;   long tmpcjje=0;       if(frechflag == 0)      return 0;         if(areastart<=0 || areaend<areastart)      return 0;         for(i=0;areastart+i<=areaend && areastart+i<=stocksum;i++){       tmpcjje+=stock[areastart+i].cjje;   }          return tmpcjje;}int getAverageLine(int addr,int num){   int i;   int tmp;      if(!frechflag)       return -1;      if(addr-num<=0)       return 0;    tmp = 0;   for(i=0;i<num && addr-i>=1;i++){      tmp+=stock[addr-i].spj;   }   tmp=tmp/num;   return tmp;    }long getAverageColume(int addr,int num){   int i;   long tmp;      if(!frechflag)       return -1;      if(addr-num<=0)       return 0;    tmp = 0;   for(i=0;i<num && addr-i>=1;i++){      tmp+=stock[addr-i].cjsl;   }   tmp=tmp/num;   return tmp;    }int getMaxFsColume(){   int i;   int tmpcjl;       if(frechfsflag == 0)      return 0;         tmpcjl=(fssum>0)?fs[0].colume:10;   for(i=0;i<fssum && i<MAXFSLINENUM;i++){       if(tmpcjl<fs[i].colume)             tmpcjl=fs[i].colume;      }        //     areacjl=tmpcjl;  return tmpcjl;}int getFsPriceZgj(){   int i;   int tmpzgj;       if(frechfsflag == 0)      return 0;   tmpzgj=(fssum>0)?fs[0].price:200;   for(i=0;i<fssum && i<MAXFSLINENUM;i++){       if(tmpzgj<fs[i].price)             tmpzgj=fs[i].price;       }        //     areazgj=tmpzgj;  return tmpzgj;}int getFsPriceZdj(){   int i;   int tmpzgj;       if(frechfsflag == 0)      return 0;      tmpzgj=(fssum>0)?fs[0].price:0;   for(i=0;i<fssum && i<MAXFSLINENUM;i++){       if(tmpzgj>fs[i].price)             tmpzgj=fs[i].price;       }        //     areazgj=tmpzgj;  return tmpzgj;}

⌨️ 快捷键说明

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