#include <stddef.h>
#include "ta_abstract.h"
#include "ta_def_ui.h"
const TA_OutputParameterInfo TA_DEF_UI_Output_Real_ACCBANDS_Middle =
{ TA_Output_Real, "outRealMiddleBand", TA_OUT_LINE };
const TA_OutputParameterInfo TA_DEF_UI_Output_Real_ACCBANDS_Upper =
{ TA_Output_Real, "outRealUpperBand", TA_OUT_UPPER_LIMIT };
const TA_OutputParameterInfo TA_DEF_UI_Output_Real_ACCBANDS_Lower =
{ TA_Output_Real, "outRealLowerBand", TA_OUT_LOWER_LIMIT };
static const TA_InputParameterInfo *TA_ACCBANDS_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLC,
NULL
};
static const TA_OutputParameterInfo *TA_ACCBANDS_Outputs[] =
{
&TA_DEF_UI_Output_Real_ACCBANDS_Upper,
&TA_DEF_UI_Output_Real_ACCBANDS_Middle,
&TA_DEF_UI_Output_Real_ACCBANDS_Lower,
NULL
};
static const TA_OptInputParameterInfo *TA_ACCBANDS_OptInputs[] =
{ &TA_DEF_UI_TimePeriod_20_MINIMUM2,
NULL
};
DEF_FUNCTION( ACCBANDS,
TA_GroupId_OverlapStudies,
"Acceleration Bands",
"Accbands",
TA_FUNC_FLG_OVERLAP
);
DEF_MATH_UNARY_OPERATOR( ACOS, "Vector Trigonometric ACos", "Acos" )
static const TA_InputParameterInfo *TA_AD_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLCV,
NULL
};
static const TA_OutputParameterInfo *TA_AD_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_AD_OptInputs[] =
{
NULL
};
DEF_FUNCTION( AD,
TA_GroupId_VolumeIndicators,
"Chaikin A/D Line",
"Ad",
0
);
DEF_MATH_BINARY_OPERATOR( ADD, "Vector Arithmetic Add", "Add" )
static const TA_OptInputParameterInfo TA_DEF_UI_FastADOSC_Period =
{
TA_OptInput_IntegerRange,
"optInFastPeriod",
0,
"Fast Period",
(const void *)&TA_DEF_TimePeriod_Positive_Minimum2,
3,
"Number of period for the fast MA",
NULL
};
static const TA_OptInputParameterInfo TA_DEF_UI_SlowADOSC_Period =
{
TA_OptInput_IntegerRange,
"optInSlowPeriod",
0,
"Slow Period",
(const void *)&TA_DEF_TimePeriod_Positive_Minimum2,
10,
"Number of period for the slow MA",
NULL
};
static const TA_InputParameterInfo *TA_ADOSC_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLCV,
NULL
};
static const TA_OutputParameterInfo *TA_ADOSC_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_ADOSC_OptInputs[] =
{
&TA_DEF_UI_FastADOSC_Period,
&TA_DEF_UI_SlowADOSC_Period,
NULL
};
DEF_FUNCTION( ADOSC,
TA_GroupId_VolumeIndicators,
"Chaikin A/D Oscillator",
"AdOsc",
0
);
static const TA_InputParameterInfo *TA_ADX_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLC,
NULL
};
static const TA_OutputParameterInfo *TA_ADX_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_ADX_OptInputs[] =
{ &TA_DEF_UI_TimePeriod_14_MINIMUM2,
NULL
};
DEF_FUNCTION( ADX,
TA_GroupId_MomentumIndicators,
"Average Directional Movement Index",
"Adx",
TA_FUNC_FLG_UNST_PER
);
static const TA_InputParameterInfo *TA_ADXR_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLC,
NULL
};
static const TA_OutputParameterInfo *TA_ADXR_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_ADXR_OptInputs[] =
{ &TA_DEF_UI_TimePeriod_14_MINIMUM2,
NULL
};
DEF_FUNCTION( ADXR,
TA_GroupId_MomentumIndicators,
"Average Directional Movement Index Rating",
"Adxr",
TA_FUNC_FLG_UNST_PER
);
static const TA_InputParameterInfo *TA_APO_Inputs[] =
{
&TA_DEF_UI_Input_Real,
NULL
};
static const TA_OutputParameterInfo *TA_APO_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_APO_OptInputs[] =
{ &TA_DEF_UI_Fast_Period,
&TA_DEF_UI_Slow_Period,
&TA_DEF_UI_MA_Method,
NULL
};
DEF_FUNCTION( APO,
TA_GroupId_MomentumIndicators,
"Absolute Price Oscillator",
"Apo",
0
);
const TA_OutputParameterInfo TA_DEF_UI_Output_Real_AroonUp =
{ TA_Output_Real, "outAroonDown", TA_OUT_DASH_LINE };
const TA_OutputParameterInfo TA_DEF_UI_Output_Real_AroonDown =
{ TA_Output_Real, "outAroonUp", TA_OUT_LINE };
static const TA_InputParameterInfo *TA_AROON_Inputs[] =
{
&TA_DEF_UI_Input_Price_HL,
NULL
};
static const TA_OutputParameterInfo *TA_AROON_Outputs[] =
{
&TA_DEF_UI_Output_Real_AroonUp,
&TA_DEF_UI_Output_Real_AroonDown,
NULL
};
static const TA_OptInputParameterInfo *TA_AROON_OptInputs[] =
{
&TA_DEF_UI_TimePeriod_14_MINIMUM2,
NULL
};
DEF_FUNCTION( AROON,
TA_GroupId_MomentumIndicators,
"Aroon",
"Aroon",
0
);
static const TA_InputParameterInfo *TA_AROONOSC_Inputs[] =
{
&TA_DEF_UI_Input_Price_HL,
NULL
};
static const TA_OutputParameterInfo *TA_AROONOSC_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_AROONOSC_OptInputs[] =
{
&TA_DEF_UI_TimePeriod_14_MINIMUM2,
NULL
};
DEF_FUNCTION( AROONOSC,
TA_GroupId_MomentumIndicators,
"Aroon Oscillator",
"AroonOsc",
0
);
DEF_MATH_UNARY_OPERATOR( ASIN, "Vector Trigonometric ASin", "Asin" )
DEF_MATH_UNARY_OPERATOR( ATAN, "Vector Trigonometric ATan", "Atan" )
static const TA_InputParameterInfo *TA_ATR_Inputs[] =
{
&TA_DEF_UI_Input_Price_HLC,
NULL
};
static const TA_OutputParameterInfo *TA_ATR_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_ATR_OptInputs[] =
{ &TA_DEF_UI_TimePeriod_14,
NULL
};
DEF_FUNCTION( ATR,
TA_GroupId_VolatilityIndicators,
"Average True Range",
"Atr",
TA_FUNC_FLG_UNST_PER
);
static const TA_InputParameterInfo *TA_AVGPRICE_Inputs[] =
{
&TA_DEF_UI_Input_Price_OHLC,
NULL
};
static const TA_OutputParameterInfo *TA_AVGPRICE_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_AVGPRICE_OptInputs[] = { NULL };
DEF_FUNCTION( AVGPRICE,
TA_GroupId_PriceTransform,
"Average Price",
"AvgPrice",
TA_FUNC_FLG_OVERLAP
);
static const TA_InputParameterInfo *TA_AVGDEV_Inputs[] =
{
&TA_DEF_UI_Input_Real,
NULL
};
static const TA_OutputParameterInfo *TA_AVGDEV_Outputs[] =
{
&TA_DEF_UI_Output_Real,
NULL
};
static const TA_OptInputParameterInfo *TA_AVGDEV_OptInputs[] =
{
&TA_DEF_UI_TimePeriod_14_MINIMUM2,
NULL
};
DEF_FUNCTION( AVGDEV,
TA_GroupId_PriceTransform,
"Average Deviation",
"AvgDev",
TA_FUNC_FLG_OVERLAP
);
const TA_FuncDef *TA_DEF_TableA[] =
{
ADD_TO_TABLE(ACCBANDS),
ADD_TO_TABLE(ACOS),
ADD_TO_TABLE(AD),
ADD_TO_TABLE(ADD),
ADD_TO_TABLE(ADOSC),
ADD_TO_TABLE(ADX),
ADD_TO_TABLE(ADXR),
ADD_TO_TABLE(APO),
ADD_TO_TABLE(AROON),
ADD_TO_TABLE(AROONOSC),
ADD_TO_TABLE(ASIN),
ADD_TO_TABLE(ATAN),
ADD_TO_TABLE(ATR),
ADD_TO_TABLE(AVGPRICE),
ADD_TO_TABLE(AVGDEV),
NULL
};
const unsigned int TA_DEF_TableASize =
((sizeof(TA_DEF_TableA)/sizeof(TA_FuncDef *))-1);