Пример #1
0
 /**
  * @param array $tickers
  * @param OutputInterface $output
  * @param int $i
  * @param int|null $m
  */
 private function nDayAverageReturns(array $tickers, OutputInterface $output, $i, $m = null)
 {
     foreach ($tickers as $ticker) {
         $this->tickerStats->getNDayAverageReturns($this->yahooFinance->getData($ticker, true, true, true), $i, $m, function ($avgReturns) use($ticker, $output) {
             foreach ($avgReturns as $nDayAvgReturn => $return) {
                 $r = $return * 100;
                 $output->writeln("{$ticker} avg {$nDayAvgReturn} day {$r}%");
             }
         });
     }
 }
Пример #2
0
$container['view'] = new \Slim\Views\PhpRenderer("web/");
/**
 * Index Page
 */
$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;
            }
        });
    }