📄 table_m.c
字号:
/* TA-LIB Copyright (c) 1999-2007, Mario Fortier * All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * - Neither name of author nor the names of its contributors * may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//********************************************************************* * This file contains only TA functions starting with the letter 'M' * *********************************************************************/#include <stddef.h>#include "ta_abstract.h"#include "ta_def_ui.h"/* Follow the 3 steps defined below for adding a new TA Function to this * file. *//**************************************************************************** * Step 1 - Define here the interface to your TA functions with * the macro DEF_FUNCTION. * ****************************************************************************/const TA_OptInputParameterInfo TA_DEF_UI_Signal_Period ={ TA_OptInput_IntegerRange, /* type */ "optInSignalPeriod", /* paramName */ 0, /* flags */ "Signal Period", /* displayName */ (const void *)&TA_DEF_TimePeriod_Positive, /* dataSet */ 9, /* defaultValue */ "Smoothing for the signal line (nb of period)", /* hint */ NULL /* CamelCase name */};const TA_OptInputParameterInfo TA_DEF_UI_Slow_MA_Type ={ TA_OptInput_IntegerList, /* type */ "optInSlowMAType", /* paramName */ 0, /* flags */ "Slow MA", /* displayName */ (const void *)&TA_MA_TypeList, /* dataSet */ 0, /* defaultValue = simple average */ "Type of Moving Average for slow MA", /* hint */ NULL /* CamelCase name */};const TA_OptInputParameterInfo TA_DEF_UI_Fast_MA_Type ={ TA_OptInput_IntegerList, /* type */ "optInFastMAType", /* paramName */ 0, /* flags */ "Fast MA", /* displayName */ (const void *)&TA_MA_TypeList, /* dataSet */ 0, /* defaultValue = simple average */ "Type of Moving Average for fast MA", /* hint */ NULL /* CamelCase name */};const TA_OptInputParameterInfo TA_DEF_UI_Signal_MA_Type ={ TA_OptInput_IntegerList, /* type */ "optInSignalMAType", /* paramName */ 0, /* flags */ "Signal MA", /* displayName */ (const void *)&TA_MA_TypeList, /* dataSet */ 0, /* defaultValue = simple average */ "Type of Moving Average for signal line", /* hint */ NULL /* CamelCase name */};/* MA BEGIN */static const TA_InputParameterInfo *TA_MA_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MA_Outputs[] ={ &TA_DEF_UI_Output_Real, NULL};static const TA_OptInputParameterInfo *TA_MA_OptInputs[] ={ &TA_DEF_UI_TimePeriod_30, &TA_DEF_UI_MA_Method, NULL};DEF_FUNCTION( MA, /* name */ TA_GroupId_OverlapStudies, /* groupId */ "Moving average", /* hint */ "MovingAverage", /* CamelCase name */ TA_FUNC_FLG_OVERLAP /* flags */ );/* MA END *//* MACD BEGIN */const TA_OutputParameterInfo TA_DEF_UI_Output_Real_MACD = { TA_Output_Real, "outMACD", TA_OUT_LINE };const TA_OutputParameterInfo TA_DEF_UI_Output_Real_MACDSignal = { TA_Output_Real, "outMACDSignal", TA_OUT_DASH_LINE };const TA_OutputParameterInfo TA_DEF_UI_Output_Real_MACDHist = { TA_Output_Real, "outMACDHist", TA_OUT_HISTO };static const TA_InputParameterInfo *TA_MACD_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MACD_Outputs[] ={ &TA_DEF_UI_Output_Real_MACD, &TA_DEF_UI_Output_Real_MACDSignal, &TA_DEF_UI_Output_Real_MACDHist, NULL};static const TA_OptInputParameterInfo *TA_MACD_OptInputs[] ={ &TA_DEF_UI_Fast_Period, &TA_DEF_UI_Slow_Period, &TA_DEF_UI_Signal_Period, NULL};DEF_FUNCTION( MACD, /* name */ TA_GroupId_MomentumIndicators, /* groupId */ "Moving Average Convergence/Divergence", /* hint */ "Macd", /* CamelCase name */ 0 /* flags */ );/* MACD END *//* MACDEXT BEGIN */static const TA_InputParameterInfo *TA_MACDEXT_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MACDEXT_Outputs[] ={ &TA_DEF_UI_Output_Real_MACD, &TA_DEF_UI_Output_Real_MACDSignal, &TA_DEF_UI_Output_Real_MACDHist, NULL};static const TA_OptInputParameterInfo *TA_MACDEXT_OptInputs[] ={ &TA_DEF_UI_Fast_Period, &TA_DEF_UI_Fast_MA_Type, &TA_DEF_UI_Slow_Period, &TA_DEF_UI_Slow_MA_Type, &TA_DEF_UI_Signal_Period, &TA_DEF_UI_Signal_MA_Type, NULL};DEF_FUNCTION( MACDEXT, /* name */ TA_GroupId_MomentumIndicators, /* groupId */ "MACD with controllable MA type", /* hint */ "MacdExt", /* CamelCase name */ 0 /* flags */ );/* MACDEXT END *//* MACDFIX BEGIN */static const TA_InputParameterInfo *TA_MACDFIX_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MACDFIX_Outputs[] ={ &TA_DEF_UI_Output_Real_MACD, &TA_DEF_UI_Output_Real_MACDSignal, &TA_DEF_UI_Output_Real_MACDHist, NULL};static const TA_OptInputParameterInfo *TA_MACDFIX_OptInputs[] ={ &TA_DEF_UI_Signal_Period, NULL};DEF_FUNCTION( MACDFIX, /* name */ TA_GroupId_MomentumIndicators, /* groupId */ "Moving Average Convergence/Divergence Fix 12/26", /* hint */ "MacdFix", /* CamelCase name */ 0 /* flags */ );/* MACDFIX END *//* MAMA BEGIN */const TA_RealRange TA_DEF_MAMA_FastLimit ={ 0.01, /* min */ 0.99, /* max */ 2, /* precision */ 0.21, /* suggested start */ 0.80, /* suggested end */ 0.01 /* suggested increment */};const TA_RealRange TA_DEF_MAMA_SlowLimit ={ 0.01, /* min */ 0.99, /* max */ 2, /* precision */ 0.01, /* suggested start */ 0.60, /* suggested end */ 0.01 /* suggested increment */};const TA_OptInputParameterInfo TA_DEF_UI_MAMA_FastLimit ={ TA_OptInput_RealRange, /* type */ "optInFastLimit", /* paramName */ 0, /* flags */ "Fast Limit", /* displayName */ (const void *)&TA_DEF_MAMA_FastLimit, /* dataSet */ 0.5, /* defaultValue */ "Upper limit use in the adaptive algorithm", /* hint */ NULL /* CamelCase name */};const TA_OptInputParameterInfo TA_DEF_UI_MAMA_SlowLimit ={ TA_OptInput_RealRange, /* type */ "optInSlowLimit", /* paramName */ 0, /* flags */ "Slow Limit", /* displayName */ (const void *)&TA_DEF_MAMA_SlowLimit, /* dataSet */ 0.05, /* defaultValue */ "Lower limit use in the adaptive algorithm", /* hint */ NULL /* CamelCase name */};const TA_OutputParameterInfo TA_DEF_UI_Output_Real_MAMA = { TA_Output_Real, "outMAMA", TA_OUT_LINE };const TA_OutputParameterInfo TA_DEF_UI_Output_Real_FAMA = { TA_Output_Real, "outFAMA", TA_OUT_DASH_LINE };static const TA_InputParameterInfo *TA_MAMA_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MAMA_Outputs[] ={ &TA_DEF_UI_Output_Real_MAMA, &TA_DEF_UI_Output_Real_FAMA, NULL};static const TA_OptInputParameterInfo *TA_MAMA_OptInputs[] ={ &TA_DEF_UI_MAMA_FastLimit, &TA_DEF_UI_MAMA_SlowLimit, NULL};DEF_FUNCTION( MAMA, /* name */ TA_GroupId_OverlapStudies, /* groupId */ "MESA Adaptive Moving Average", /* hint */ "Mama", /* CamelCase name */ TA_FUNC_FLG_UNST_PER|TA_FUNC_FLG_OVERLAP /* flags */ );/* MAMA END *//* MAVP BEGIN */static const TA_InputParameterInfo *TA_MAVP_Inputs[] ={ &TA_DEF_UI_Input_Real, &TA_DEF_UI_Input_Periods, NULL};static const TA_OutputParameterInfo *TA_MAVP_Outputs[] ={ &TA_DEF_UI_Output_Real, NULL};static const TA_OptInputParameterInfo *TA_MAVP_OptInputs[] ={ &TA_DEF_UI_MinPeriod, &TA_DEF_UI_MaxPeriod, &TA_DEF_UI_MA_Method, NULL};DEF_FUNCTION( MAVP, /* name */ TA_GroupId_OverlapStudies, /* groupId */ "Moving average with variable period", /* hint */ "MovingAverageVariablePeriod", /* CamelCase name */ TA_FUNC_FLG_OVERLAP /* flags */ );/* MAVP END *//* MAX BEGIN */static const TA_InputParameterInfo *TA_MAX_Inputs[] ={ &TA_DEF_UI_Input_Real, NULL};static const TA_OutputParameterInfo *TA_MAX_Outputs[] ={ &TA_DEF_UI_Output_Real, NULL};static const TA_OptInputParameterInfo *TA_MAX_OptInputs[] ={ &TA_DEF_UI_TimePeriod_30_MINIMUM2, NULL};DEF_FUNCTION( MAX, /* name */ TA_GroupId_MathOperators, /* groupId */ "Highest value over a specified period", /* hint */ "Max", /* CamelCase name */ TA_FUNC_FLG_OVERLAP /* flags */ );/* MAX END *//* MAXINDEX BEGIN */static const TA_InputParameterInfo *TA_MAXINDEX_Inputs[] ={
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -