/* Generated */ TA_RetCode TA_S_EMA( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInTimePeriod, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* 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)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 30; /* Generated */ else if( ((int)optInTimePeriod < 2) || ((int)optInTimePeriod > 100000) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ return FUNCTION_CALL(INT_EMA)( startIdx, endIdx, inReal, /* Generated */ optInTimePeriod, /* Generated */ PER_TO_K( optInTimePeriod ), /* Generated */ outBegIdx, outNBElement, outReal ); /* Generated */ }
/* Generated */ TA_LIB_API TA_RetCode TA_ACCBANDS_StateFree( struct TA_ACCBANDS_State** _state ) /* Generated */ /* Generated */ #endif /**** END GENCODE SECTION 9 - DO NOT DELETE THIS LINE ****/ { /* insert local variable here */ TA_RetCode retCode; retCode = FUNCTION_CALL_STATE_FREE(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA1 ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_FREE(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA2 ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_FREE(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA3 ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; /**** START GENCODE SECTION 10 - DO NOT DELETE THIS LINE ****/ /* Generated */ /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ /* Generated */ if (_state == NULL) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if (STATE != NULL) { /* Generated */ if (MEM_P != NULL) TA_Free(MEM_P); /* Generated */ TA_Free(STATE); STATE = NULL;} /* Generated */ /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */ /* Generated */ /**** END GENCODE SECTION 10 - DO NOT DELETE THIS LINE ****/ /* insert state free code here. */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); }
/* Generated */ TA_LIB_API TA_RetCode TA_APO_State( struct TA_APO_State* _state, /* Generated */ const double inReal, /* Generated */ double *outReal ) /* Generated */ #endif /**** END GENCODE SECTION 7 - DO NOT DELETE THIS LINE ****/ { /* insert local variable here */ #define TA_APO_SUPPRESS_EXIT_ON_NOT_ENOUGH_DATA double fastMA, slowMA; int res1, res2; /**** START GENCODE SECTION 8 - DO NOT DELETE THIS LINE ****/ /* Generated */ /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ /* Generated */ if (_state == NULL) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ /* Generated */ #endif /* !defined(_JAVA)*/ /* Generated */ size_t _cur_idx = STATE.mem_index++; /* Generated */ if (MEM_SIZE > 0) _cur_idx %= MEM_SIZE; /* Generated */ UNUSED_VARIABLE(_cur_idx); // in case PUSH\POP methods won't be used /* Generated */ #ifndef TA_APO_SUPPRESS_EXIT_ON_NOT_ENOUGH_DATA /* Generated */ if (NEED_MORE_DATA) { /* Generated */ PUSH_TO_MEM(inReal,inReal); /* Generated */ return ENUM_VALUE(RetCode,TA_NEED_MORE_DATA,NeedMoreData); } /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ /* Generated */ #endif /* !defined(_JAVA) */ /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */ /* Generated */ /**** END GENCODE SECTION 8 - DO NOT DELETE THIS LINE ****/ /* insert state based TA dunc code here. */ res1 = FUNCTION_CALL_STATE(MA)((struct TA_MA_State*) STATE.fastMAState, inReal, &fastMA); res2 = FUNCTION_CALL_STATE(MA)((struct TA_MA_State*) STATE.slowMAState, inReal, &slowMA); if (res1|res2) return (res1|res2); if (NEED_MORE_DATA) return ENUM_VALUE(RetCode,TA_NEED_MORE_DATA,NeedMoreData); if (STATE.doPercentageOutput != 0) { if( !TA_IS_ZERO(slowMA) ) VALUE_HANDLE_DEREF(outReal) = ((fastMA-slowMA)/slowMA)*100.0; else VALUE_HANDLE_DEREF(outReal) = 0.0; } else VALUE_HANDLE_DEREF(outReal) = fastMA - slowMA; return ENUM_VALUE(RetCode,TA_SUCCESS,Success); }
/* Generated */ TA_RetCode TA_PREFIX(INT_EMA)( int startIdx, /* Generated */ int endIdx, /* Generated */ const INPUT_TYPE *inReal, /* Generated */ int optInTimePeriod, /* Generated */ double optInK_1, /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double *outReal ) /* Generated */ #endif /* Generated */ { /* Generated */ double tempReal, prevMA; /* Generated */ int i, today, outIdx, lookbackTotal; /* Generated */ lookbackTotal = LOOKBACK_CALL(EMA)( optInTimePeriod ); /* 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 */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ if( TA_GLOBALS_COMPATIBILITY == ENUM_VALUE(Compatibility,TA_COMPATIBILITY_DEFAULT,Default) ) /* Generated */ { /* Generated */ today = startIdx-lookbackTotal; /* Generated */ i = optInTimePeriod; /* Generated */ tempReal = 0.0; /* Generated */ while( i-- > 0 ) /* Generated */ tempReal += inReal[today++]; /* Generated */ prevMA = tempReal / optInTimePeriod; /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ prevMA = inReal[0]; /* Generated */ today = 1; /* Generated */ } /* Generated */ while( today <= startIdx ) /* Generated */ prevMA = ((inReal[today++]-prevMA)*optInK_1) + prevMA; /* Generated */ outReal[0] = prevMA; /* Generated */ outIdx = 1; /* Generated */ while( today <= endIdx ) /* Generated */ { /* Generated */ prevMA = ((inReal[today++]-prevMA)*optInK_1) + prevMA; /* Generated */ outReal[outIdx++] = prevMA; /* Generated */ } /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_APO( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInFastPeriod, /* From 2 to 100000 */ /* Generated */ int optInSlowPeriod, /* From 2 to 100000 */ /* Generated */ TA_MAType optInMAType,/* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF(tempBuffer); /* Generated */ ENUM_DECLARATION(RetCode) retCode; /* 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( (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)optInMAType == TA_INTEGER_DEFAULT ) /* Generated */ optInMAType = (TA_MAType)0; /* Generated */ else if( ((int)optInMAType < 0) || ((int)optInMAType > 8) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ ARRAY_ALLOC(tempBuffer, (endIdx-startIdx+1) ); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !tempBuffer ) /* Generated */ return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr); /* Generated */ #endif /* Generated */ retCode = FUNCTION_CALL(INT_PO)( startIdx, endIdx, /* Generated */ inReal, /* Generated */ optInFastPeriod, /* Generated */ optInSlowPeriod, /* Generated */ optInMAType, /* Generated */ outBegIdx, /* Generated */ outNBElement, /* Generated */ outReal, /* Generated */ tempBuffer, /* Generated */ 0 ); /* Generated */ ARRAY_FREE( tempBuffer ); /* Generated */ return retCode; /* Generated */ }
/* Generated */ TA_LIB_API TA_RetCode TA_ACCBANDS_StateSave( struct TA_ACCBANDS_State* _state, /* Generated */ FILE* _file ) /* Generated */ /* Generated */ #endif /**** END GENCODE SECTION 11 - DO NOT DELETE THIS LINE ****/ { /* insert local variable here */ TA_RetCode retCode; /**** START GENCODE SECTION 12 - DO NOT DELETE THIS LINE ****/ /* Generated */ /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ /* Generated */ int io_res; int state_is_null; state_is_null = (_state == NULL); /* Generated */ io_res = fwrite(&state_is_null,sizeof(state_is_null),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (state_is_null) return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ io_res = fwrite(&STATE.mem_index,sizeof(STATE.mem_index),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ io_res = fwrite(&STATE.mem_size,sizeof(STATE.mem_size),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ int memory_allocated; /* Generated */ memory_allocated = STATE.memory != NULL; /* Generated */ io_res = fwrite(&memory_allocated,sizeof(memory_allocated),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (memory_allocated && STATE.mem_size > 0) { io_res = fwrite(STATE.memory,sizeof(struct TA_ACCBANDS_Data),STATE.mem_size,_file); /* Generated */ if (io_res < (int) STATE.mem_size) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); } /* Generated */ io_res = fwrite(&STATE.optInTimePeriod,sizeof(STATE.optInTimePeriod),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ // Warning: STATE.stateSMA1 must be saved manually! /* Generated */ // Warning: STATE.stateSMA2 must be saved manually! /* Generated */ // Warning: STATE.stateSMA3 must be saved manually! /* Generated */ /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */ /* Generated */ /**** END GENCODE SECTION 12 - DO NOT DELETE THIS LINE ****/ retCode = FUNCTION_CALL_STATE_SAVE(SMA)( (struct TA_SMA_State*) STATE.stateSMA1, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_SAVE(SMA)( (struct TA_SMA_State*) STATE.stateSMA2, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_SAVE(SMA)( (struct TA_SMA_State*) STATE.stateSMA3, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; return 0; }
/* Generated */ TA_LIB_API TA_RetCode TA_CDLLADDERBOTTOM_StateLoad( struct TA_CDLLADDERBOTTOM_State** _state, /* Generated */ FILE* _file ) /* Generated */ /* Generated */ #endif /**** END GENCODE SECTION 13 - DO NOT DELETE THIS LINE ****/ { /* insert local variable here */ /**** START GENCODE SECTION 14 - DO NOT DELETE THIS LINE ****/ /* Generated */ /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ /* Generated */ int io_res; int state_is_null; /* Generated */ io_res = fread(&state_is_null,sizeof(state_is_null),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (state_is_null) return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ if (STATE != NULL) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ STATE = TA_Calloc(1, sizeof(struct TA_CDLLADDERBOTTOM_State)); /* Generated */ io_res = fread(&STATE_P.mem_index,sizeof(STATE_P.mem_index),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ io_res = fread(&STATE_P.mem_size,sizeof(STATE_P.mem_size),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ int memory_allocated; /* Generated */ io_res = fread(&memory_allocated,sizeof(memory_allocated),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (STATE_P.mem_size > 0 && memory_allocated) { STATE_P.memory = TA_Calloc(STATE_P.mem_size, sizeof(struct TA_CDLLADDERBOTTOM_Data)); /* Generated */ io_res = fread(STATE_P.memory,sizeof(struct TA_CDLLADDERBOTTOM_Data),STATE_P.mem_size,_file); /* Generated */ if (io_res < (int) STATE_P.mem_size) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); } /* Generated */ io_res = fread(&STATE_P.ShadowVeryShortPeriodTotal,sizeof(STATE_P.ShadowVeryShortPeriodTotal),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ io_res = fread(&STATE_P.periodShadowVeryShort,sizeof(STATE_P.periodShadowVeryShort),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ io_res = fread(&STATE_P.gapShadowVeryShort,sizeof(STATE_P.gapShadowVeryShort),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */ /* Generated */ /**** END GENCODE SECTION 14 - DO NOT DELETE THIS LINE ****/ /* insert state load code here. */ return 0; }
ENUM_TYPE(ELoggingLevel, std::uint8_t) { ENUM_VALUE(OFF); ENUM_VALUE(SEVERE); ENUM_VALUE(WARNING); ENUM_VALUE(INFO); ENUM_VALUE(DEBUG); ENUM_VALUE(ALL); };
int main(int argc, char* argv[], char* envp[]) { int i; const char *name; printf("Enum Days elements:\n"); for (i = 0; i < 7; i++) { name = ENUM_NAME_AT(Days, i); if (name) printf("\t%d) %-10s\n", i, name); } printf("\nEnum Number elements:\n"); for (i = 0; i < 11; i++) { int pos = ENUM_POS(Numbers, Numbers(i)); if (pos >= 0) { name = ENUM_NAME(Numbers, Numbers(i)); printf("\t%-10s:\t%d\n", name, i); } else { printf(" %d is not a valid item of Enum Numbers\n", i); } } printf("\nEnum Fruits elements:\n"); Fruits value; for (i = 0; i < NUMBER_OF(Fruits); i++) { value = ENUM_VALUE_AT(Fruits, i); name = ENUM_NAME_AT(Fruits, i); // printf("\t%d) %-10s:\t%d\n", i, name, value); name = ENUM_NAME(Fruits, value); if (name) { value = ENUM_VALUE(Fruits, name); if (value != INVALID_ENUM_ITEM(Fruits)) printf("\t%-10s:\t%d\n", name, value); } } return 0; }
/* Generated */ TA_RetCode TA_S_DIV( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal0[], /* Generated */ const float inReal1[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* Generated */ int outIdx; /* Generated */ #ifndef TA_LIB_PRO /* Generated */ int i; /* Generated */ #endif /* 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( !inReal0 ) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if( !inReal1 ) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ for( i=startIdx, outIdx=0; i <= endIdx; i++, outIdx++ ) /* Generated */ { /* Generated */ outReal[outIdx] = inReal0[i]/inReal1[i]; /* Generated */ } /* Generated */ #endif /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_CDLHANGINGMAN( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ double BodyPeriodTotal, ShadowLongPeriodTotal, ShadowVeryShortPeriodTotal, NearPeriodTotal; /* Generated */ int i, outIdx, BodyTrailingIdx, ShadowLongTrailingIdx, ShadowVeryShortTrailingIdx, NearTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDLHANGINGMAN)(); /* 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 */ BodyPeriodTotal = 0; /* Generated */ BodyTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(BodyShort); /* Generated */ ShadowLongPeriodTotal = 0; /* Generated */ ShadowLongTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(ShadowLong); /* Generated */ ShadowVeryShortPeriodTotal = 0; /* Generated */ ShadowVeryShortTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(ShadowVeryShort); /* Generated */ NearPeriodTotal = 0; /* Generated */ NearTrailingIdx = startIdx -1 - TA_CANDLEAVGPERIOD(Near); /* Generated */ i = BodyTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ BodyPeriodTotal += TA_CANDLERANGE( BodyShort, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = ShadowLongTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ ShadowLongPeriodTotal += TA_CANDLERANGE( ShadowLong, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = ShadowVeryShortTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ ShadowVeryShortPeriodTotal += TA_CANDLERANGE( ShadowVeryShort, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = NearTrailingIdx; /* Generated */ while( i < startIdx-1 ) { /* Generated */ NearPeriodTotal += TA_CANDLERANGE( Near, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ outIdx = 0; /* Generated */ do /* Generated */ { /* Generated */ if( TA_REALBODY(i) < TA_CANDLEAVERAGE( BodyShort, BodyPeriodTotal, i ) && // small rb /* Generated */ TA_LOWERSHADOW(i) > TA_CANDLEAVERAGE( ShadowLong, ShadowLongPeriodTotal, i ) && // long lower shadow /* Generated */ TA_UPPERSHADOW(i) < TA_CANDLEAVERAGE( ShadowVeryShort, ShadowVeryShortPeriodTotal, i ) && // very short upper shadow /* Generated */ min( inClose[i], inOpen[i] ) >= inHigh[i-1] - TA_CANDLEAVERAGE( Near, NearPeriodTotal, i-1 ) // rb near the prior candle's highs /* Generated */ ) /* Generated */ outInteger[outIdx++] = -100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ BodyPeriodTotal += TA_CANDLERANGE( BodyShort, i ) /* Generated */ - TA_CANDLERANGE( BodyShort, BodyTrailingIdx ); /* Generated */ ShadowLongPeriodTotal += TA_CANDLERANGE( ShadowLong, i ) /* Generated */ - TA_CANDLERANGE( ShadowLong, ShadowLongTrailingIdx ); /* Generated */ ShadowVeryShortPeriodTotal += TA_CANDLERANGE( ShadowVeryShort, i ) /* Generated */ - TA_CANDLERANGE( ShadowVeryShort, ShadowVeryShortTrailingIdx ); /* Generated */ NearPeriodTotal += TA_CANDLERANGE( Near, i-1 ) /* Generated */ - TA_CANDLERANGE( Near, NearTrailingIdx ); /* Generated */ i++; /* Generated */ BodyTrailingIdx++; /* Generated */ ShadowLongTrailingIdx++; /* Generated */ ShadowVeryShortTrailingIdx++; /* Generated */ NearTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_CDL2CROWS( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ double BodyLongPeriodTotal; /* Generated */ int i, outIdx, BodyLongTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDL2CROWS)(); /* 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 */ BodyLongPeriodTotal = 0; /* Generated */ BodyLongTrailingIdx = startIdx -2 - TA_CANDLEAVGPERIOD(BodyLong); /* Generated */ i = BodyLongTrailingIdx; /* Generated */ while( i < startIdx-2 ) { /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ outIdx = 0; /* Generated */ do /* Generated */ { /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ if( TA_CANDLECOLOR(i-2) == 1 && // 1st: white /* Generated */ TA_REALBODY(i-2) > TA_CANDLEAVERAGE( BodyLong, BodyLongPeriodTotal, i-2 ) && // long /* Generated */ TA_CANDLECOLOR(i-1) == -1 && // 2nd: black /* Generated */ TA_REALBODYGAPUP(i-1,i-2) && // gapping up /* Generated */ TA_CANDLECOLOR(i) == -1 && // 3rd: black /* Generated */ inOpen[i] < inOpen[i-1] && inOpen[i] > inClose[i-1] && // opening within 2nd rb /* Generated */ inClose[i] > inOpen[i-2] && inClose[i] < inClose[i-2] // closing within 1st rb /* Generated */ ) /* Generated */ #endif /* Generated */ outInteger[outIdx++] = -100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i-2 ) - TA_CANDLERANGE( BodyLong, BodyLongTrailingIdx ); /* Generated */ i++; /* Generated */ BodyLongTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_PREFIX(INT_PO)( int startIdx, /* Generated */ int endIdx, /* Generated */ const INPUT_TYPE *inReal, /* Generated */ int optInFastPeriod, /* Generated */ int optInSlowPeriod, /* Generated */ TA_MAType optInMethod_2, /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double *outReal, /* Generated */ double *tempBuffer, /* Generated */ int doPercentageOutput ) /* Generated */ #endif /* Generated */ { /* Generated */ ENUM_DECLARATION(RetCode) retCode; /* Generated */ double tempReal; /* 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 i, j; /* Generated */ if( optInSlowPeriod < optInFastPeriod ) /* Generated */ { /* Generated */ tempInteger = optInSlowPeriod; /* Generated */ optInSlowPeriod = optInFastPeriod; /* Generated */ optInFastPeriod = tempInteger; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL(MA)( startIdx, endIdx, /* Generated */ inReal, /* Generated */ optInFastPeriod, /* Generated */ optInMethod_2, /* Generated */ VALUE_HANDLE_OUT(outBegIdx2), VALUE_HANDLE_OUT(outNbElement2), /* Generated */ tempBuffer ); /* Generated */ if( retCode == ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) /* Generated */ { /* Generated */ retCode = FUNCTION_CALL(MA)( startIdx, endIdx, /* Generated */ inReal, /* Generated */ optInSlowPeriod, /* Generated */ optInMethod_2, /* Generated */ VALUE_HANDLE_OUT(outBegIdx1), VALUE_HANDLE_OUT(outNbElement1), /* Generated */ outReal ); /* Generated */ if( retCode == ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) /* Generated */ { /* Generated */ tempInteger = VALUE_HANDLE_GET(outBegIdx1) - VALUE_HANDLE_GET(outBegIdx2); /* Generated */ if( doPercentageOutput != 0 ) /* Generated */ { /* Generated */ for( i=0,j=tempInteger; i < VALUE_HANDLE_GET(outNbElement1); i++, j++ ) /* Generated */ { /* Generated */ tempReal = outReal[i]; /* Generated */ if( !TA_IS_ZERO(tempReal) ) /* Generated */ outReal[i] = ((tempBuffer[j]-tempReal)/tempReal)*100.0; /* Generated */ else /* Generated */ outReal[i] = 0.0; /* Generated */ } /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ for( i=0,j=tempInteger; i < VALUE_HANDLE_GET(outNbElement1); i++, j++ ) /* Generated */ outReal[i] = tempBuffer[j]-outReal[i]; /* Generated */ } /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = VALUE_HANDLE_GET(outBegIdx1); /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = VALUE_HANDLE_GET(outNbElement1); /* Generated */ } /* Generated */ } /* 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 */ } /* Generated */ return retCode; /* Generated */ }
/* Generated */ TA_RetCode TA_S_ACCBANDS( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int optInTimePeriod, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outRealUpperBand[], /* Generated */ double outRealMiddleBand[], /* Generated */ double outRealLowerBand[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ENUM_DECLARATION(RetCode) retCode; /* Generated */ ARRAY_REF( tempBuffer1 ); /* Generated */ ARRAY_REF( tempBuffer2 ); /* Generated */ VALUE_HANDLE_INT(outBegIdxDummy); /* Generated */ VALUE_HANDLE_INT(outNbElementDummy); /* Generated */ int i, j, outputSize, bufferSize, lookbackTotal; /* Generated */ double tempReal; /* 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(!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ if( (int)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 20; /* Generated */ else if( ((int)optInTimePeriod < 2) || ((int)optInTimePeriod > 100000) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outRealUpperBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if( !outRealMiddleBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if( !outRealLowerBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(SMA)( optInTimePeriod ); /* 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 */ outputSize = endIdx-startIdx+1; /* Generated */ bufferSize = outputSize+lookbackTotal; /* Generated */ ARRAY_ALLOC(tempBuffer1, bufferSize ); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !tempBuffer1 ) /* 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(tempBuffer2, bufferSize ); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !tempBuffer2 ) /* Generated */ { /* Generated */ ARRAY_FREE(tempBuffer1); /* 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 */ for(j=0, i=startIdx-lookbackTotal; i<=endIdx; i++, j++) /* Generated */ { /* Generated */ tempReal = inHigh[i]+inLow[i]; /* Generated */ if( !TA_IS_ZERO(tempReal) ) /* Generated */ { /* Generated */ tempReal = 4*(inHigh[i]-inLow[i])/tempReal; /* Generated */ tempBuffer1[j] = inHigh[i]*(1+tempReal); /* Generated */ tempBuffer2[j] = inLow[i]*(1-tempReal); /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ tempBuffer1[j] = inHigh[i]; /* Generated */ tempBuffer2[j] = inLow[i]; /* Generated */ } /* Generated */ } /* Generated */ retCode = FUNCTION_CALL(SMA)( startIdx, endIdx, inClose, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), outRealMiddleBand ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(SMA)( 0, bufferSize-1, tempBuffer1, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), /* Generated */ outRealUpperBand ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(SMA)( 0, bufferSize-1, tempBuffer2, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), /* Generated */ outRealLowerBand ); /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outputSize; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_CDLPIERCING( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_LOCAL(BodyLongPeriodTotal,2); /* Generated */ int i, outIdx, totIdx, BodyLongTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDLPIERCING)(); /* 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 */ BodyLongPeriodTotal[1] = 0; /* Generated */ BodyLongPeriodTotal[0] = 0; /* Generated */ BodyLongTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(BodyLong); /* Generated */ i = BodyLongTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ BodyLongPeriodTotal[1] += TA_CANDLERANGE( BodyLong, i-1 ); /* Generated */ BodyLongPeriodTotal[0] += TA_CANDLERANGE( BodyLong, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ outIdx = 0; /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ do /* Generated */ { /* Generated */ if( TA_CANDLECOLOR(i-1) == -1 && // 1st: black /* Generated */ TA_REALBODY(i-1) > TA_CANDLEAVERAGE( BodyLong, BodyLongPeriodTotal[1], i-1 ) && // long /* Generated */ TA_CANDLECOLOR(i) == 1 && // 2nd: white /* Generated */ TA_REALBODY(i) > TA_CANDLEAVERAGE( BodyLong, BodyLongPeriodTotal[0], i ) && // long /* Generated */ inOpen[i] < inLow[i-1] && // open below prior low /* Generated */ inClose[i] < inOpen[i-1] && // close within prior body /* Generated */ inClose[i] > inClose[i-1] + TA_REALBODY(i-1) * 0.5 // above midpoint /* Generated */ ) /* Generated */ outInteger[outIdx++] = 100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ for (totIdx = 1; totIdx >= 0; --totIdx) /* Generated */ BodyLongPeriodTotal[totIdx] += TA_CANDLERANGE( BodyLong, i-totIdx ) /* Generated */ - TA_CANDLERANGE( BodyLong, BodyLongTrailingIdx-totIdx ); /* Generated */ i++; /* Generated */ BodyLongTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ #endif /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_CDLLADDERBOTTOM( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ double ShadowVeryShortPeriodTotal; /* Generated */ int i, outIdx, ShadowVeryShortTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDLLADDERBOTTOM)(); /* 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 */ ShadowVeryShortPeriodTotal = 0; /* Generated */ ShadowVeryShortTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(ShadowVeryShort); /* Generated */ i = ShadowVeryShortTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ ShadowVeryShortPeriodTotal += TA_CANDLERANGE( ShadowVeryShort, i-1 ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ outIdx = 0; /* Generated */ do /* Generated */ { /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ if( /* Generated */ TA_CANDLECOLOR(i-4) == -1 && TA_CANDLECOLOR(i-3) == -1 && TA_CANDLECOLOR(i-2) == -1 && // 3 black candlesticks /* Generated */ inOpen[i-4] > inOpen[i-3] && inOpen[i-3] > inOpen[i-2] && // with consecutively lower opens /* Generated */ inClose[i-4] > inClose[i-3] && inClose[i-3] > inClose[i-2] && // and closes /* Generated */ TA_CANDLECOLOR(i-1) == -1 && // 4th: black with an upper shadow /* Generated */ TA_UPPERSHADOW(i-1) > TA_CANDLEAVERAGE( ShadowVeryShort, ShadowVeryShortPeriodTotal, i-1 ) && /* Generated */ TA_CANDLECOLOR(i) == 1 && // 5th: white /* Generated */ inOpen[i] > inOpen[i-1] && // that opens above prior candle's body /* Generated */ inClose[i] > inHigh[i-1] // and closes above prior candle's high /* Generated */ ) /* Generated */ outInteger[outIdx++] = 100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ #endif /* Generated */ ShadowVeryShortPeriodTotal += TA_CANDLERANGE( ShadowVeryShort, i-1 ) /* Generated */ - TA_CANDLERANGE( ShadowVeryShort, ShadowVeryShortTrailingIdx-1 ); /* Generated */ i++; /* Generated */ ShadowVeryShortTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_TRIMA( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInTimePeriod, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* Generated */ int lookbackTotal; /* Generated */ double numerator; /* Generated */ double numeratorSub; /* Generated */ double numeratorAdd; /* Generated */ int i, outIdx, todayIdx, trailingIdx, middleIdx; /* Generated */ double factor, tempReal; /* 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)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 30; /* Generated */ else if( ((int)optInTimePeriod < 2) || ((int)optInTimePeriod > 100000) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = (optInTimePeriod-1); /* 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 */ outIdx = 0; /* Generated */ if( (optInTimePeriod % 2) == 1 ) /* Generated */ { /* Generated */ i = (optInTimePeriod>>1); /* Generated */ factor = (i+1)*(i+1); /* Generated */ factor = 1.0/factor; /* Generated */ trailingIdx = startIdx-lookbackTotal; /* Generated */ middleIdx = trailingIdx + i; /* Generated */ todayIdx = middleIdx + i; /* Generated */ numerator = 0.0; /* Generated */ numeratorSub = 0.0; /* Generated */ for( i=middleIdx; i >= trailingIdx; i-- ) /* Generated */ { /* Generated */ tempReal = inReal[i]; /* Generated */ numeratorSub += tempReal; /* Generated */ numerator += numeratorSub; /* Generated */ } /* Generated */ numeratorAdd = 0.0; /* Generated */ middleIdx++; /* Generated */ for( i=middleIdx; i <= todayIdx; i++ ) /* Generated */ { /* Generated */ tempReal = inReal[i]; /* Generated */ numeratorAdd += tempReal; /* Generated */ numerator += numeratorAdd; /* Generated */ } /* Generated */ outIdx = 0; /* Generated */ tempReal = inReal[trailingIdx++]; /* Generated */ outReal[outIdx++] = numerator * factor; /* Generated */ todayIdx++; /* Generated */ while( todayIdx <= endIdx ) /* Generated */ { /* Generated */ numerator -= numeratorSub; /* Generated */ numeratorSub -= tempReal; /* Generated */ tempReal = inReal[middleIdx++]; /* Generated */ numeratorSub += tempReal; /* Generated */ numerator += numeratorAdd; /* Generated */ numeratorAdd -= tempReal; /* Generated */ tempReal = inReal[todayIdx++]; /* Generated */ numeratorAdd += tempReal; /* Generated */ numerator += tempReal; /* Generated */ tempReal = inReal[trailingIdx++]; /* Generated */ outReal[outIdx++] = numerator * factor; /* Generated */ } /* Generated */ }
/* Generated */ TA_RetCode TA_S_CDLINNECK( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ double EqualPeriodTotal, BodyLongPeriodTotal; /* Generated */ int i, outIdx, EqualTrailingIdx, BodyLongTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDLINNECK)(); /* 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 */ EqualPeriodTotal = 0; /* Generated */ EqualTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(Equal); /* Generated */ BodyLongPeriodTotal = 0; /* Generated */ BodyLongTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(BodyLong); /* Generated */ i = EqualTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ EqualPeriodTotal += TA_CANDLERANGE( Equal, i-1 ); /* Generated */ i++; /* Generated */ } /* Generated */ i = BodyLongTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i-1 ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #endif /* Generated */ outIdx = 0; /* Generated */ do /* Generated */ { /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ if( TA_CANDLECOLOR(i-1) == -1 && // 1st: black /* Generated */ TA_REALBODY(i-1) > TA_CANDLEAVERAGE( BodyLong, BodyLongPeriodTotal, i-1 ) && // long /* Generated */ TA_CANDLECOLOR(i) == 1 && // 2nd: white /* Generated */ inOpen[i] < inLow[i-1] && // open below prior low /* Generated */ inClose[i] <= inClose[i-1] + TA_CANDLEAVERAGE( Equal, EqualPeriodTotal, i-1 ) && // close slightly into prior body /* Generated */ inClose[i] >= inClose[i-1] /* Generated */ ) /* Generated */ outInteger[outIdx++] = -100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ #endif /* Generated */ EqualPeriodTotal += TA_CANDLERANGE( Equal, i-1 ) - TA_CANDLERANGE( Equal, EqualTrailingIdx-1 ); /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i-1 ) /* Generated */ - TA_CANDLERANGE( BodyLong, BodyLongTrailingIdx-1 ); /* Generated */ i++; /* Generated */ EqualTrailingIdx++; /* Generated */ BodyLongTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
void genConstants(void) { DEFINED_CONSTANT(PG_SIZE, PAGE_SIZE); VAR_SIZE(allocLocal); VAR_SIZE(activeThrdCntLocal); VAR_SIZE(lTransTableLocal); VAR_SIZE(exceptionLocal); VAR_SIZE(kernelInfoLocal); VAR_SIZE(extRegsLocal); VAR_SIZE(BLock); VAR_SIZE(FairBLock); VAR_SIZE(Semaphore); // VAR_SIZE(FairBLockTraced); STRUCT_SIZE(TH, Thread); STRUCT_SIZE(VS, VolatileState); STRUCT_SIZE(ER, ExpRegs); STRUCT_SIZE(EPL, EntryPointLauncher); FIELD_OFFSET1(EL, ExceptionLocal, currentProcessAnnex); FIELD_OFFSET1(EL, ExceptionLocal, exceptionStack); FIELD_OFFSET1(EL, ExceptionLocal, currentDebugStack); DEFINED_CONSTANT(KERN_THREAD_SIZE, ExceptionLocal::KernThreadSize); DEFINED_CONSTANT(KERN_PGFLT_STK_SPACE, ExceptionLocal::KernPgfltStkSpace); FIELD_OFFSET1(PA, ProcessAnnex, launcher); FIELD_OFFSET1(PA, ProcessAnnex, dispatcher); FIELD_OFFSET1(PA, ProcessAnnex, dispatcherUser); FIELD_OFFSET1(PA, ProcessAnnex, userStateOffset); FIELD_OFFSET1(PA, ProcessAnnex, trapStateOffset); FIELD_OFFSET1(TH, Thread, startSP); FIELD_OFFSET1(TH, Thread, curSP); FIELD_OFFSET1(TH, Thread, bottomSP); FIELD_OFFSET1(TH, Thread, truebottomSP); FIELD_OFFSET1(TH, Thread, altStack); FIELD_OFFSET1(TH, Thread, upcallNeeded); FIELD_OFFSET1(KI, KernelInfo, onSim); FIELD_OFFSET1(KI, KernelInfo, onHV); FIELD_OFFSET1(XR, ExtRegs, disabled); FIELD_OFFSET1(XR, ExtRegs, dispatcher); FIELD_OFFSET2(D, Dispatcher, interrupts, flags); FIELD_OFFSET1(D, Dispatcher, trapDisabledSave); FIELD_OFFSET1(D, Dispatcher, _userStateOffset); FIELD_OFFSET1(D, Dispatcher, _trapStateOffset); FIELD_OFFSET1(DD, DispatcherDefault, dispatcherStack); FIELD_OFFSET1(DD, DispatcherDefault, rescheduleNeeded); FIELD_OFFSET1(DD, DispatcherDefault, allowPrimitivePPCFlag); FIELD_OFFSET1(DD, DispatcherDefault, currentDebugStack); FIELD_OFFSET1(DD, DispatcherDefault, sandboxShepherd); DEFINED_CONSTANT(SCHED_DISPATCHER_SPACE, Scheduler::DISPATCHER_SPACE); DEFINED_CONSTANT(ProgExec_BOOT_STACK_SIZE, ProgExec::BOOT_STACK_SIZE); DEFINED_CONSTANT(ProgExec_THR_STK_SIZE, ProgExec::THREAD_SIZE); DEFINED_CONSTANT(ProgExec_INIT_MEM_SIZE, ProgExec::INIT_MEM_SIZE); DEFINED_CONSTANT(ProgExec_USR_STK_SIZE, ProgExec::USR_STACK_SIZE); FIELD_OFFSET1(AC, AllocCell, next); FIELD_OFFSET1(LM, LMalloc, freeList); FIELD_OFFSET1(LM, LMalloc, nodeID); FIELD_OFFSET1(LM, LMalloc, maxCount); FIELD_OFFSET1(LM, LMalloc, pool); FIELD_OFFSET1(LM, LMalloc, mallocID); #ifdef ALLOC_STATS FIELD_OFFSET1(LM, LMalloc, allocs); FIELD_OFFSET1(LM, LMalloc, frees); FIELD_OFFSET1(LM, LMalloc, remoteFrees); #endif CONSTANT(RUN_ENTRY); CONSTANT(INTERRUPT_ENTRY); CONSTANT(TRAP_ENTRY); CONSTANT(PGFLT_ENTRY); CONSTANT(IPC_CALL_ENTRY); CONSTANT(IPC_RTN_ENTRY); CONSTANT(IPC_FAULT_ENTRY); CONSTANT(SVC_ENTRY); #if !defined(USE_EXPEDIENT_USER_PGFLT) || \ !defined(USE_EXPEDIENT_PPC) || \ !defined(USE_EXPEDIENT_SCHEDULER) || \ !defined(USE_EXPEDIENT_RESERVED_THREAD) || \ !defined(USE_EXPEDIENT_USER_RESUME) || \ !defined(USE_EXPEDIENT_INTERRUPT) || \ !defined(USE_EXPEDIENT_SVC) FIELD_OFFSET1(EL, ExceptionLocal, kernelProcessAnnex); FIELD_OFFSET1(EL, ExceptionLocal, currentSegmentTable); FIELD_OFFSET1(EL, ExceptionLocal, trcInfoMask); FIELD_OFFSET1(EL, ExceptionLocal, trcInfoIndexMask); FIELD_OFFSET1(EL, ExceptionLocal, trcControl); FIELD_OFFSET1(EL, ExceptionLocal, trcArray); FIELD_OFFSET2(EL, ExceptionLocal, ipcTargetTable, _tableOffsetMask); FIELD_OFFSET2(EL, ExceptionLocal, ipcTargetTable, _table); DEFINED_CONSTANT(RD_HASH_OFFSET, IPCTargetTable::RD_HASH_OFFSET); FIELD_OFFSET2(EL, ExceptionLocal, dispatchQueue, cdaBorrowersTop); FIELD_OFFSET2(EL, ExceptionLocal, dispatchQueue, cdaBorrowers); DEFINED_CONSTANT(LOG_CDA_BORROWERS_SIZE, DispatchQueue::LOG_CDA_BORROWERS_SIZE); DEFINED_CONSTANT(CDA_BORROWERS_SIZE, DispatchQueue::CDA_BORROWERS_SIZE); FIELD_OFFSET1(PA, ProcessAnnex, reservedThread); FIELD_OFFSET1(PA, ProcessAnnex, excStateOffset); FIELD_OFFSET1(PA, ProcessAnnex, segmentTable); FIELD_OFFSET1(PA, ProcessAnnex, commID); FIELD_OFFSET1(PA, ProcessAnnex, ipcTargetNext); FIELD_OFFSET1(PA, ProcessAnnex, isKernel); FIELD_OFFSET1(PA, ProcessAnnex, ppcTargetID); FIELD_OFFSET1(PA, ProcessAnnex, ppcThreadID); FIELD_OFFSET1(PA, ProcessAnnex, cpuDomainNext); DEFINED_CONSTANT(PPC_PRMTV_MARKER, uval(PPC_PRIMITIVE_MARKER)); ENUM_VALUE(SOFTINTR, SoftIntr, PREEMPT); FIELD_OFFSET1(TH, Thread, next); FIELD_OFFSET1(TH, Thread, targetID); FIELD_OFFSET1(TH, Thread, threadID); FIELD_OFFSET1(TH, Thread, activeCntP); FIELD_OFFSET1(TH, Thread, groups); FIELD_OFFSET1(ATC, ActiveThrdCnt, genIndexAndActivationCnt); FIELD_OFFSET1(ATC, ActiveThrdCnt, activeCnt); DEFINED_CONSTANT(ATC_COUNT_BITS, ActiveThrdCnt::COUNT_BITS); FIELD_OFFSET1(D, Dispatcher, hasWork); FIELD_OFFSET1(D, Dispatcher, ipcFaultReason); FIELD_OFFSET1(DD, DispatcherDefault, freeList); FIELD_OFFSET1(DD, DispatcherDefault, threadArraySize); FIELD_OFFSET1(DD, DispatcherDefault, threadArray); FIELD_OFFSET1(DD, DispatcherDefault, preemptRequested); FIELD_OFFSET1(DD, DispatcherDefault, barredGroups); FIELD_OFFSET1(DD, DispatcherDefault, barredList); FIELD_OFFSET2(DD, DispatcherDefault, published, xhandleTable); FIELD_OFFSET2(DD, DispatcherDefault, published, xhandleTableLimit); FIELD_OFFSET1(XR, ExtRegs, ppcPageLength); DEFINED_CONSTANT(VP_WILD, SysTypes::VP_WILD); DEFINED_CONSTANT(COMMID_VP_SHIFT, SysTypes::COMMID_VP_SHIFT); DEFINED_CONSTANT(PID_BITS, SysTypes::PID_BITS); DEFINED_CONSTANT(COMMID_PID_SHIFT, SysTypes::COMMID_PID_SHIFT); DEFINED_CONSTANT(COMMID_RD_SHIFT, SysTypes::COMMID_RD_SHIFT); DEFINED_CONSTANT(RD_MASK, SysTypes::RD_MASK); ENUM_VALUE(XBO, XBaseObj, LOG_SIZE_IN_UVALS); ENUM_VALUE(XBO, XBaseObj, FIRST_METHOD); FIELD_OFFSET1(XBO, XBaseObj, seqNo); FIELD_OFFSET1(XBO, XBaseObj, __nummeth); ENUM_VALUE(VTE, COVTableEntry, LOG_SIZE_IN_UVALS); FIELD_OFFSET1(VTE, COVTableEntry, _func); DEFINED_CONSTANT(SEQNO_SHIFT, _XHANDLE_SEQNO_SHIFT); DEFINED_CONSTANT(SEQNO_BITS, _XHANDLE_SEQNO_BITS); DEFINED_CONSTANT(IDX_SHIFT, _XHANDLE_IDX_SHIFT); DEFINED_CONSTANT(IDX_BITS, _XHANDLE_IDX_BITS); DEFINED_CONSTANT(ERRNO_INVAL, EINVAL); DEFINED_CONSTANT(ERRNO_NOMEM, ENOMEM); DEFINED_CONSTANT(ERRNO_PERM, EPERM); DEFINED_CONSTANT(ERRNO_AGAIN, EAGAIN); DEFINED_CONSTANT(ERRNO_SRCH, ESRCH); FIELD_OFFSET2(KI_TI, KernelInfo, traceInfo, mask); FIELD_OFFSET2(KI_TI, KernelInfo, traceInfo, indexMask); FIELD_OFFSET2(KI_TI, KernelInfo, traceInfo, traceControl); FIELD_OFFSET2(KI_TI, KernelInfo, traceInfo, traceArray); FIELD_OFFSET1(TC, TraceControl, index); FIELD_OFFSET1(TC, TraceControl, bufferCount); DEFINED_CONSTANT(TRC_BUFFER_NUMBER_BITS, TRACE_BUFFER_NUMBER_BITS); DEFINED_CONSTANT(TRC_BUFFER_OFFSET_BITS, TRACE_BUFFER_OFFSET_BITS); DEFINED_CONSTANT(TRC_BUFFER_OFFSET_MASK, TRACE_BUFFER_OFFSET_MASK); DEFINED_CONSTANT(TRC_TIMESTAMP_BITS, TRACE_TIMESTAMP_BITS); DEFINED_CONSTANT(TRC_TIMESTAMP_SHIFT, TRACE_TIMESTAMP_SHIFT); DEFINED_CONSTANT(TRC_LAYER_ID_BITS, TRACE_LAYER_ID_BITS); DEFINED_CONSTANT(TRC_LAYER_ID_SHIFT, TRACE_LAYER_ID_SHIFT); DEFINED_CONSTANT(TRC_MAJOR_ID_BITS, TRACE_MAJOR_ID_BITS); DEFINED_CONSTANT(TRC_MAJOR_ID_SHIFT, TRACE_MAJOR_ID_SHIFT); DEFINED_CONSTANT(TRC_LENGTH_BITS, TRACE_LENGTH_BITS); DEFINED_CONSTANT(TRC_LENGTH_SHIFT, TRACE_LENGTH_SHIFT); DEFINED_CONSTANT(TRC_DATA_BITS, TRACE_DATA_BITS); DEFINED_CONSTANT(TRC_DATA_SHIFT, TRACE_DATA_SHIFT); DEFINED_CONSTANT(TRC_K42_LAYER_ID, TRACE_K42_LAYER_ID); DEFINED_CONSTANT(TRC_EXCEPTION_MAJOR_ID, TRACE_EXCEPTION_MAJOR_ID); DEFINED_CONSTANT(TRC_EXCEPTION_PPC_CALL, TRACE_EXCEPTION_PPC_CALL); DEFINED_CONSTANT(TRC_EXCEPTION_PPC_RETURN, TRACE_EXCEPTION_PPC_RETURN); DEFINED_CONSTANT(TRC_SCHEDULER_MAJOR_ID, TRACE_SCHEDULER_MAJOR_ID); DEFINED_CONSTANT(TRC_SCHEDULER_CUR_THREAD, TRACE_SCHEDULER_CUR_THREAD); DEFINED_CONSTANT(TRC_SCHEDULER_PPC_XOBJ_FCT, TRACE_SCHEDULER_PPC_XOBJ_FCT); #endif #include __MINC(genConstantsArch.C) }
/* Generated */ TA_LIB_API TA_RetCode TA_ACCBANDS_StateLoad( struct TA_ACCBANDS_State** _state, /* Generated */ FILE* _file ) /* Generated */ /* Generated */ #endif /**** END GENCODE SECTION 13 - DO NOT DELETE THIS LINE ****/ { /* insert local variable here */ TA_RetCode retCode; /**** START GENCODE SECTION 14 - DO NOT DELETE THIS LINE ****/ /* Generated */ /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ /* Generated */ int io_res; int state_is_null; /* Generated */ io_res = fread(&state_is_null,sizeof(state_is_null),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (state_is_null) return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ if (STATE != NULL) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ STATE = TA_Calloc(1, sizeof(struct TA_ACCBANDS_State)); /* Generated */ io_res = fread(&STATE_P.mem_index,sizeof(STATE_P.mem_index),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ io_res = fread(&STATE_P.mem_size,sizeof(STATE_P.mem_size),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ int memory_allocated; /* Generated */ io_res = fread(&memory_allocated,sizeof(memory_allocated),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ if (STATE_P.mem_size > 0 && memory_allocated) { STATE_P.memory = TA_Calloc(STATE_P.mem_size, sizeof(struct TA_ACCBANDS_Data)); /* Generated */ io_res = fread(STATE_P.memory,sizeof(struct TA_ACCBANDS_Data),STATE_P.mem_size,_file); /* Generated */ if (io_res < (int) STATE_P.mem_size) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); } /* Generated */ io_res = fread(&STATE_P.optInTimePeriod,sizeof(STATE_P.optInTimePeriod),1,_file); /* Generated */ if (io_res < 1) return ENUM_VALUE(RetCode,TA_IO_FAILED,IOFailed); /* Generated */ // Warning: STATE_P.stateSMA1 must be loaded manually! /* Generated */ // Warning: STATE_P.stateSMA2 must be loaded manually! /* Generated */ // Warning: STATE_P.stateSMA3 must be loaded manually! /* Generated */ /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */ /* Generated */ /**** END GENCODE SECTION 14 - DO NOT DELETE THIS LINE ****/ /* insert state load code here. */ retCode = FUNCTION_CALL_STATE_LOAD(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA1, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_LOAD(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA2, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; retCode = FUNCTION_CALL_STATE_LOAD(SMA)( (struct TA_SMA_State**) &STATE_P.stateSMA3, _file ); if (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success)) return retCode; return 0; }
/* Generated */ TA_RetCode TA_S_CDLMORNINGDOJISTAR( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inOpen[], /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ double optInPenetration, /* From 0 to TA_REAL_MAX */ /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ int outInteger[] ) /* Generated */ #endif /* Generated */ { /* Generated */ double BodyDojiPeriodTotal, BodyLongPeriodTotal, BodyShortPeriodTotal; /* Generated */ int i, outIdx, BodyDojiTrailingIdx, BodyLongTrailingIdx, BodyShortTrailingIdx, lookbackTotal; /* 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(!inOpen||!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ if( optInPenetration == TA_REAL_DEFAULT ) /* Generated */ optInPenetration = 3.000000e-1; /* Generated */ else if( (optInPenetration < 0.000000e+0) || (optInPenetration > 3.000000e+37) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outInteger ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(CDLMORNINGDOJISTAR)(optInPenetration); /* 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 */ BodyLongPeriodTotal = 0; /* Generated */ BodyDojiPeriodTotal = 0; /* Generated */ BodyShortPeriodTotal = 0; /* Generated */ BodyLongTrailingIdx = startIdx -2 - TA_CANDLEAVGPERIOD(BodyLong); /* Generated */ BodyDojiTrailingIdx = startIdx -1 - TA_CANDLEAVGPERIOD(BodyDoji); /* Generated */ BodyShortTrailingIdx = startIdx - TA_CANDLEAVGPERIOD(BodyShort); /* Generated */ i = BodyLongTrailingIdx; /* Generated */ while( i < startIdx-2 ) { /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = BodyDojiTrailingIdx; /* Generated */ while( i < startIdx-1 ) { /* Generated */ BodyDojiPeriodTotal += TA_CANDLERANGE( BodyDoji, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = BodyShortTrailingIdx; /* Generated */ while( i < startIdx ) { /* Generated */ BodyShortPeriodTotal += TA_CANDLERANGE( BodyShort, i ); /* Generated */ i++; /* Generated */ } /* Generated */ i = startIdx; /* Generated */ outIdx = 0; /* Generated */ #ifdef TA_LIB_PRO /* Generated */ #else /* Generated */ do /* Generated */ { /* Generated */ if( TA_REALBODY(i-2) > TA_CANDLEAVERAGE( BodyLong, BodyLongPeriodTotal, i-2 ) && // 1st: long /* Generated */ TA_CANDLECOLOR(i-2) == -1 && // black /* Generated */ TA_REALBODY(i-1) <= TA_CANDLEAVERAGE( BodyDoji, BodyDojiPeriodTotal, i-1 ) && // 2nd: doji /* Generated */ TA_REALBODYGAPDOWN(i-1,i-2) && // gapping down /* Generated */ TA_REALBODY(i) > TA_CANDLEAVERAGE( BodyShort, BodyShortPeriodTotal, i ) && // 3rd: longer than short /* Generated */ TA_CANDLECOLOR(i) == 1 && // white real body /* Generated */ inClose[i] > inClose[i-2] + TA_REALBODY(i-2) * optInPenetration // closing well within 1st rb /* Generated */ ) /* Generated */ outInteger[outIdx++] = 100; /* Generated */ else /* Generated */ outInteger[outIdx++] = 0; /* Generated */ BodyLongPeriodTotal += TA_CANDLERANGE( BodyLong, i-2 ) - TA_CANDLERANGE( BodyLong, BodyLongTrailingIdx ); /* Generated */ BodyDojiPeriodTotal += TA_CANDLERANGE( BodyDoji, i-1 ) - TA_CANDLERANGE( BodyDoji, BodyDojiTrailingIdx ); /* Generated */ BodyShortPeriodTotal += TA_CANDLERANGE( BodyShort, i ) - TA_CANDLERANGE( BodyShort, BodyShortTrailingIdx ); /* Generated */ i++; /* Generated */ BodyLongTrailingIdx++; /* Generated */ BodyDojiTrailingIdx++; /* Generated */ BodyShortTrailingIdx++; /* Generated */ } while( i <= endIdx ); /* Generated */ #endif /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outIdx; /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }