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

📄 ta_macdext.c

📁 股票主要技术指标源码
💻 C
📖 第 1 页 / 共 3 页
字号:
   }   /* Calculate the histogram. */   for( i=0; i < VALUE_HANDLE_GET(outNbElement2); i++ )      outMACDHist[i] = outMACD[i]-outMACDSignal[i];   /* All done! Indicate the output limits and return success. */   VALUE_HANDLE_DEREF(outBegIdx)     = startIdx;   VALUE_HANDLE_DEREF(outNBElement)  = VALUE_HANDLE_GET(outNbElement2);   return ENUM_VALUE(RetCode,TA_SUCCESS,Success);}/**** START GENCODE SECTION 5 - DO NOT DELETE THIS LINE ****//* Generated */ /* Generated */ #define  USE_SINGLE_PRECISION_INPUT/* Generated */ #if !defined( _MANAGED ) && !defined( _JAVA )/* Generated */    #undef   TA_PREFIX/* Generated */    #define  TA_PREFIX(x) TA_S_##x/* Generated */ #endif/* Generated */ #undef   INPUT_TYPE/* Generated */ #define  INPUT_TYPE float/* Generated */ #if defined( _MANAGED )/* Generated */ enum class Core::RetCode Core::MacdExt( int    startIdx,/* Generated */                                         int    endIdx,/* Generated */                                         cli::array<float>^ inReal,/* Generated */                                         int           optInFastPeriod, /* From 2 to 100000 *//* Generated */                                         MAType        optInFastMAType,/* Generated */                                         int           optInSlowPeriod, /* From 2 to 100000 *//* Generated */                                         MAType        optInSlowMAType,/* Generated */                                         int           optInSignalPeriod, /* From 1 to 100000 *//* Generated */                                         MAType        optInSignalMAType,/* Generated */                                         [Out]int%    outBegIdx,/* Generated */                                         [Out]int%    outNBElement,/* Generated */                                         cli::array<double>^  outMACD,/* Generated */                                         cli::array<double>^  outMACDSignal,/* Generated */                                         cli::array<double>^  outMACDHist )/* Generated */ #elif defined( _JAVA )/* Generated */ public RetCode macdExt( int    startIdx,/* Generated */                         int    endIdx,/* Generated */                         float        inReal[],/* Generated */                         int           optInFastPeriod, /* From 2 to 100000 *//* Generated */                         MAType        optInFastMAType,/* Generated */                         int           optInSlowPeriod, /* From 2 to 100000 *//* Generated */                         MAType        optInSlowMAType,/* Generated */                         int           optInSignalPeriod, /* From 1 to 100000 *//* Generated */                         MAType        optInSignalMAType,/* Generated */                         MInteger     outBegIdx,/* Generated */                         MInteger     outNBElement,/* Generated */                         double        outMACD[],/* Generated */                         double        outMACDSignal[],/* Generated */                         double        outMACDHist[] )/* Generated */ #else/* Generated */ TA_RetCode TA_S_MACDEXT( int    startIdx,/* Generated */                          int    endIdx,/* Generated */                          const float  inReal[],/* Generated */                          int           optInFastPeriod, /* From 2 to 100000 *//* Generated */                          TA_MAType     optInFastMAType,/* Generated */                          int           optInSlowPeriod, /* From 2 to 100000 *//* Generated */                          TA_MAType     optInSlowMAType,/* Generated */                          int           optInSignalPeriod, /* From 1 to 100000 *//* Generated */                          TA_MAType     optInSignalMAType,/* Generated */                          int          *outBegIdx,/* Generated */                          int          *outNBElement,/* Generated */                          double        outMACD[],/* Generated */                          double        outMACDSignal[],/* Generated */                          double        outMACDHist[] )/* Generated */ #endif/* Generated */ {/* Generated */    ARRAY_REF( slowMABuffer );/* Generated */    ARRAY_REF( fastMABuffer );/* Generated */    ENUM_DECLARATION(RetCode) retCode;/* Generated */    int tempInteger;/* Generated */    VALUE_HANDLE_INT(outBegIdx1);/* Generated */    VALUE_HANDLE_INT(outNbElement1);/* Generated */    VALUE_HANDLE_INT(outBegIdx2);/* Generated */    VALUE_HANDLE_INT(outNbElement2);/* Generated */    int lookbackTotal, lookbackSignal, lookbackLargest;/* Generated */    int i;/* Generated */    ENUM_DECLARATION(MAType) tempMAType;/* Generated */  #ifndef TA_FUNC_NO_RANGE_CHECK/* Generated */     if( startIdx < 0 )/* Generated */        return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_START_INDEX,OutOfRangeStartIndex);/* Generated */     if( (endIdx < 0) || (endIdx < startIdx))/* Generated */        return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_END_INDEX,OutOfRangeEndIndex);/* Generated */     #if !defined(_JAVA)/* Generated */     if( !inReal ) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #endif /* Generated */     if( (int)optInFastPeriod == TA_INTEGER_DEFAULT )/* Generated */        optInFastPeriod = 12;/* Generated */     else if( ((int)optInFastPeriod < 2) || ((int)optInFastPeriod > 100000) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #if !defined(_MANAGED) && !defined(_JAVA)/* Generated */     if( (int)optInFastMAType == TA_INTEGER_DEFAULT )/* Generated */        optInFastMAType = (TA_MAType)0;/* Generated */     else if( ((int)optInFastMAType < 0) || ((int)optInFastMAType > 8) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #endif /* Generated */     if( (int)optInSlowPeriod == TA_INTEGER_DEFAULT )/* Generated */        optInSlowPeriod = 26;/* Generated */     else if( ((int)optInSlowPeriod < 2) || ((int)optInSlowPeriod > 100000) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #if !defined(_MANAGED) && !defined(_JAVA)/* Generated */     if( (int)optInSlowMAType == TA_INTEGER_DEFAULT )/* Generated */        optInSlowMAType = (TA_MAType)0;/* Generated */     else if( ((int)optInSlowMAType < 0) || ((int)optInSlowMAType > 8) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #endif /* Generated */     if( (int)optInSignalPeriod == TA_INTEGER_DEFAULT )/* Generated */        optInSignalPeriod = 9;/* Generated */     else if( ((int)optInSignalPeriod < 1) || ((int)optInSignalPeriod > 100000) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #if !defined(_MANAGED) && !defined(_JAVA)/* Generated */     if( (int)optInSignalMAType == TA_INTEGER_DEFAULT )/* Generated */        optInSignalMAType = (TA_MAType)0;/* Generated */     else if( ((int)optInSignalMAType < 0) || ((int)optInSignalMAType > 8) )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #endif /* Generated */     #if !defined(_JAVA)/* Generated */     if( !outMACD )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     if( !outMACDSignal )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     if( !outMACDHist )/* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);/* Generated */     #endif /* Generated */  #endif /* Generated */    if( optInSlowPeriod < optInFastPeriod )/* Generated */    {/* Generated */        tempInteger     = optInSlowPeriod;/* Generated */        optInSlowPeriod = optInFastPeriod;/* Generated */        optInFastPeriod = tempInteger;/* Generated */        tempMAType      = optInSlowMAType;/* Generated */        optInSlowMAType = optInFastMAType;/* Generated */        optInFastMAType = tempMAType;/* Generated */    }/* Generated */    lookbackLargest = LOOKBACK_CALL(MA)( optInFastPeriod, optInFastMAType );/* Generated */    tempInteger     = LOOKBACK_CALL(MA)( optInSlowPeriod, optInSlowMAType );/* Generated */    if( tempInteger > lookbackLargest )/* Generated */       lookbackLargest = tempInteger;/* Generated */    lookbackSignal = LOOKBACK_CALL(MA)( optInSignalPeriod, optInSignalMAType ); /* Generated */    lookbackTotal  = lookbackSignal+lookbackLargest;/* Generated */    if( startIdx < lookbackTotal )/* Generated */       startIdx = lookbackTotal;/* Generated */    if( startIdx > endIdx )/* Generated */    {/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */       return ENUM_VALUE(RetCode,TA_SUCCESS,Success);/* Generated */    }/* Generated */    tempInteger = (endIdx-startIdx)+1+lookbackSignal;/* Generated */    ARRAY_ALLOC( fastMABuffer, tempInteger );/* Generated */    #if !defined( _JAVA )/* Generated */       if( !fastMABuffer )/* Generated */       {/* Generated */          VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */          VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */          return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr);/* Generated */       }/* Generated */    #endif/* Generated */    ARRAY_ALLOC( slowMABuffer, tempInteger );/* Generated */    #if !defined( _JAVA )/* Generated */       if( !slowMABuffer )/* Generated */       { /* Generated */          VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */          VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */          ARRAY_FREE( fastMABuffer );/* Generated */          return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr);/* Generated */       }/* Generated */    #endif/* Generated */    tempInteger = startIdx-lookbackSignal;/* Generated */    retCode = FUNCTION_CALL(MA)( tempInteger, endIdx,/* Generated */                                 inReal, optInSlowPeriod, optInSlowMAType,/* Generated */                                 VALUE_HANDLE_OUT(outBegIdx1), VALUE_HANDLE_OUT(outNbElement1), /* Generated */ 							    slowMABuffer );/* Generated */    if( retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) )/* Generated */    {/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */       ARRAY_FREE( fastMABuffer );/* Generated */       ARRAY_FREE( slowMABuffer );/* Generated */       return retCode;/* Generated */    }/* Generated */    retCode = FUNCTION_CALL(MA)( tempInteger, endIdx,/* Generated */                                 inReal, optInFastPeriod, optInFastMAType,/* Generated */                                 VALUE_HANDLE_OUT(outBegIdx2), VALUE_HANDLE_OUT(outNbElement2),/* Generated */ 							    fastMABuffer );/* Generated */    if( retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) )/* Generated */    {/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */       ARRAY_FREE( fastMABuffer );/* Generated */       ARRAY_FREE( slowMABuffer );/* Generated */       return retCode;/* Generated */    }/* Generated */    if( (VALUE_HANDLE_GET(outBegIdx1) != tempInteger) || /* Generated */        (VALUE_HANDLE_GET(outBegIdx2) != tempInteger) || /* Generated */        (VALUE_HANDLE_GET(outNbElement1) != VALUE_HANDLE_GET(outNbElement2)) ||/* Generated */        (VALUE_HANDLE_GET(outNbElement1) != (endIdx-startIdx)+1+lookbackSignal) )/* Generated */    {/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */       ARRAY_FREE( fastMABuffer );/* Generated */       ARRAY_FREE( slowMABuffer );/* Generated */       return TA_INTERNAL_ERROR(119);/* Generated */    }/* Generated */    for( i=0; i < VALUE_HANDLE_GET(outNbElement1); i++ )/* Generated */       fastMABuffer[i] = fastMABuffer[i] - slowMABuffer[i];/* Generated */    ARRAY_MEMMOVE( outMACD, 0, fastMABuffer, lookbackSignal, (endIdx-startIdx)+1 );/* Generated */    retCode = FUNCTION_CALL_DOUBLE(MA)( 0, VALUE_HANDLE_GET(outNbElement1)-1,/* Generated */                                        fastMABuffer, optInSignalPeriod, optInSignalMAType,/* Generated */                                        VALUE_HANDLE_OUT(outBegIdx2), VALUE_HANDLE_OUT(outNbElement2), outMACDSignal );/* Generated */    ARRAY_FREE( fastMABuffer );/* Generated */    ARRAY_FREE( slowMABuffer );/* Generated */    if( retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) )/* Generated */    {/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx);/* Generated */       VALUE_HANDLE_DEREF_TO_ZERO(outNBElement);/* Generated */       return retCode;/* Generated */    }/* Generated */    for( i=0; i < VALUE_HANDLE_GET(outNbElement2); i++ )/* Generated */       outMACDHist[i] = outMACD[i]-outMACDSignal[i];/* Generated */    VALUE_HANDLE_DEREF(outBegIdx)     = startIdx;/* Generated */    VALUE_HANDLE_DEREF(outNBElement)  = VALUE_HANDLE_GET(outNbElement2);/* Generated */    return ENUM_VALUE(RetCode,TA_SUCCESS,Success);/* Generated */ }/* Generated */ /* Generated */ #if defined( _MANAGED )/* Generated */ }}} // Close namespace TicTacTec.TA.Lib/* Generated */ #endif/**** END GENCODE SECTION 5 - DO NOT DELETE THIS LINE ****/

⌨️ 快捷键说明

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