Sample_cal_indicators.dos 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. login(`admin, `123456)
  2. loadPlugin("ODBC")
  3. clearCachedModules()
  4. use fundit::fundCalculator
  5. use fundit::dataPuller
  6. use fundit::returnCalculator
  7. use fundit::indicatorCalculator
  8. end_day = 2024.06.28
  9. //end_day = today()
  10. 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);
  11. 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);
  12. /* TEST CASE 1 */
  13. // fund_ids = "'HF000004KN','HF000103EU','HF00018WXG'";
  14. /* TEST CASE 2 */
  15. tb_updated_funds = get_fund_list_by_nav_updatetime(null, 2024.07.19T10:00:00);
  16. // take 1000 funds for testing
  17. fund_ids = tb_updated_funds.fund_id[0:1000].concat("','")$STRING;
  18. fund_ids = "'" + fund_ids + "'";
  19. tb_ret = SELECT * FROM cal_hedge_fund_returns(fund_ids, true) WHERE price_date <= end_day;
  20. tb_ret.rename!(['fund_id', 'cumulative_nav'], ['entity_id', 'nav']);
  21. tb_indicators = cal_all_trailing_indicators(tb_ret, end_day, bmk_ret, risk_free_rate, 'm');
  22. SELECT * FROM tb_indicators[0];