def VR(security_list, check_date, N=26, M=6, unit='1d', include_now=True, fq_ref_date=None):
    '''
    计算公式：
        TH:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,0),N);
        TL:=SUM(IF(CLOSE<REF(CLOSE,1),VOL,0),N);
        TQ:=SUM(IF(CLOSE=REF(CLOSE,1),VOL,0),N);
        VR:100*(TH*2+TQ)/(TL*2+TQ);
        MAVR:MA(VR,M);
        TH赋值:如果收盘价>1日前的收盘价,返回成交量(手),否则返回0的N日累和
        TL赋值:如果收盘价<1日前的收盘价,返回成交量(手),否则返回0的N日累和
        TQ赋值:如果收盘价=1日前的收盘价,返回成交量(手),否则返回0的N日累和
        输出VR:100*(TH*2+TQ)/(TL*2+TQ)
        输出MAVR:VR的M日简单移动平均
    输入：
        security_list:股票列表
        check_date：要查询数据的日期
        N：统计的天数 N
        M：统计的天数 M
    输出：
        VR和MAVR 的值。
    输出结果类型：
        字典(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())
计算公式：
TH:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,0),N);
TL:=SUM(IF(CLOSE<REF(CLOSE,1),VOL,0),N);
TQ:=SUM(IF(CLOSE=REF(CLOSE,1),VOL,0),N);
VR:100*(TH*2+TQ)/(TL*2+TQ);
MAVR:MA(VR,M);
TH赋值:如果收盘价>1日前的收盘价,返回成交量(手),否则返回0的N日累和
TL赋值:如果收盘价<1日前的收盘价,返回成交量(手),否则返回0的N日累和
TQ赋值:如果收盘价=1日前的收盘价,返回成交量(手),否则返回0的N日累和
输出VR:100*(TH*2+TQ)/(TL*2+TQ)
输出MAVR:VR的M日简单移动平均
输入：
security_list:股票列表
check_date：要查询数据的日期
N：统计的天数 N
M：统计的天数 M
输出：
VR和MAVR 的值。
输出结果类型：
字典(dict)：键(key)为股票代码，值(value)为数据。
jqdatasdk/technical_analysis.py