Ejemplo n.º 1
0
/* 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 */ }
Ejemplo n.º 2
0
/* 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);
}
Ejemplo n.º 3
0
/* 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);
}
Ejemplo n.º 4
0
/* 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 */ }
Ejemplo n.º 5
0
/* 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 */ }
Ejemplo n.º 6
0
/* 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;
}
Ejemplo n.º 7
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;
}
Ejemplo n.º 8
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);
	};
Ejemplo n.º 9
0
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;
}
Ejemplo n.º 10
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 */ }
Ejemplo n.º 11
0
/* 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 */ }
Ejemplo n.º 12
0
/* 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 */ }
Ejemplo n.º 13
0
/* 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 */ }
Ejemplo n.º 14
0
/* 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 */ }
Ejemplo n.º 15
0
/* 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 */ }
Ejemplo n.º 16
0
/* 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 */ }
Ejemplo n.º 17
0
/* 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 */    }
Ejemplo n.º 18
0
/* 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 */ }
Ejemplo n.º 19
0
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)
}
Ejemplo n.º 20
0
/* 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;
}
Ejemplo n.º 21
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 */ }