예제 #1
0
    def getEstimate(self, jjdm):
        timeStamp = self.getTodayTimeLimit()
        url = 'http://fundgz.1234567.com.cn/js/' + str(jjdm) + '.js?rt=' + str(
            timeStamp)
        try:
            response = requests.get(url)
        except Exception as e:
            time.sleep(3)
        response_text = response.text
        print("url:" + url + " 基金代码" + jjdm + "return:" + response_text)
        response_text = response_text.replace('jsonpgz(', '')
        response_text = response_text.replace(');', '')
        try:
            response_json = json.loads(response_text)
        except Exception as e:
            res = {}
            res['gsl'] = None
            res['gztime'] = None
            return res
            # 基金代码

        gszzl = response_json['gszzl']
        name = response_json['name']
        gszzl = float(gszzl)
        if gszzl <= -2:
            msg = DingDingMsgDao()
            msg.sendMsg(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') +
                        ":" + name + "(" + jjdm + ')跌幅超过预警:' + str(gszzl))
예제 #2
0
 def updateFundInfo(event_name):
     # 开始执行操作
     FileCacheDao.put(event_name, 1, 3600 * 13)
     LogDao.saveLog('descendingstatics', '开始统计基金跌幅信息')
     hModal = DescnedingStaticsDao()
     hModal.handle()
     msg = DingDingMsgDao()
     msg.sendMsg('跌幅统计完成')
     LogDao.saveLog('descendingstatics', '基金跌幅统计完成')
예제 #3
0
 def computeRecommand(event_name):
     # 开始执行操作
     FileCacheDao.put(event_name, 1, 3600 * 13)
     LogDao.saveLog('recommand', '开始计算更新值')
     info_list = JiJinGuSuan.select()
     for info in info_list:
         LogDao.saveLog('recommand', '正在处理基金' + info.jjdm)
         mode = CurvePloyDao(info.jjdm, 7)
         mode.handle()
     msgDao = DingDingMsgDao()
     msgDao.sendMsg('基金推荐值计算完成')
예제 #4
0
 def updateFundInfo(event_name):
     # 开始执行操作
     FileCacheDao.put(event_name, 1, 3600 * 13)
     LogDao.saveLog('collectfund', '开始更新基金信息')
     if not JiJinInfo.table_exists():
         JiJinInfo.create_table()
     if not JiJinTheme.table_exists():
         JiJinTheme.create_table()
     model = CollectJijinInfoDao()
     model.handle()
     msgDao = DingDingMsgDao()
     msgDao.sendMsg('基金信息更新完成')
     LogDao.saveLog('collectfund', '基金信息更新完成')
예제 #5
0
    def updateFundRecord(event_name):
        # 开始执行操作
        FileCacheDao.put(event_name, 1, 3600 * 13)
        LogDao.saveLog('updatefundrecord', '开始更新基金记录')
        if not JiJinRecord.table_exists():
            JiJinRecord.create_table()

        if not JiJinUpdateProcess.table_exists():
            JiJinUpdateProcess.create_table()

        mode = DingDingMsgDao()
        model = UpdateFundRecordDao()
        model.update_all_jijin()
        mode.sendMsg('基金记录更新完成')
예제 #6
0
        response_text = response_text.replace(');', '')
        try:
            response_json = json.loads(response_text)
        except Exception as e:
            res = {}
            res['gsl'] = None
            res['gztime'] = None
            return res
            # 基金代码

        gszzl = response_json['gszzl']
        name = response_json['name']
        gszzl = float(gszzl)
        if gszzl <= -2:
            msg = DingDingMsgDao()
            msg.sendMsg(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') +
                        ":" + name + "(" + jjdm + ')跌幅超过预警:' + str(gszzl))

    def handle(self):
        jjdm_list = JiJinInfo.select()
        for i in jjdm_list:
            jjdm = i.jjdm
            self.getEstimate(jjdm)


if __name__ == "__main__":
    hModal = DescnedingStatics()
    hModal.handle()
    msg = DingDingMsgDao()
    msg.sendMsg('跌幅统计完成')
예제 #7
0
        try:
            # 没有找到统计进度,进行基金记录的最远的日期进行统计
            records = JiJinRecord.select().where(
                JiJinRecord.jjdm == jjdm).order_by(JiJinRecord.date).limit(1)
            record = None
            for record_first in records:
                record = record_first
                break
            if record is None:
                return

            # 如果找到了,
            model = StaticsJijin(jjdm)
            model.handle(record.date)
            JiJinStaticsUpdate.create(jjdm=jjdm, date=record.date)
            get_all_jijin_statics(jjdm)
        except DoesNotExist as e:
            # 当前已经执行完成
            print("未找到更新记录,未找到基金记录,本次执行结束")
            return


msg = DingDingMsgDao()

jj_records = JiJinInfo.select()
for item in jj_records:
    print('正在统计' + item.jjdm + '的相关信息 ')
    jjdm = item.jjdm
    get_all_jijin_statics(jjdm)
msg.sendMsg('基金统计信息完成')
예제 #8
0
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import sys

sys.path.append("..")
from models.JiJinRecord import JiJinRecord
from models.JiJinGuSuan import JiJinGuSuan
from dao.DingDingMsgDao import DingDingMsgDao
import pandas as pd
import os
import time
from dao.LogDao import LogDao

msgControl = DingDingMsgDao()


class CurvePloyDao():
    def __init__(self, jjdm, count):
        self.jjdm = jjdm
        self.count = count
        self.x = []

    def get_ploy1d(self):
        # 获取最近7天的数据,然后再倒序输出
        raw_info_list = JiJinRecord.select().where(
            JiJinRecord.jjdm == self.jjdm).order_by(
                JiJinRecord.date.desc()).limit(self.count)
        # 获得record_id
        recordid = []
        for tmp_item in raw_info_list:
예제 #9
0
import sys
from dao.EstimateDao import EstimateDao
from models.JiJinInfo import JiJinInfo
from models.JiJinGuSuan import JiJinGuSuan
from dao.DingDingMsgDao import DingDingMsgDao
from dao.FileCacheDao import FileCacheDao
import time
from dao.LogDao import LogDao
sys.path.append('..')
msgControl = DingDingMsgDao()


class EstimateEvent():
    def __init__(self):
        self.runat = '01:00:00'
        self.event_name = 'estimate'

    def handle(self):
        now = time.strftime("%H:%M:%S")
        # 大于已经要执行的时间
        if now > self.runat:
            # 今天尚未执行
            if FileCacheDao.get(self.event_name) is not None:
                return
            else:
                # 开始更新基金信息
                EstimateEvent.estimate(self.event_name)
        else:
            return

    staticmethod
예제 #10
0
import sys

sys.path.append("..")
import datetime
from models.JiJinRecord import JiJinRecord
from models.JiJinUpdateProcess import JiJinUpdateProcess
from dao.DingDingMsgDao import DingDingMsgDao
from models.JiJinInfo import JiJinInfo
import time
import requests
import json

mode = DingDingMsgDao()


class UpdateFundRecordDao():
    def getYesterday(self):
        today = datetime.date.today()
        oneday = datetime.timedelta(days=1)
        yesterday = today - oneday
        return yesterday

    '''
           处理所有基金
    '''

    def update_all_jijin(self):
        jjdm_list = JiJinInfo.where(JiJinInfo.status == 1).select()
        yesterday = self.getYesterday()
        cur_hour = time.localtime().tm_hour
        for i in jjdm_list: