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

金融证券系统

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <malloc.h>
  4. #include <string.h>
  5. #include "resource.h"
  6. #include "global.h"
  7. #include "fx.h"
  8. extern LPFX  Fx;
  9. /*
  10. BIAS:乖离率
  11. BIAS =(ZJJG -N日平均ZJJG)/N日平均ZJJG
  12. */
  13. int CreateBiasData(K_DATA *lpKData,int RNum,DATA *Data,PARA *Para)
  14. {
  15.     
  16. int i,j;
  17.     static double Tun[2],Tdn[2];
  18.     static double Ttr,Tpdm,Tndm,Tadx;
  19.     static int Trise;
  20. BIAS_DATA *BiasData;
  21. BiasData=(BIAS_DATA*)_fmalloc(sizeof(BIAS_DATA)*RNum);
  22. memset(BiasData,0,sizeof(BIAS_DATA)*RNum);
  23. for(j=0;j<RNum;j++)
  24. {    
  25.      if(j==0)
  26.      {
  27.      Ttr=0;
  28.      BiasData[j].bias=0;
  29.      Para->price[0]=0;
  30.      }
  31.      else
  32.      {
  33.      if(j<=Para->periods[0]-1)
  34.      {        
  35.          BiasData[j].bias=0;
  36.      Ttr+=lpKData[j].ss;
  37.      }
  38.     
  39.      if(j==Para->periods[0]-1)
  40.      {
  41.                     //Ttr=Ttr/Para->periods[0];
  42.                     //Para->price[0]=BiasData[j].bias=Ttr*100.00;
  43.                     Para->price[0]=BiasData[j].bias=
  44.                      (lpKData[j].ss -Ttr/Para->periods[0])*100.00/(Ttr/Para->periods[0]);
  45.      }
  46.     
  47.      if(j>Para->periods[0]-1)
  48.      {
  49.          //Ttr+=(double)lpKData[j].ss/(double)Para->periods[0]-
  50.          //     (double)lpKData[j-Para->periods[0]].ss/(double)Para->periods[0];
  51.               
  52.          Ttr+=lpKData[j].ss-lpKData[j-Para->periods[0]].ss;              
  53.      //BiasData[j].bias=((double)(lpKData[j].ss-Ttr)*100.00/Ttr);
  54.                     BiasData[j].bias=
  55.                      (lpKData[j].ss -Ttr/Para->periods[0])*100.00/(Ttr/Para->periods[0]);
  56.     
  57.      if(Para->price[0]<BiasData[j].bias)
  58.      Para->price[0]=BiasData[j].bias;
  59.      }    
  60.      }
  61.     }
  62.     for(j=0;j<10;j++)
  63.     {
  64.         if(Data->v==NULL) 
  65.          break;
  66.      if(Data->v[j]!=NULL)
  67.      {
  68.      _ffree(Data->v[j]);
  69.      Data->v[j]=NULL;
  70.      }
  71.     }
  72.     Data->v==NULL;
  73.     Data->num =Para->dnum; 
  74.     Data->no =Para->no;
  75.     strcpy(Data->gpdm,Fx->gpdm);
  76.     Data->type =Fx->type;
  77.     Data->range =Fx->range;
  78.     Data->size =RNum;
  79.     for(j=0;j<Data->num;j++)
  80.      Data->v[j]=(double *)_fmalloc(sizeof(double)*RNum);
  81.     for(i=0;i<Data->num;i++)
  82.     {
  83.      for(j=0;j<RNum&&i==0;j++) 
  84.      Data->v[i][j]=BiasData[j].bias;
  85.      Data->method[i]=CURVE_METHOD;
  86.     }
  87.     Para->feature |=DW_ALL;
  88.     _ffree(BiasData);
  89. return TRUE;
  90. }