def TBP_STD(security_list, check_date, timeperiod=30, unit='1d', include_now=True, fq_ref_date=None):
    '''
    计算公式：
        APX:=(H+L+C)/3;
        TR0:=MAX(H-L,MAX(ABS(H-REF(C,1)),ABS(L-REF(C,1))));
        MF0:=C-REF(C,2);
        MF1:=REF(MF0,1);
        MF2:=REF(MF0,2);
        DIRECT1:=BARSLAST(MF0>MF1 AND MF0>MF2);
        DIRECT2:=BARSLAST(MF0<MF1 AND MF0<MF2);
        DIRECT0:=IF(DIRECT1<DIRECT2,100,-100);
        TBP:REF(REF(C,1)+IF(DIRECT0>50,MIN(MF0,MF1),MAX(MF0,MF1)),1);
        多头获利:REF(IF(DIRECT0>50,APX*2-L,DRAWNULL),1),NODRAW;
        多头停损:REF(IF(DIRECT0>50,APX-TR0,DRAWNULL),1),NODRAW;
        空头回补:REF(IF(DIRECT0<-50,APX*2-H,DRAWNULL),1),NODRAW;
        空头停损:REF(IF(DIRECT0<-50,APX+TR0,DRAWNULL),1),NODRAW;
        APX赋值:(最高价+最低价+收盘价)/3
        TR0赋值:最高价-最低价和最高价-1日前的收盘价的绝对值和最低价-1日前的收盘价的绝对值的较大值的较大值
        MF0赋值:收盘价-2日前的收盘价
        MF1赋值:1日前的MF0
        MF2赋值:2日前的MF0
        DIRECT1赋值:上次MF0>MF1ANDMF0>MF2距今天数
        DIRECT2赋值:上次MF0<MF1ANDMF0<MF2距今天数
        DIRECT0赋值:如果DIRECT1<DIRECT2,返回100,否则返回-100
        输出TBP:1日前的1日前的收盘价+如果DIRECT0>50,返回MF0和MF1的较小值,否则返回MF0和MF1的较大值
        输出多头获利:1日前的如果DIRECT0>50,返回APX*2-最低价,否则返回无效数,NODRAW
        输出多头停损:1日前的如果DIRECT0>50,返回APX-TR0,否则返回无效数,NODRAW
        输出空头回补:1日前的如果DIRECT0<-50,返回APX*2-最高价,否则返回无效数,NODRAW
        输出空头停损:1日前的如果DIRECT0<-50,返回APX+TR0,否则返回无效数,NODRAW
    输入：
        security_list:股票列表
        check_date：要查询数据的日期
        timeperiod：统计的天数
    输出：
        tbp，多头获利，多头停损，空头回补和空头停损 的值。
    输出结果类型：
        字典(dict)：键(key)为股票代码，值(value)为数据。
    '''
    func_name = sys._getframe().f_code.co_name
    check_date = to_date_str(check_date)
    fq_ref_date = to_date_str(fq_ref_date)
    return JQDataClient.instance().get_technical_analysis(**locals())
计算公式：
APX:=(H+L+C)/3;
TR0:=MAX(H-L,MAX(ABS(H-REF(C,1)),ABS(L-REF(C,1))));
MF0:=C-REF(C,2);
MF1:=REF(MF0,1);
MF2:=REF(MF0,2);
DIRECT1:=BARSLAST(MF0>MF1 AND MF0>MF2);
DIRECT2:=BARSLAST(MF0<MF1 AND MF0<MF2);
DIRECT0:=IF(DIRECT1<DIRECT2,100,-100);
TBP:REF(REF(C,1)+IF(DIRECT0>50,MIN(MF0,MF1),MAX(MF0,MF1)),1);
多头获利:REF(IF(DIRECT0>50,APX*2-L,DRAWNULL),1),NODRAW;
多头停损:REF(IF(DIRECT0>50,APX-TR0,DRAWNULL),1),NODRAW;
空头回补:REF(IF(DIRECT0<-50,APX*2-H,DRAWNULL),1),NODRAW;
空头停损:REF(IF(DIRECT0<-50,APX+TR0,DRAWNULL),1),NODRAW;
APX赋值:(最高价+最低价+收盘价)/3
TR0赋值:最高价-最低价和最高价-1日前的收盘价的绝对值和最低价-1日前的收盘价的绝对值的较大值的较大值
MF0赋值:收盘价-2日前的收盘价
MF1赋值:1日前的MF0
MF2赋值:2日前的MF0
DIRECT1赋值:上次MF0>MF1ANDMF0>MF2距今天数
DIRECT2赋值:上次MF0<MF1ANDMF0<MF2距今天数
DIRECT0赋值:如果DIRECT1<DIRECT2,返回100,否则返回-100
输出TBP:1日前的1日前的收盘价+如果DIRECT0>50,返回MF0和MF1的较小值,否则返回MF0和MF1的较大值
输出多头获利:1日前的如果DIRECT0>50,返回APX*2-最低价,否则返回无效数,NODRAW
输出多头停损:1日前的如果DIRECT0>50,返回APX-TR0,否则返回无效数,NODRAW
输出空头回补:1日前的如果DIRECT0<-50,返回APX*2-最高价,否则返回无效数,NODRAW
输出空头停损:1日前的如果DIRECT0<-50,返回APX+TR0,否则返回无效数,NODRAW
输入：
security_list:股票列表
check_date：要查询数据的日期
timeperiod：统计的天数
输出：
tbp，多头获利，多头停损，空头回补和空头停损 的值。
输出结果类型：
字典(dict)：键(key)为股票代码，值(value)为数据。
jqdatasdk/technical_analysis.py