【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
比如我要做一个应用。有没有最简单的途径。
作为一个收入一般的程序猿,前几年试着做了股票投资,职业习惯,让我试着用tidb去做了一些关于股票的数据分析,接下来,我想把我的一些想法分析给大家:
我的初步思路按照一下几个方面开始做分析:
另外,在股票投资中,需要用到数学公式去理解和管理投资风险。如下面的这个数据公式,只要好好理解该公式原理,能更好的帮助我们在投资中做决策:
- 盈利与成本的计算
- 股票收益率
- 凯利公式
- ( f^* ) 是应该投资的资金比例。
- ( b ) 是每次投资的盈利比率。
- ( p ) 是获胜的概率。
- ( q ) 是失败的概率,( q = 1 - p )。
如何用数学公式选择出年利率比较高的股票,用那几个数学公式能帮助我更好的投资,用历史收益率购买靠谱吗?
使用历史收益率来选择年利率较高的股票是一种常见的方法,但它有其局限性。历史收益率可以提供关于股票过去表现的信息,但并不总能准确预测未来表现。
以下是一些考虑因素:
下面是我写的一些实例,希望可以给大家一些思路:
用python y yfinance 计算纳斯达克前100的净资产收益率 (ROE): pd.concat 写
import yfinance as yf
import pandas as pd
import mysql.connector
from sqlalchemy import create_engine
# 定义纳斯达克前100家公司的股票代码列表
nasdaq_top_100 = [‘AAPL’, ‘MSFT’, ‘AMZN’ ] # 请补全列表
# 创建一个空的列表来存储每家公司的DataFrame
dataframes = []
# 遍历股票代码列表
for ticker in nasdaq_top_100:
# 获取股票数据
stock = yf.Ticker(ticker)
# 获取财务报表数据
balance_sheet = stock.balance_sheet
income_statement = stock.financials
# 计算ROE
net_income = income_statement.loc[‘Net Income’]
shareholder_equity = balance_sheet.loc[‘Stockholders Equity’]
roe = net_income / shareholder_equity
# 创建一个DataFrame来存储当前公司的ROE
df = pd.DataFrame({‘Ticker’: [ticker], ‘ROE’: [roe]})
# 将DataFrame添加到列表中
dataframes.append(df)
# 使用pd.concat合并所有公司的DataFrame
roe_df = pd.concat(dataframes)
# 输出结果
print(roe_df)
#url = ‘mysql+pymysql://username:password@hostname:port/dbname?charset=utf8’
#engine = sa.create_engine(url, echo=False)
engine = create_engine(‘mysql+pymysql://a:jmdjsj@127.0.0.1/a’)
roe_df.to_sql(‘df’, engine, index=False,
method = “multi”,chunksize = 10000 ,if_exists=‘replace’)
如何用tidbserverless 给自己投资理财
一般来说roe高的股票投资收益会好很多
mysql> select * from df;
+--------±----------------------------------------------------------------------------------------------------------+
| Ticker | ROE |
+--------±----------------------------------------------------------------------------------------------------------+
| AAPL | 2023-09-30 1.56076
2022-09-30 1.969589
2021-09-30 1.500713
2020-09-30 0.878664
dtype: object |
| MSFT | 2023-06-30 0.350887
2022-06-30 0.436755
2021-06-30 0.431522
2020-06-30 0.374298
dtype: object |
| AMZN | 2023-12-31 0.150712
2022-12-31 -0.018638
2021-12-31 0.24134
2020-12-31 0.228374
dtype: object |
然后我们用gpt给的另一端计算年化收益率的代码来算他们的历史收益
import yfinance as yf
# 下载以太坊过去5年的数据
eth_data = yf.download(‘AMZN’, period=‘5y’)
# 计算每日收益率
daily_returns = eth_data[‘Adj Close’].pct_change()
# 计算累积收益率
cumulative_returns = (1 + daily_returns).cumprod() - 1
# 计算5年的总收益率
total_return_5y = cumulative_returns.iloc[-1]
# 年化收益率
annualized_return = (1 + total_return_5y)**(1/5) - 1
# 输出结果
print(f"5年总收益率: {total_return_5y:.2%}")
print(f"年化收益率: {annualized_return:.2%}")
从这些数据来说AMZN 的收益比apple 和微软收益都差。我们带入历史收益来看看。
jiangming@admin\njiangming ~ % python3 apple.py
[*********************100%%**********************] 1 of 1 completed
5年总收益率: 272.70%
年化收益率: 30.10%
jiangming@admin\njiangming ~ % python3 AMZN.py
[*********************100%%**********************] 1 of 1 completed
5年总收益率: 101.90%
年化收益率: 15.09%
我准备用tidb的serverless开发一个理财网站。把各个股票的年华roe都算出来。数据库用tidb的serverless 我主要做内容
类似如下的代码。计算出来各个股票哪个最值得投资。这也算tidb的有效应用之一
import yfinance as yf
import pandas as pd
import mysql.connector
from sqlalchemy import create_engine
定义纳斯达克前100家公司的股票代码列表
nasdaq_top_100 = [‘AAPL’, ‘MSFT’, ‘AMZN’ ] # 请补全列表
创建一个空的列表来存储每家公司的DataFrame
dataframes = []
遍历股票代码列表
for ticker in nasdaq_top_100:
# 获取股票数据
stock = yf.Ticker(ticker)
# 获取财务报表数据
balance_sheet = stock.balance_sheet
income_statement = stock.financials
# 计算ROE
net_income = income_statement.loc['Net Income']
shareholder_equity = balance_sheet.loc['Stockholders Equity']
roe = net_income / shareholder_equity
# 创建一个DataFrame来存储当前公司的ROE
df = pd.DataFrame({'Ticker': [ticker], 'ROE': [roe]})
# 将DataFrame添加到列表中
dataframes.append(df)
使用pd.concat合并所有公司的DataFrame
roe_df = pd.concat(dataframes)
输出结果
print(roe_df)
#url = ‘mysql+pymysql://username:password@hostname:port/dbname?charset=utf8’
#engine = sa.create_engine(url, echo=False)
engine = create_engine(‘mysql+pymysql://a:jmdjsj@127.0.0.1/a’)
roe_df.to_sql(‘df’, engine, index=False,
method = “multi”,chunksize = 10000 ,if_exists=‘replace’)