def XS2(security_list, check_date, N=102, M=7, unit='1d', include_now=True, fq_ref_date=None):
    '''
    计算公式：
        AA:=MA((2*CLOSE+HIGH+LOW)/4,5);
        通道1:AA*N/100;
        通道2:AA*(200-N)/100;
        CC:=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,20))/MA(CLOSE,20);
        DD:=DMA(CLOSE,CC);
        通道3:(1+M/100)*DD;
        通道4:(1-M/100)*DD;
        AA赋值:(2*收盘价+最高价+最低价)/4的5日简单移动平均
        输出 通道1:AA*N/100
        输出 通道2:AA*(200-N)/100
        CC赋值:(2*收盘价+最高价+最低价)/4-收盘价的20日简单移动平均的绝对值/收盘价的20日简单移动平均
        DD赋值:以CC为权重收盘价的动态移动平均
        输出 通道3:(1+M/100)*DD
        输出 通道4:(1-M/100)*DD
    输入：
        security_list:股票列表
        check_date：要查询数据的日期
        N：统计的天数
        M：统计的天数
    输出：
        PASS1, PASS2, PASS3, PASS4 的值。
    输出结果类型：
        字典(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())
计算公式：
AA:=MA((2*CLOSE+HIGH+LOW)/4,5);
通道1:AA*N/100;
通道2:AA*(200-N)/100;
CC:=ABS((2*CLOSE+HIGH+LOW)/4-MA(CLOSE,20))/MA(CLOSE,20);
DD:=DMA(CLOSE,CC);
通道3:(1+M/100)*DD;
通道4:(1-M/100)*DD;
AA赋值:(2*收盘价+最高价+最低价)/4的5日简单移动平均
输出 通道1:AA*N/100
输出 通道2:AA*(200-N)/100
CC赋值:(2*收盘价+最高价+最低价)/4-收盘价的20日简单移动平均的绝对值/收盘价的20日简单移动平均
DD赋值:以CC为权重收盘价的动态移动平均
输出 通道3:(1+M/100)*DD
输出 通道4:(1-M/100)*DD
输入：
security_list:股票列表
check_date：要查询数据的日期
N：统计的天数
M：统计的天数
输出：
PASS1, PASS2, PASS3, PASS4 的值。
输出结果类型：
字典(dict)：键(key)为股票代码，值(value)为数据
jqdatasdk/technical_analysis.py