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
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
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)
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)
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)
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']
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',