コード例 #1
0
ファイル: qiemanSpider.py プロジェクト: klq26/deal-record
 def __init__(self, strategy = 'klq'):
     # 禁 warning
     # ssl._create_default_https_context = ssl._create_unverified_context
     requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
     # 当前目录
     self.folder = os.path.abspath(os.path.dirname(__file__))
     self.categoryManager = categoryManager()
     if strategy == 'klq':
         self.owner = '康力泉'
         self.headers = requestHeaderManager().getQiemanKLQ()
         # S 定投
         # totalElements: 16 # totalPages: 2
         plan150_id = u'CA8UKLYHA67WPK'
         # 150 补充
         # totalElements: 19 # totalPages: 2
         planS_id = u'CA8FCJKFPANTP2'
         self.plan_list = [{'name': '150份', 'value': plan150_id, 'poName': '长赢指数投资计划-150份'}, {'name': 'S定投', 'value': planS_id, 'poName': '长赢指数投资计划-S定投'}]
     elif strategy == 'ksh':
         self.owner = '康世海'
         self.headers = requestHeaderManager().getQiemanKSH()
         # 稳稳的幸福
         wenwen = u'CA942R8128PFE7'
         self.plan_list = [{'name': '稳稳的幸福', 'value': wenwen}]
     self.results = []
     folder = os.path.join(self.folder, 'debug', self.owner, 'tradelist')
     if not os.path.exists(folder):
         os.makedirs(folder)
     # tradelist.json 存放位置
     self.tradelistfolder = folder
     folder = os.path.join(self.folder, 'debug', self.owner, 'detail')
     if not os.path.exists(folder):
         os.makedirs(folder)
     # traderecords 文件存放位置
     self.detailfolder = folder
     self.current_plan = None
コード例 #2
0
 def __init__(self, strategy='klq'):
     # 禁 warning
     # ssl._create_default_https_context = ssl._create_unverified_context
     requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
     # 当前目录
     self.folder = os.path.abspath(os.path.dirname(__file__))
     self.categoryManager = categoryManager()
     if strategy == 'klq':
         self.owner = '康力泉'
         self.headers = requestHeaderManager().getDanjuanKLQ()
     elif strategy == 'lsy':
         self.owner = '李淑云'
         self.headers = requestHeaderManager().getDanjuanLSY()
     elif strategy == 'ksh':
         self.owner = '康世海'
         self.headers = requestHeaderManager().getDanjuanKSH()
     self.results = []
     folder = os.path.join(self.folder, 'debug', self.owner, 'tradelist')
     if not os.path.exists(folder):
         os.makedirs(folder)
     # tradelist.json 存放位置
     self.tradelist_file = os.path.join(folder, 'tradelist.json')
     folder = os.path.join(self.folder, 'debug', self.owner, 'detail')
     if not os.path.exists(folder):
         os.makedirs(folder)
     # traderecords 文件存放位置
     self.detailfolder = folder
コード例 #3
0
ファイル: main.py プロジェクト: klq26/deal-record
def showCategoryUnknownFunds(strategy = 'klq'):
    category_df = categoryManager().getCategoryDataFrame()
    # 基金代码库
    category_codes = list(category_df['基金代码'])
    target_df = allUniqueCodes(strategy)
    for i in range(0,len(target_df.code.values)):
        code = target_df.code.values[i]
        name = target_df.name.values[i]
        if code not in category_codes:
            print(code, name)
コード例 #4
0
    def __init__(self):
        self.headers = {
            "User-Agent":
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
        }
        self.folder = os.path.abspath(os.path.dirname(__file__))
        self.cm = categoryManager()
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
        # 需要忽略的三级分类
        category3_skips = [
            '股票', '房地产', '信息科技', '美元债', '无息外借款', '住房公积金', '民间借贷', '企业借贷',
            '货币基金'
        ]
        # 库中三级分类
        category3_uniques = list(self.cm.category_df['三级分类'].unique())
        for item in category3_skips:
            if item in category3_uniques:
                category3_uniques.pop(category3_uniques.index(item))
        self.category3_uniques = category3_uniques
        # print(self.category3_uniques)

        self.results = []
        # 占位填充
        for i in range(len(self.cm.category3_ext_df)):
            item = self.cm.category3_ext_df.values[i]
            index = {}
            index['category1_name'] = self.cm.category3_ext_df['一级分类'].values[
                i]
            index['category3_name'] = self.cm.category3_ext_df['三级分类'].values[
                i]
            index['eval_name'] = self.cm.category3_ext_df['蛋卷估值名'].values[i]
            index['code'] = self.cm.category3_ext_df['指数代码'].values[i]
            # 指数点位
            index['current'] = 0.0
            index['change_value'] = 0.0
            index['change_rate'] = "0.00%"
            # 指数估值
            index["pe"] = 0.0
            index["pb"] = 0.0
            index["pe_percentile"] = 0.0
            index["pb_percentile"] = 0.0
            index["roe"] = 0.0
            index["yeild"] = 0.0
            # index["bond_yeild"] = 0.0
            index["peg"] = 0.0
            # index["pb_over_history"] = 0.0
            # index["pe_over_history"] = 0.0
            index['sequence'] = i + 1
            # print(index)
            self.results.append(index)
コード例 #5
0
    def __init__(self):
        # 当前目录
        self.folder = os.path.abspath(os.path.dirname(__file__))
        self.owner = u'康力泉'
        self.categoryManager = categoryManager()
        # TEST 显示列名,列唯一值
        # df = pd.read_excel(os.path.join(self.folder, 'input', global_name + u'.xlsx'))
        # file_columns = df.columns
        # # 列名
        # print(list(file_columns))
        # # 列唯一值
        # for cate in df.columns:
        #     print("{" + "'name': '{0}', 'value': [{1}]".format(cate, ', '.join(["'{0}'".format(x) for x in df[cate].unique()])) + "}")
        # exit(1)

        # 1. 读取文件并校验目标文件的列名是否符合预期 #
        df = pd.read_excel(
            os.path.join(self.folder, 'input', global_name + u'.xlsx'))
        # 验证数据
        df = self.verifyDataFrame(df)
        # 调整列
        self.needed_df = self.modifyDataFrame(df)
コード例 #6
0
ファイル: holdingModel.py プロジェクト: klq26/deal-record
    def initWithDealRecord(self, record):
        if not isinstance(record, dealRecordModel):
            print('[ERROR] 传入对象不是 dealRecordModel 类型:{0}'.format(record))
            exit(1)
        if self.debugBreak(record):
            print()
        # 初始化
        self.date = record.date
        self.code = record.code
        self.name = record.name
        self.holding_nav = record.nav_unit
        self.holding_volume = record.volume
        # 买入、建仓用 occurMoney(含手续费)
        self.holding_money = record.occurMoney
        # 网站公布摊薄净值所受影响情况列举
        if u'华泰' in record.account or u'华宝' in record.account:
            # 股票账户:含手续费 False 卖出获利修正 False
            self.nav_decimal = 3
            self.isNavContainsTradeFee = False
            self.isNavContiansSellGainAffect = False
            self.holding_nav = round(self.holding_nav, self.nav_decimal)
        elif u'蛋卷' in record.account:
            # 蛋卷:含手续费 False 卖出获利修正 True
            self.nav_decimal = 4
            self.isNavContainsTradeFee = False
            self.isNavContiansSellGainAffect = True
            self.holding_money = round(self.holding_money - record.fee,
                                       self.money_decimal)
            self.holding_nav = round(self.holding_money / self.holding_volume,
                                     self.nav_decimal)
        elif u'支付宝' in record.account:
            # 支付宝:含手续费 True 卖出获利修正 False
            self.nav_decimal = 4
            self.isNavContainsTradeFee = True
            # 这里姑且是 False,因为没卖过
            self.isNavContiansSellGainAffect = False
            self.holding_nav = round(self.holding_money / self.holding_volume,
                                     self.nav_decimal)
        elif u'天天' in record.account:
            # 天天:含手续费 True 卖出获利修正 False
            self.nav_decimal = 4
            self.isNavContainsTradeFee = True
            self.isNavContiansSellGainAffect = False
            self.holding_nav = round(self.holding_money / self.holding_volume,
                                     self.nav_decimal)
        elif u'且慢' in record.account:
            # 且慢:含手续费 True 卖出获利修正 True
            self.nav_decimal = 4
            self.isNavContainsTradeFee = True
            self.isNavContiansSellGainAffect = True
            # 刚建仓,holding_money 不需要加上 holding_gain
            self.holding_nav = round(self.holding_money / self.holding_volume,
                                     self.nav_decimal)

        self.total_fee = round(record.fee, self.money_decimal)
        self.buy_fee = round(record.fee, self.money_decimal)
        self.isEmpty = False
        if u'货币' in record.name:
            categoryInfo = categoryManager().getCashFundCategory()
        else:
            categoryInfo = categoryManager().getCategoryByCode(record.code)
        if categoryInfo != {}:
            self.category1 = categoryInfo['category1']
            self.category2 = categoryInfo['category2']
            self.category3 = categoryInfo['category3']
            self.categoryId = categoryInfo['categoryId']
コード例 #7
0
from flask import Response
# 跨域
from flask_cors import *

from category.categoryManager import categoryManager
from database.fundDBHelper import fundDBHelper
from app.server.holdingDBHelper import *
from app.server.estimateManager import estimateManager
from app.server.evalManager import evalManager

from app.server.cacheManager import cacheManager
from app.server.datetimeManager import datetimeManager

folder = os.path.abspath(os.path.dirname(__file__))

categoryManager = categoryManager()
cm = cacheManager()
ev = evalManager()
dm = datetimeManager()

os.environ['GEVENT_SUPPORT'] = 'True'

app = Flask(__name__)
CORS(app, supports_credentials=True)


# 添加公共返回值
def packDataWithCommonInfo(isCache=False,
                           isSuccess=True,
                           msg="success",
                           duration='0',