复现论坛因子

  • 首先将同事的代码放在框架里跑
  • 然后找策略
  • 自己写
  • 写完之后放进去跑

疑问:

  • 首先为什么报错
  • 其次,帮忙找下策略
  • 需要改些什么,是不是factors中的文件

strategy的代码结构解析:

筹码的含义和例子

场景设定
公司名称:XYZ科技公司
股票代码:XYZ
当前价格:100元
观察期:过去一年
股价走势
假设XYZ科技公司在过去一年中经历了显著的市场关注,特别是在其发表了一系列引起市场兴趣的新产品后。股价从70元上涨到120元,然后又回落到100元。

筹码分布情况
在达到120元的峰值后,股价开始回落。在股价从120元下降到100元的过程中,我们观察到以下筹码分布特点:

110元至120元区间:此区间的筹码非常分散。原因如下:
由于股价达到近期新高,一些短线投资者和投机者选择在这个区间卖出,以锁定利润。
同时,此区间内也有部分长期投资者刚开始进入市场,他们对公司的未来持乐观态度,但价格稍有回落时,这些新买入的持股不足以形成强有力的支持点。
进一步,因为股价处于历史较高水平,意愿持股者的预期和投资时间可能差异较大,使得此区间的持股更加分散。
筹码分散的影响
当股价再次试图突破110元至120元这个区间时,由于没有明显的集中持股及支撑,股价可能遭遇较大阻力:
没有足够的买盘支持,因此上涨动力可能不足。
若市场情绪变动或有利空消息,股价容易受到冲击,因为此区间内缺乏足够的持股信心来抵抗卖压。

做事步骤

1 首先筛选策略,不要选包含外部数据的,不要选事件的。
2 写报告
3 实现

数据内容

candle_begin_time:K线的开始时间,通常表示某个时间周期(如1分钟、5分钟等)K线的起始时间。

open:开盘价,即在该时间周期内的第一个交易价格。

high:最高价,即在该时间周期内的最高交易价格。

low:最低价,即在该时间周期内的最低交易价格。

close:收盘价,即在该时间周期内的最后一个交易价格。

volume:成交量,指在该时间周期内的交易量,通常表示为该币种的数量。

quote_volume:成交额,以报价货币(通常是USDT等)计价的成交总额。

trade_num:交易笔数,即在该时间周期内发生的交易次数。

taker_buy_base_asset_volume:主动买入量,指在该时间周期内,由主动买方推动的交易量。

taker_buy_quote_asset_volume:主动买入额,以报价货币计价的主动买入成交总额。

Spread:买卖价差,通常表示买入价和卖出价之间的差额,这一指标可以衡量市场流动性。

symbol:交易对的标识符,表示该数据所对应的虚拟币交易对(如BTC/USDT)。

avg_price_1m:1分钟平均价格,表示在该时间周期内,每分钟的平均交易价格。

avg_price_5m:5分钟平均价格,表示在该时间周期内,每5分钟的平均交易价格。

avg_price:时间周期内的整体平均价格。

win_rate:胜率,可能表示在多个时间周期内,价格上涨的次数占总时间周期数的比例。

min_price:最低价格,即在该时间周期内的最低成交价格。

max_price:最高价格,即在该时间周期内的最高成交价格。

quantile_5 到 quantile_95:这些是分位数价格,通常表示在该时间周期内价格分布的统计信息。例如,quantile_5表示价格处于最低5%的分布点,quantile_95表示价格处于最高5%的分布点。

总结
这份虚拟币数据表包含了广泛的交易和价格相关信息,涵盖了基本的K线数据(开盘价、最高价、最低价、收盘价)、交易活动(成交量、交易笔数、主动买入量等)、市场行为(买卖价差、胜率、分位数等)等。这些数据可以用于分析市场走势、构建和优化交易策略。

Fama-French五因子模型的构建过程主要包括数据获取、因子计算、数据合并、回归估计等步骤。下面是一个简单的Python代码实现示例: 1. 数据获取:首先需要获取股票市场数据、市场收益率数据和无风险收益率数据,可以使用pandas库中的read_csv函数进行读取。 ```python import pandas as pd # 读取股票市场数据 stock_data = pd.read_csv('stock_data.csv', index_col=0) # 读取市场收益率数据 market_data = pd.read_csv('market_data.csv', index_col=0) # 读取无风险收益率数据 rf_data = pd.read_csv('rf_data.csv', index_col=0) ``` 2. 因子计算:接下来需要计算市值因子、账面市值比因子、动量因子、投资因子和质量因子,通常需要使用多个数据源和一些复杂的计算方法,这里只提供一个简单的示例,以计算市值因子为例。 ```python # 计算股票市值 stock_data['market_cap'] = stock_data['price'] * stock_data['shares_outstanding'] # 计算市场总市值 total_market_cap = stock_data.groupby('date')['market_cap'].sum() # 计算每只股票的市值占比 stock_data['market_cap_weight'] = stock_data['market_cap'] / total_market_cap.loc[stock_data['date']].values # 计算市值因子 market_cap_data = stock_data.pivot_table(index='date', columns='ticker', values='market_cap_weight') market_cap_data = (market_cap_data.rank(axis=1) / market_cap_data.shape[1]).sub(0.5) ``` 3. 数据合并:将因子数据和股票收益率数据、市场收益率数据、无风险收益率数据进行合并,以准备进行回归分析。 ```python # 合并因子数据和股票收益率数据 excess_returns = stock_data[['date', 'ticker', 'return']].copy() excess_returns['excess_return'] = excess_returns['return'] - rf_data['rf'] # 合并因子数据和市场收益率数据 market_data = market_data[['date', 'return']].copy() market_data.rename(columns={'return': 'market_return'}, inplace=True) # 合并因子数据和无风险收益率数据 rf_data = rf_data[['date', 'rf']].copy() # 将因子数据和其他数据进行合并 merged_data = excess_returns.merge(market_data, on='date') merged_data = merged_data.merge(rf_data, on='date') merged_data = merged_data.merge(market_cap_data, on='date') ``` 4. 回归估计:使用多元线性回归模型,以股票超额收益率为因变量,市场收益率、市值因子、账面市值比因子、动量因子、投资因子和质量因子的暴露度为自变量,估计模型系数。 ```python import statsmodels.api as sm # 构建因子矩阵 factor_data = merged_data[['market_return', 'Mkt-RF', 'SMB', 'HML', 'Mom', 'CMA']] factor_data = sm.add_constant(factor_data) # 进行回归估计 results = sm.OLS(merged_data['excess_return'], factor_data).fit() # 打印模型系数 print(results.params) ``` 需要注意的是,本示例代码只是一个简单的演示,实际应用中还需要进行更多的数据处理、因子计算和模型检验等工作。另外,还可以使用其他库和工具实现Fama-French五因子模型,例如使用pyfinance库中的fama_macbeth函数进行回归估计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值