PSY.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. int CreatePsyData(K_DATA *lpKData,int RNum,DATA *Data,PARA *Para)
  10. {
  11. int i,j;
  12.     int l;
  13.     long m;
  14.     int Trise;
  15.     PSY_DATA *PsyData;
  16.     
  17. PsyData=(PSY_DATA*)_fmalloc(sizeof(PSY_DATA)*RNum);
  18. memset(PsyData,0,sizeof(PSY_DATA)*RNum);
  19.     for(j=0;j<RNum;j++) 
  20.     {
  21.      if(j==0)
  22.      {
  23.      Trise=0;
  24.      PsyData[j].psy=0;
  25.      }
  26.      else
  27.      {
  28.      if(j<=Para->periods[0]-1)
  29.      { 
  30.      if(lpKData[j-1].ss<lpKData[j].ss) Trise++;
  31.      PsyData[j].psy=0;    
  32.      }
  33.      if(j>Para->periods[0]-1)
  34.      {  
  35.      Trise=0;
  36.      for(l=1;l<=Para->periods[0];l++)
  37.      {
  38.      m=j+l-Para->periods[0];
  39.      if(lpKData[m-1].ss<lpKData[m].ss) Trise++;
  40.      }
  41.      }
  42.      if(j>=Para->periods[0]-1)
  43.      {
  44.          PsyData[j].psy=Trise*100/Para->periods[0];
  45.      }    
  46.      }
  47.      }
  48.     for(j=0;j<10;j++)
  49.     {
  50.         if(Data->v==NULL) 
  51.          break;
  52.      if(Data->v[j]!=NULL)
  53.      {
  54.      _ffree(Data->v[j]);
  55.      Data->v[j]=NULL;
  56.      }
  57.     }
  58.     Data->v==NULL;     
  59.     Data->num =Para->dnum; 
  60.     Data->no =Para->no;
  61.     strcpy(Data->gpdm,Fx->gpdm);
  62.     Data->type =Fx->type;
  63.     Data->range =Fx->range;
  64.     Data->size =RNum;
  65.     for(j=0;j<Data->num;j++)
  66.      Data->v[j]=(double *)_fmalloc(sizeof(double)*RNum);
  67.     for(i=0;i<Data->num;i++)
  68.     {
  69.      for(j=0;j<RNum&&i==0;j++) 
  70.      Data->v[i][j]=PsyData[j].psy;
  71.      Data->method[i]=CURVE_METHOD;
  72.     }
  73.     Para->price[0] =100;
  74.     Para->price[1] =0;
  75.     Para->price[2] =10;
  76.     Para->price[3] =90;
  77.     Para->feature |=DW_ALL;
  78.     Para->feature &=~DW_MAX;
  79.     Para->feature &=~DW_MIN;
  80.     _ffree(PsyData);
  81. return TRUE;
  82. }