Ejemplo n.º 1
0
 /**
  * 根据条件过滤基金
  */
 public function actionFundFilter()
 {
     @set_time_limit(0);
     @ini_set('memory_limit', '1280M');
     //清空数据表
     try {
         $connection = \Yii::$app->db;
         $command = $connection->createCommand('TRUNCATE TABLE fund_filter');
         $post = $command->execute();
         var_dump($post);
     } catch (\Exception $e) {
         echo $e->getMessage() . PHP_EOL;
     }
     //执行类型1:基金总体盈利
     FundFilter::saveType1();
     //执行类型2:基金半年盈利
     FundFilter::saveType2();
     //执行类型3:基金成立超过半年
     FundFilter::saveType3();
     //执行类型4:最大涨幅大于最大跌幅
     FundFilter::saveType4();
     //执行类型5:涨幅超过5%的天数是跌幅超过5%的天数的2倍
     FundFilter::saveType5();
     //执行类型6:增长天数是下跌天数5倍
     FundFilter::saveType6();
     //执行类型7:80%周数在上涨
     FundFilter::saveType7();
     //执行类型8:2015年1月到6月每月涨幅排名都在前100的基金
     //FundFilter::saveType8();
     //执行类型9:2015年9月到12月每月涨幅排名都在前100的基金
     //FundFilter::saveType9();
 }
Ejemplo n.º 2
0
 /**
  * 获取根据基金筛选条件进行筛选的结果
  * @return array|string
  */
 public function actionFundFilter()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     if (Yii::$app->request->isPost) {
         $type = Yii::$app->request->post('type');
         if (!$type) {
             return '';
         }
         $num = [];
         foreach ($type as $v) {
             $data = FundFilter::find()->select('fund_num')->distinct()->where(['type' => $v])->all();
             $n = ArrayHelper::getColumn($data, 'fund_num');
             $num = array_merge($n, $num);
         }
         $res = array_count_values($num);
         $array = [];
         foreach ($res as $num => $v) {
             if ($v === count($type)) {
                 $array[] = $num;
             }
         }
         return $array;
     }
     return '';
 }
Ejemplo n.º 3
0
 /**
  * 根据基金筛选条件进行筛选
  * @return string
  */
 public function actionIndex()
 {
     $init = [FundFilter::TYPE_1, FundFilter::TYPE_2, FundFilter::TYPE_3, FundFilter::TYPE_4, FundFilter::TYPE_7];
     $types = FundFilter::getAllTypeName();
     return $this->render('index', ['types' => $types, 'init' => $init]);
 }
Ejemplo n.º 4
0
 /**
  * 执行类型1:基金总体盈利
  */
 public static function saveType1()
 {
     $sql = "SELECT fund_num,SUM(rate+0) AS r FROM fund_history GROUP BY fund_num HAVING r>0";
     $connection = \Yii::$app->db;
     $command = $connection->createCommand($sql);
     $posts = $command->queryAll();
     $nums = ArrayHelper::getColumn($posts, 'fund_num');
     FundFilter::saveFilter(self::TYPE_1, $nums);
 }