Esempio n. 1
0
 /**
  * @param array $tickers
  * @param OutputInterface $output
  * @param int $i
  * @param int|null $m
  */
 private function nDayReturns(array $tickers, OutputInterface $output, $i, $m = null)
 {
     foreach ($tickers as $ticker) {
         $this->tickerStats->getNDayReturns($this->yahooFinance->getData($ticker, true, false, true), $i, $m, function ($getNDayReturns) use($ticker, $output) {
             foreach ($getNDayReturns as $n => $returns) {
                 foreach ($returns as $startDate => $return) {
                     $r = $return * 100;
                     $output->writeln("{$ticker} {$n} day {$startDate} {$r}%");
                 }
             }
         });
     }
 }
Esempio n. 2
0
 */
$app->get('/', function (Request $request, Response $response) {
    return $this->view->render($response, "index.html");
});
/**
 * GET /n_day_average_returns
 */
$app->get("/api/n_day_average_returns", function (Request $request, Response $response) {
    $config = new Config(__DIR__ . '/config/config.json');
    $guzzleClient = new GuzzleClient(['base_uri' => $config->get('yahooFinanceBaseUrl')]);
    $fileSystem = new Filesystem(new LocalAdapter(__DIR__ . '/' . $config->get('dataDir')));
    $yahooFinance = new YahooFinance($guzzleClient, $fileSystem);
    $tickerStats = new TickerStats(new Math());
    $params = $request->getQueryParams();
    $tickers = array_key_exists('tickers', $params) ? $params['tickers'] : [];
    $i = array_key_exists('i', $params) ? (int) $params['i'] : [];
    //$m = (int) $request->get('m',null) ?: null;
    $out = [];
    foreach ($tickers as $ticker) {
        $tickerStats->getNDayReturns($yahooFinance->getData($ticker, true, true, true), $i, null, function ($avgReturns) use($ticker, &$out) {
            foreach ($avgReturns as $nDayAvgReturn => $return) {
                if (!isset($out[$ticker])) {
                    $out[$ticker] = [];
                }
                $out[$ticker] = $return;
            }
        });
    }
    return $response->withJson($out);
});
$app->run();