How to get median of unscaled volume for each of the months in past one year for a stock

For a stock I want to get the median values of it's daily shares traded ( unscaled volume) over each of the months for the past one year.
1. I am aware of the field "TR.Volume" to extract Volume data for a given query date but this gives me Volume w.r.t Lot size, I want unscaled volume to get daily total number of shares traded.

2. For a similar exercise to get Quarterly Total Turnover Data ( Total Turnover over a quarter) for past 24 months I use the fields ['TR.TURNOVER.periodenddate', 'TR.TURNOVER(CALCMETHOD=SUM).value'], with parameters {'SDate':query_StartDate,'EDate':query_EndDate, 'Frq':'FQ', 'tz':'HKG'} where query_StartDate and query_EndDate are user inputs.

3. I have tried using field 'TR.Volume(CALCMETHOD=MEDIAN).value' but it is an unrecognized field

Best Answer

  • Alex Putkov.1
    Answer ✓

    @yogesh.sharma
    To get unscaled volume use the field TR.ACCUMULATEDVOLUME.
    There's no calc method to return the median monthly volume, so your options are to either retrieve the daily volume for 12 months and calculate median for each month in your script. Or apply the MEDIAN function to daily volume for a given month. Then to get the monthly median volume for the last 12 months you'll need to submit 12 requests. E.g. for the current month the request is

    ek.get_data(["0001.HK"],["MEDIAN(TR.ACCUMULATEDVOLUME(SDate=0,EDate=-1CM)])
    and for the previous month it is
    ek.get_data(["0001.HK"],["MEDIAN(TR.ACCUMULATEDVOLUME(SDate=-1CM,EDate=-2CM)])