function update_all_daily_data() { $status = ''; $query = mysql_query("SELECT * FROM stocks"); while ($array = mysql_fetch_array($query)) { $stock = new Stock($array); if (update_stock_daily($stock->getTicker())) { $status .= 'Successfully Updated all stock info for ' . $stock->getTicker() . '<br />'; } else { $status .= 'Failed to update stock ' . $stock->getTicker() . '<br />'; } } return $status; }
/** * Will only deactivate if latest trade was 0 and last 5 days was also 0. */ function deactivateStock($stock_id) { $stock = new Stock($stock_id, false); //Make sure stock exists. if ($stock->getId() < 0) { return ""; } //Don't do anything if already inactive if ($stock->getStatus() == STATUS_INACTIVE) { return $stock->getTicker() . "(" . $stock->getId() . ") was already inactive."; } if (update_stock_info($stock->getTicker())) { //Only need to get new data if was updated. $stock = new Stock($stock_id, false); } if ($stock->getLastTrade() > 0.05) { return ""; } update_stock_daily($stock->getTicker()); $stock = new Stock($stock_id, true); $arr = $stock->getDailyData(); if (sizeof($arr) < 5) { //If in here, we don't have enough data which means stock is probably a weird derivative. $stock->setStatus(STATUS_INACTIVE); $stock->persist(); return "Removed Stock " . $stock->getTicker() . " (" . $stock->getId() . ") due to not enough daily data."; } //Make sure has been less than 0.05 for quite some time. if ($arr[0]->getClose() < 0.05 && $arr[1]->getClose() < 0.05 && $arr[2]->getClose() < 0.05 && $arr[3]->getClose() < 0.05) { $stock->setStatus(STATUS_INACTIVE); $stock->persist(); return "Removed Stock " . $stock->getTicker() . " (" . $stock->getId() . ") due to a last closing price of \$" . $stock->getLastTrade(); } return ""; }