您現(xiàn)在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識(shí)>>正文內(nèi)容

請(qǐng)問(wèn):金字塔C接口用逐K模式,下面代碼哪個(gè)需要用? [金字塔]

  • 咨詢內(nèi)容:

    //計(jì)算收盤(pán)價(jià)的均價(jià),一個(gè)常數(shù)參數(shù),表示計(jì)算周期
    //調(diào)用方法:
    // "STOCKFUNC@MYMACLOSE"(5)

    __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
    {
     if ( pData->m_pfParam1 &&    //參數(shù)1有效
       pData->m_nParam1Start<0 &&   //參數(shù)1為常數(shù)
       pData->m_pfParam2==NULL )   //僅有一個(gè)參數(shù)
     {
      float fParam = *pData->m_pfParam1;
      int nPeriod = (int)fParam;   //參數(shù)1
      if(nPeriod>0)
      {
       float fTotal;
       int i, j;
       for ( i = nPeriod-1; i < pData->m_nNumData; i++ )//計(jì)算nPeriod周期的均線,數(shù)據(jù)從nPeriod-1開(kāi)始有效
       {
        fTotal = 0.0f;
        for ( j = 0; j < nPeriod; j++ )    //累加
         fTotal += pData->m_pData[i-j].m_fClose;
        pData->m_pResultBuf[i] = fTotal/nPeriod; //平均
       }
       return nPeriod-1;
      }
     }

     return -1;
    }

    //計(jì)算均價(jià),2個(gè)參數(shù),參數(shù)1為待求均線的數(shù)據(jù),參數(shù)2表示計(jì)算周期
    //調(diào)用方法:
    // "STOCKFUNC@MYMAVAR"(CLOSE-OPEN,5)

    __declspec(dllexport) int WINAPI MYMAVAR(CALCINFO* pData)
    {
     if(pData->m_pfParam1 && pData->m_pfParam2 &&  //參數(shù)1,2有效
      pData->m_nParam1Start>=0 &&     //參數(shù)1為序列數(shù)
      pData->m_pfParam3==NULL)     //有2個(gè)參數(shù)
     {
      const float*  pValue = pData->m_pfParam1; //參數(shù)1
      int nFirst = pData->m_nParam1Start;   //有效值起始位
      float fParam = *pData->m_pfParam2;   //參數(shù)2
      int nPeriod = (int)fParam; 
      
      if( nFirst >= 0 && nPeriod > 0 )
      {
       float fTotal;
       int i, j;
       for ( i = nFirst+nPeriod-1; i < pData->m_nNumData; i++ )
       {
        fTotal = 0.0f;
        for ( j=0; j < nPeriod; j++ )   //累加
         fTotal += pValue[i-j];
        pData->m_pResultBuf[i] = fTotal/nPeriod;//平均
       }
       return nFirst+nPeriod-1;
      }
     }
     return -1;

        /*對(duì)于逐K線模式,的處理方式的示范代碼
     if(pData->m_pfParam1 && pData->m_pfParam2)
     {
      //對(duì)于逐K線模式,由于傳遞數(shù)據(jù)都是數(shù)值,因此需要一個(gè)數(shù)組用來(lái)保存?zhèn)鬟f過(guò)來(lái)的參數(shù),用來(lái)計(jì)算.
      //本例只是簡(jiǎn)單演示這個(gè)用法,如果用戶在公式多次調(diào)用了接口,則會(huì)出現(xiàn)重復(fù)使用該變量導(dǎo)致計(jì)算出錯(cuò)
      //因此要根據(jù)情況做幾個(gè)這種全局靜態(tài)變量用于保存各種數(shù)據(jù)。
      static std::vector<double> arMaData;
      
      //第一個(gè)周期初始化數(shù)據(jù)
      if(pData->m_dwBarpos == 0)
      {
       arMaData.clear();
      }
      
      double dbData = *pData->m_pfParam1;

      //防止使用僅刷最后K線的反復(fù)刷新問(wèn)題
      if(arMaData.size() >= pData->m_nNumData)
       arMaData[arMaData.size()-1] = dbData; //僅僅更新最后一個(gè)數(shù)據(jù)
      else
       arMaData.push_back(dbData);

      DWORD dwCyc = (DWORD) *pData->m_pfParam2;
      
      if(pData->m_dwBarpos < dwCyc-1)
      {
       //對(duì)于未到計(jì)算周期,返回?zé)o效數(shù)據(jù)
       return -1;
      }

      //先累加
      float fAdd = 0;
      for(DWORD i = pData->m_dwBarpos-(dwCyc-1); i <= pData->m_dwBarpos; i++)
      {
       fAdd += arMaData[i];
      }

      *pData->m_pResultBuf = fAdd / dwCyc;
     }
     return 1;*/
    }

    //計(jì)算多個(gè)序列的均值,5個(gè)參數(shù),參數(shù)1-4為待求多個(gè)序列,參數(shù)5用于舉例說(shuō)明數(shù)值參數(shù)的用法,實(shí)際在此例中無(wú)需該參數(shù)
    /*
    調(diào)用方法:
     MA1:=MA(CLOSE,3);
     MA2:=MA(CLOSE,6);
     MA3:=MA(CLOSE,12);
     MA4:=MA(CLOSE,24);
     MYBBI: "STOCKFUNC@MYBBI"(MA1, MA2, MA3, MA4, 4);
    */

    __declspec(dllexport) int WINAPI MYBBI(CALCINFO* pData)
    {
     if ( pData->m_pCalcParam[0].m_nParamStart >= 0 &&
       pData->m_pCalcParam[1].m_nParamStart >= 0 &&
       pData->m_pCalcParam[2].m_nParamStart >= 0 &&
       pData->m_pCalcParam[3].m_nParamStart >= 0 )   //4個(gè)序列都含有效數(shù)值
     {
      //計(jì)算返回的序列的第一個(gè)有效值位置
      int nFirst = pData->m_pCalcParam[3].m_nParamStart;  //已知返回的序列的第一個(gè)有效值位置與第4個(gè)序列一致
    //若不知,則
    /*
      int nFirst = pData->m_pCalcParam[0].m_nParamStart;
      if ( nFirst < pData->m_pCalcParam[1].m_nParamStart )
       nFirst = pData->m_pCalcParam[1].m_nParamStart;
      if ( nFirst < pData->m_pCalcParam[2].m_nParamStart )
       nFirst = pData->m_pCalcParam[2].m_nParamStart;
      if ( nFirst < pData->m_pCalcParam[3].m_nParamStart )
       nFirst = pData->m_pCalcParam[3].m_nParamStart;
     */

      const float* pValue1 = pData->m_pCalcParam[0].m_pfParam;
      const float* pValue2 = pData->m_pCalcParam[1].m_pfParam;
      const float* pValue3 = pData->m_pCalcParam[2].m_pfParam;
      const float* pValue4 = pData->m_pCalcParam[3].m_pfParam;
      int nNum = (int)(pData->m_pCalcParam[4].m_fParam);  //實(shí)際上該例中已知nNum=4,在此用于說(shuō)明數(shù)值參數(shù)的用法
      for( int i = nFirst; i < pData->m_nNumData; i++ )
      {
       pData->m_pResultBuf[i] =
        (pValue1[i] + pValue2[i] + pValue3[i] + pValue4[i])/nNum;
      }
      return nFirst;
     }
     return -1;
    }

     

  • 金字塔客服: 請(qǐng)版主改好一下,菜鳥(niǎo)是我

 

有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 1145508240  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫(xiě)!不貴!點(diǎn)擊查看價(jià)格!


【字體: 】【打印文章】【查看評(píng)論

相關(guān)文章

    沒(méi)有相關(guān)內(nèi)容
主站蜘蛛池模板: 国产美女在线精品观看| 老子影院午夜精品欧美视频| 日韩午夜免费视频| 四虎网站1515hh四虎| eva樱花动漫网| 欧美性巨大欧美| 国产小视频精品| 三级中文字幕永久在线视频| 波多野结衣一区在线观看| 国产精品v片在线观看不卡| 久久99国产乱子伦精品免费| 精品久久久久久无码中文野结衣| 国产熟女一区二区三区五月婷| jizz之18| 日本一区视频在线播放| 人妻少妇偷人精品视频| 777成了人乱视频| 日本一卡2卡3卡4卡三卡视频| 亚洲国产精品热久久| 青青青国产免费线在| 孪生兄弟3ph尴尬| 亚洲国产成+人+综合| 老师您的兔子好软水好多动漫视频 | 全彩口工彩漫画无遮漫画| 91啦视频在线| 日韩午夜小视频| 亚洲欧美日韩中文字幕一区二区三区 | 好紧我太爽了视频免费国产| 亚洲免费一级片| 荡女安然的yin乱生活| 国产精品欧美在线不卡| 久久96国产精品久久久| 深夜a级毛片免费视频| 国产又爽又色在线观看| igao视频网站| 无码日韩人妻精品久久| 亚洲欧美另类国产| 精品人人妻人人澡人人爽牛牛| 国产亚洲欧美在线视频| 亚洲最大成人网色香蕉| 国内剧果冻传媒在线观看网站|