Create Mysql on a new server with Docker

1. Log in with SSH 2. Install Docker # Update Package Lists: sudo apt update # Install Required Packages: sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release # Add Docker’s Official GPG Key: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Set Up the Stable Repository: echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Update Package Lists Again: sudo apt update # Install Docker Engine: sudo apt install -y docker-ce docker-ce-cli containerd....

May 27, 2024

Datawhale-quant 笔记03 - 量化选股策略浅尝试

import baostock as bs import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split def get_bs_df(code, list_para, start_date, end_date, frequency='d', adjustflag='3'): para = ','.join(list_para) rs = bs.query_history_k_data_plus(code,para, start_date=start_date, end_date=end_date, frequency=frequency, adjustflag=adjustflag) data_list = [] while (rs.error_code == '0') & rs.next(): data_list.append(rs.get_row_data()) df_result = pd.DataFrame(data_list, columns=rs.fields) print(f'get {len(df_result)} records!') return df_result def get_bs_profit_data(code, year, quarter): profit_list = [] rs_profit = bs....

January 24, 2024

Datawhale-quant 笔记02 - Python读取股市数据

!pip install baostock import baostock as bs import pandas as pd import matplotlib.pyplot as plt # login baostock lg = bs.login() print(f'error code {lg.error_code}') print(f'error msg {lg.error_msg}') # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg rs = bs.query_history_k_data_plus("sh.600000", "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST", start_date='2022-07-01', end_date='2023-12-31', frequency="d", adjustflag="3") login success! error code 0 error msg success data_list = [] while (rs.error_code == '0') & rs.next(): # 获取一条记录,将记录合并在一起 data_list.append(rs.get_row_data()) df_result = pd.DataFrame(data_list, columns=rs.fields) df_result.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 367 entries, 0 to 366 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 367 non-null object 1 code 367 non-null object 2 open 367 non-null object 3 high 367 non-null object 4 low 367 non-null object 5 close 367 non-null object 6 preclose 367 non-null object 7 volume 367 non-null object 8 amount 367 non-null object 9 adjustflag 367 non-null object 10 turn 367 non-null object 11 tradestatus 367 non-null object 12 pctChg 367 non-null object 13 isST 367 non-null object dtypes: object(14) memory usage: 40....

January 23, 2024

Datawhale-quant 笔记 - 金融市场基本概念

贴现率 Discount Rate 所有今天的钱都可以用来投资,进行复利效应,因此今天的100元在未来的价值会高于100元,反过来说也就是未来的100元在今天的价值会低于100元。并且因为风险的存在,这个价值会进一步打折扣。 而用来量化未来的钱在今天的价值,这个概念也就是贴现率。 假如贴现率是11%,我在2年后可以得到100元,那么这100元在今天的价值就是$$ \frac{100} {(1 + 11\%)^{2}}=81.16$$ 除了直接用作将未来现金折算成当前价值以外,贴现率还常常用来反映投资的风险。在考虑未来不确定性较大的现金流时,会使用比较大的贴现率,用来补偿更高的风险。 投资的本质 投资是为了获得可能但并不确定的未来值(Future value)而作出牺牲确定的现值(Present value)的行为。(William F.Sharpe,1990年获得诺贝尔经济学奖) 金融资产 实物资产:取决于该社会经济的生产能力,为经济创造净利润,如土地、建筑物、机器以及可用于生产产品和提供服务的知识。 金融资产:对实物资产的索取权 金融资产主要分为四大类: 固定收益型或债务型证券 普通股或权益型证券 基金 衍生产品(期货、期权、互换) 宏观经济的一些指标 广义货币供应量 货币可以分为三个层次: M0:流通中的货币,即基础货币。 M0的构成是公众手里的现金(微信支付宝里的就不算)和商业银行放在中央银行的准备金。 小明家里放了200, 手里拿着100,支付宝里有50. 那小明的M0是200+100=300. M1:狭义货币供应量,M0+企业货期存款+机关团体存款+农村存款+个人信用卡存款 M1包括了M0和那部分能够快速转化为现金用于购买商品和服务的存款,如支票存款和部分可随时取用的储蓄存款。M1表现了经济体中较为活跃的货币,主要用于日常的交易活动。 除了上面的300元现金,小明还有500元在支票账户中,能随时支取。这500元加上他的300元现金,再加上50元支付宝,合计850元为小明的M1。 M2:广义货币供应量,M1+城乡居民储蓄存款+企业定期存款+外币存款+信托类存款 M2是范围更广的货币供应层次,除了包括M1之外,还加上了一些不那么容易立刻转换为现金的存款,比如定期存款,储蓄存款,和其他一些近似“货币”的金融资产(如货币市场基金)。M2能够提供对经济流动性与未来通货膨胀压力的更全面的了解。 如果小明除了上述的600元M1,还在银行有一个2000元的定期存款和1000元在货币市场基金,则这3000元加上600元M1,总共3600元就是小明的M2。 CPI(消费者价格指数 Consumer Price Index) 反映居民消费中物价是否高低(通胀水平),从消费者角度来考虑物价水平。 CPI能够准确表现消费价格变动趋势和走向,CPI上升1%就意味着居民生活成本提高1%。通常,当CPI>3%的增幅时会被认定为进入了通货膨胀区间。 PPI(生产者价格指数 Producer Price Index) 反映原材料物价水平,从生产者角度考虑物价水平。通常来说PPI的上涨会转移到CPI上。 PPI分类可以按照二分法分为生产资料和生活资料,其中前者占比较大约70%,因此PPI更能反映生产资料价格状态。此外,由于价格指数具有粘性,PPI通常落后于宏观经济,因为经济好转后产生需求,才能带动上游生产,这时才可以反映到PPI中,但是经济的真正好转通常需要等待一定时间。 PPI通常用来衡量经济是否景气,一般PPI在3%以下,认为经济不景气,再4%到7%左右,认为经济稳定繁荣,但到8%和9%以上,就表明经济可能过热。 PMI(采购经理人指数 Purchasing Managers’ Index) 采购经理人指数PMI,包括制造业和非制造业领域,包含生产、订货、库存等多个环节,能够反映经济总体变化趋势,及企业经营活动多个侧面的运行情况。该指标通过公司采购经理人在第一时间获取当月数据,快速及时反映市场动态,因而成为非常重要的先行指标。 PMI 取值范围在 0 至 100% 之间,50% 为扩张与收缩的临界点,50%是根据新订单、生产指数、从业人员指数、供应商配送时间和原材料库存等5个扩散指数中的扩张和收缩比例汇总计算得到。高于50%,表示经济活动比上月有所扩张;低于50%,表示经济活动比上月有所收缩。PMI与临界点的距离,表示扩张和收缩的程度。在实际应用中,可以通过 PMI 运行走势监测宏观经济变化情况: 扩张加速:PMI 从 50% 上升到 100%,表明经济运行中的扩张成分多于收缩成分,扩张成分在增加,收缩成分在减少,经济处于扩张区间。 扩张减速:PMI 从 100% 下降到 50%,表明经济运行中的扩张成分多于收缩成分,但扩张成分在减少,收缩成分在增加,经济仍处于扩张区间。 收缩加速:PMI 从 50% 下降到 0,表明经济运行中的收缩成分多于扩张成分,扩张成分在减少,收缩成分在增加,经济处于收缩区间。 收缩减速:PMI 从 0 上升到 50%,表明经济运行中的收缩成分多于扩张成分,但扩张成分在增加,收缩成分在减少,经济仍处于收缩区间。

January 21, 2024