def CFJT(security_list, check_date, MM=200, unit='1d', include_now=True, fq_ref_date=None):
    '''
    计算公式：
        突破:=REF(EMA(C,14),1);
        A1X:=(EMA(C,10)-突破)/突破*100;
        多方:=IF(A1X>=0,REF(EMA(C,10),BARSLAST(CROSS(A1X,0))+1),DRAWNULL);
        空方:=IF(A1X<0,REF(EMA(C,10),BARSLAST(CROSS(0,A1X))+1),DRAWNULL);
        突破赋值:1日前的收盘价的14日指数移动平均
        A1X赋值:(收盘价的10日指数移动平均-突破)/突破*100
        多方赋值:如果A1X>=0,返回上次A1X上穿0距今天数+1日前的收盘价的10日指数移动平均,否则返回无效数
        空方赋值:如果A1X<0,返回上次0上穿A1X距今天数+1日前的收盘价的10日指数移动平均,否则返回无效数
    输入：
        security_list:股票列表
        check_date：要查询数据的日期
        MM：统计的天数 MM
    输出：
        突破，A1X，多方和空方 的值。
    输出结果类型：
        字典(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())
计算公式：
突破:=REF(EMA(C,14),1);
A1X:=(EMA(C,10)-突破)/突破*100;
多方:=IF(A1X>=0,REF(EMA(C,10),BARSLAST(CROSS(A1X,0))+1),DRAWNULL);
空方:=IF(A1X<0,REF(EMA(C,10),BARSLAST(CROSS(0,A1X))+1),DRAWNULL);
突破赋值:1日前的收盘价的14日指数移动平均
A1X赋值:(收盘价的10日指数移动平均-突破)/突破*100
多方赋值:如果A1X>=0,返回上次A1X上穿0距今天数+1日前的收盘价的10日指数移动平均,否则返回无效数
空方赋值:如果A1X<0,返回上次0上穿A1X距今天数+1日前的收盘价的10日指数移动平均,否则返回无效数
输入：
security_list:股票列表
check_date：要查询数据的日期
MM：统计的天数 MM
输出：
突破，A1X，多方和空方 的值。
输出结果类型：
字典(dict)：键(key)为股票代码，值(value)为数据。
jqdatasdk/technical_analysis.py