feat: 项目基础框架+配置+Kernel
This commit is contained in:
+118
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
function getNumberArray($start, $numbers)
|
||||
{
|
||||
$speed=floatval($_GET['speed']);
|
||||
//echo $speed;
|
||||
$up = [];
|
||||
$down = [];
|
||||
$now = [];
|
||||
$end = $start + ($start * $speed / 24);
|
||||
for ($i = 0; $i < $numbers; $i++) {
|
||||
|
||||
if ($i === 0) {
|
||||
$now[] = $start;
|
||||
} elseif ($i === $numbers - 1) {
|
||||
$now[] = $end;
|
||||
} else {
|
||||
//$rand = rand(1, 10) * $_GET['jingdu'];
|
||||
$rand = rand(1, 2) * $_GET['jingdu'];
|
||||
if (get_rand([$_GET['rate2'], $_GET['rate1']]) === 1) {
|
||||
$now[] = $now[$i - 1] + $rand;
|
||||
} else {
|
||||
$now[] = $now[$i - 1] - $rand;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $now;
|
||||
}
|
||||
|
||||
function get_rand($proArr)
|
||||
{
|
||||
$result = '';
|
||||
//概率数组的总概率精度
|
||||
$proSum = array_sum($proArr);
|
||||
//概率数组循环
|
||||
foreach ($proArr as $key => $proCur) {
|
||||
$randNum = mt_rand(1, $proSum);
|
||||
if ($randNum <= $proCur) {
|
||||
$result = $key;
|
||||
break;
|
||||
} else {
|
||||
$proSum -= $proCur;
|
||||
}
|
||||
}
|
||||
unset ($proArr);
|
||||
return $result;
|
||||
}
|
||||
|
||||
$rand_start = $_GET['start'];
|
||||
|
||||
//$numbers = getNumberArray($rand_start, 60);
|
||||
|
||||
$numbers = getNumberArray($rand_start, 1440);
|
||||
|
||||
$obj = [];
|
||||
$start = $rand_start;
|
||||
|
||||
foreach ($numbers as $number) {
|
||||
|
||||
// $open = count($obj) === 0 ? $start : $obj[count($obj) - 1]['close'];
|
||||
// $open = sprintf("%.4f", $open);
|
||||
|
||||
$arr = ['open' => count($obj) === 0 ? $start : $obj[count($obj) - 1]['close']];
|
||||
|
||||
$arr['close'] = $number;
|
||||
if (count($obj) === 0) {
|
||||
// $arr['close'] = $number + ((rand(-100, 100)) * $_GET['fudu']);
|
||||
$arr['close'] = $number + ((rand(-1, 1)) * $_GET['fudu']);
|
||||
}
|
||||
|
||||
|
||||
$val = max(array_values($arr));
|
||||
$minVal = min(array_values($arr));
|
||||
|
||||
// $arr['high'] = $val + ((rand(5, 100)) * $_GET['fudu']);
|
||||
// $arr['low'] = $minVal - ((rand(5, 100)) * $_GET['fudu']);
|
||||
|
||||
$arr['high'] = $val + ((rand(-1, 1)) * $_GET['fudu']);
|
||||
$arr['low'] = $minVal - ((rand(-1, 1)) * $_GET['fudu']);
|
||||
|
||||
|
||||
|
||||
$arr['change'] = bcmul(($arr['close'] - $arr['open']) /$arr['open'],100,2);
|
||||
|
||||
|
||||
array_walk($arr, function (&$val) {
|
||||
$val = sprintf('%.6f', $val);
|
||||
});
|
||||
$obj[] = $arr;
|
||||
|
||||
}
|
||||
//var_dump($obj);
|
||||
$rsp = [];
|
||||
$i = 0;
|
||||
$timess=$_GET['times'];
|
||||
if($timess<10){
|
||||
$timess="0".$timess;
|
||||
}
|
||||
foreach ($obj as $v) {
|
||||
//strtotime("{$i} minutes")
|
||||
$rsp[] = [date('Y-m-d H:i:s', strtotime($_GET['dates']." ".$timess.":00:00")+$i*60), $v['open'], $v['high'], $v['low'], $v['close'], rand(0, 100000),$v['change']];
|
||||
//echo strtotime(date('Y-m-d H:i:s', strtotime($_GET['dates']." ".$timess.":00:00")+$i*60)).PHP_EOL;
|
||||
$i++;
|
||||
}
|
||||
//echo $_GET['dates']." ".$timess.":00:00";
|
||||
/*
|
||||
//重新排序
|
||||
foreach($rsp as $k=>$v){
|
||||
$key_arrays[]=$v[0];
|
||||
}
|
||||
array_multisort($key_arrays,SORT_ASC,SORT_NUMERIC,$rsp);
|
||||
*/
|
||||
///排序 结束
|
||||
|
||||
echo json_encode(['data' => $rsp, 'next' => date('Y-m-d', strtotime('+1 days', strtotime($_GET['dates'])))]);
|
||||
die;
|
||||
Reference in New Issue
Block a user