/** * Получает изображение графика за период - -0+ * @param $period - период расчета в сек. * @param $name - buy, sell */ public function getGraphImage($curtime, $period, $name, $imp_dif) { // @todo переделать - диапазоны расчитывать более точно $step = round($period / 3); $from_tm = $curtime - $period; $from = date('Y-m-d H:i:s', $from_tm); $to = date('Y-m-d H:i:s', $curtime); $track = ""; $prev = false; for ($i = 0; $i <= 3; $i++) { $step_ut = $from_tm + $step * $i; $step_dt = date('Y-m-d H:i:s', $step_ut); // Делим период на 4 точки $step_ut_f = date('Y-m-d H:i:s', $step_ut - $step / 2); // Вокруг каждой точки отмеряем назад и вперед половину шага $step_ut_t = date('Y-m-d H:i:s', $step_ut + $step / 2); //$val=Exchange::NOSQL_getAvg($name, $step_ut_f, $step_ut_t); $val = Exchange::getAvg($name, $step_ut_f, $step_ut_t); if (!$val) { //Log::Add('Не нашел данных за период с'.$step_ut_f.' по '.$step_ut_t); continue; } $list[] = array('dtm' => $step_dt, 'val' => $val); if (!$prev) { $prev = $val; continue; } // Определяем направление $dif = 1 - $prev / $val; if ($dif < -1 * $imp_dif) { $track .= "-"; } elseif ($dif > $imp_dif) { $track .= "+"; } else { $track .= "0"; } $prev = $val; } $result = array('track' => $track, 'from' => $from, 'step' => $step, 'period' => $period, 'items' => $list); return $result; }