__declspec(dllexport) int WINAPI KDKKTJ(CALCINFO* pData)
	{ 
        if ( pData->m_pfParam1==NULL )                        //仅有0个参数
        {
			    float *ma1= new float[1];
	  	    	float *ma2= new float[1];
				float *ma3= new float[1];
				float *ma4= new float[1];
				float *ma5= new float[1];
				float *ma6= new float[1];
				float *ma7= new float[1];
				float *h5l= new float[1];		
                float fTotal, f1Total, f2Total, f3Total, f4Total, f5Total, f6Total, fhlTotal;
                int i, j,nPeriodCyc,n1PeriodCyc,n2PeriodCyc,n3PeriodCyc,n4PeriodCyc,n5PeriodCyc,n6PeriodCyc,nhlPeriodCyc;
		for (i=0; i<pData->m_nNumData; i++)
		{  
                        nPeriodCyc = 5;
						n1PeriodCyc = 10;
						n2PeriodCyc = 20;
						n3PeriodCyc = 40;
						n4PeriodCyc = 60;
						n5PeriodCyc = 120;
						n6PeriodCyc = 240;
						nhlPeriodCyc = 5;
                        if(nPeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                nPeriodCyc = i+1;
                       if(n1PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n1PeriodCyc = i+1;
					   if(n2PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n2PeriodCyc = i+1;
					   if(n3PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n3PeriodCyc = i+1;
					   if(n4PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n4PeriodCyc = i+1;
					   if(n5PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n5PeriodCyc = i+1;
					   if(n6PeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                n6PeriodCyc = i+1;
					   if(nhlPeriodCyc >= i+1) //这里控制计算实际K线数量，如果小于指定周期则以实际周期开始
                                nhlPeriodCyc = i+1;
                        fTotal = 0.0f;
						f1Total = 0.0f;
						f2Total = 0.0f;
						f3Total = 0.0f;
						f4Total = 0.0f;
						f5Total = 0.0f;
						f6Total = 0.0f;
						fhlTotal = 0.0f;
						switch ( nPeriodCyc)
						{case 1:
						ma1[i] =pData->m_pData[0].m_fOpen;
						ma2[i] =pData->m_pData[0].m_fOpen;
						ma3[i] =pData->m_pData[0].m_fOpen;
						ma4[i] =pData->m_pData[0].m_fOpen;
						ma5[i] =pData->m_pData[0].m_fOpen;
						ma6[i] =pData->m_pData[0].m_fOpen;
						ma7[i] =pData->m_pData[0].m_fOpen;
						h5l[i]=(float)(0.2618*pData->m_pData[0].m_fOpen);
						break;
						default:
						for ( j = 1; j < nPeriodCyc; j++ )                                //累加
                         {fTotal += pData->m_pData[i-j].m_fClose;
                         ma1[i] = fTotal/(nPeriodCyc-1);  
						}//平均
						for ( j = 1; j < n1PeriodCyc; j++ )                                //累加
                         {f1Total += pData->m_pData[i-j].m_fClose;
                         ma2[i] = f1Total/(n1PeriodCyc-1);  
						}//平均
						for ( j = 1; j < n2PeriodCyc; j++ )                                //累加
                         {f2Total += pData->m_pData[i-j].m_fClose;
                         ma3[i] = f2Total/(n2PeriodCyc-1);  
						}//平均
						for ( j = 1; j < n3PeriodCyc; j++ )                                //累加
                         {f3Total += pData->m_pData[i-j].m_fClose;
                         ma4[i] = f3Total/(n3PeriodCyc-1);  
						}//
						for ( j = 1; j < n4PeriodCyc; j++ )                                //累加
                         {f4Total += pData->m_pData[i-j].m_fClose;
                         ma5[i] = f4Total/(n4PeriodCyc-1);  
						}//平均
						for ( j = 1; j < n5PeriodCyc; j++ )                                //累加
                         {f5Total += pData->m_pData[i-j].m_fClose;
                         ma6[i] = f5Total/(n5PeriodCyc-1);  
						}//平均
						for ( j = 1; j < n6PeriodCyc; j++ )                                //累加
                         {f6Total += pData->m_pData[i-j].m_fClose;
                         ma7[i] = f6Total/(n6PeriodCyc-1);  
						}//平均
						for ( j = 1; j < nhlPeriodCyc; j++ )                                //累加
                        {
						  if(pData->m_pData[i-j].m_fHigh==pData->m_pData[i-j].m_fLow && pData->m_pData[i-j].m_fHigh<pData->m_pData[i-j-1].m_fLow)
		                    fhlTotal+=pData->m_pData[i-j-1].m_fLow-pData->m_pData[i-j].m_fHigh;
	                      else if (pData->m_pData[i-j].m_fHigh==pData->m_pData[i-j].m_fLow && pData->m_pData[i-j].m_fLow>pData->m_pData[i-j-1].m_fHigh)
		                   fhlTotal+=pData->m_pData[i-j].m_fLow-pData->m_pData[i-j-1].m_fHigh;
	                      else
							  fhlTotal+=pData->m_pData[i-j].m_fHigh-pData->m_pData[i-j].m_fLow;
						  if (fhlTotal!=0)
                              h5l[i] = fTotal/(nPeriodCyc-1);        //平均
						  else
							   h5l[i] =float(pData->m_pData[i].m_fOpen*0.001618) ;        //平均
						}
							break;
						}

                        pData->m_pResultBuf[i] =ma1[i]+ h5l[i];

			
			
		}
		
					 delete [] ma1;
					 delete [] ma2;
					 delete [] ma3;
					 delete [] ma4;
					 delete [] ma5;
					 delete [] ma6;
					 delete [] ma7;
					 delete [] h5l;
                return 0;     
        }

        return -1;
}