123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- login(`admin, `123456)
- loadPlugin("ODBC")
- clearCachedModules()
- use fundit::dataPuller
- use fundit::returnCalculator
- use fundit::indicatorCalculator
- use fundit::navCalculator
- very_old_date = 1990.01.01;
- /* TEST CASE 1, calculation_method = 1 */
- portfolio_ids = '166002,166114';
- cal_method = 1;
- /* TEST CASE 2, calculation_method = 2
- portfolio_ids = '364771';
- portfolio_ids = '364771,364772,364773,364774,364775,364776,364777,365070,364778,364779,365179,365180,365181,365164,365189,365198,365199,365200,365204,365205,365165,365166,365186,365187,365197,365201,365206,365167,365168,365171,365182,365183,365169,365170,365172,365173,365174,365175,365178,365194,365176,365177,365184,365185,365188,365190,365191,365192,365193,365195,365196,365202,365203';
- cal_method = 2;
- */
- // calculate navs
- tb_portfolio_ret = cal_portfolio_return(portfolio_ids, very_old_date, cal_method);
- tb_portfolio_ret.sortBy!(['portfolio_id', 'price_date'], [1, 1]);
- select portfolio_id, price_date.month(), price_date.last(), (1+ret).prod()-1, nav.last()
- from tb_portfolio_ret
- where price_date <= end_day
- group by portfolio_id, price_date.month()
- // calculate indicators
- end_day = 2024.08.31
- bmk_ret = SELECT fund_id, temporalParse(end_date, 'yyyy-MM') AS end_date, ret FROM get_fund_monthly_ret("'IN00000008'", 1990.01.01, end_day, true);
- risk_free_rate = SELECT fund_id, temporalParse(end_date, 'yyyy-MM') AS end_date, ret FROM get_risk_free_rate("'IN0000000M'", 1990.01.01, end_day);
- // calculate monthly return
- // funky thing is you can't use "AS" for the grouping columns?
- tb_ret = SELECT portfolio_id, price_date.month(), price_date.last() AS price_date, (1+ret).prod()-1 AS ret, nav.last() AS nav
- FROM tb_portfolio_ret
- WHERE price_date <= end_day
- GROUP BY portfolio_id, price_date.month();
- tb_ret.rename!(['portfolio_id', 'month_price_date'], ['entity_id', 'end_date']);
- tb_indicators = cal_all_trailing_indicators(tb_ret, end_day, bmk_ret, risk_free_rate, 'm');
- select * from tb_indicators[8]
|