Python量化交易(五):量化择时策略

news2025/1/12 20:45:55


引言

大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的Python量化交易学习总结文档。在现代金融市场中,量化择时策略已成为投资者追求超额收益的重要工具。本文将系统梳理量化择时策略的基本概念,重点解析常见的技术指标和策略,并介绍如何使用Python进行量化择时分析。


一、 什么是量化择时策略

  • 定义:利用数量化分析方法,通过技术指标组合,对交易标的进行低买高卖的操作,期望获得超越简单买入持有策略的收益风险表现。
  • 核心:技术分析(客观型技术分析)
  • 优点:具有很强的可传授性和可复制性
  • 客观型技术分析:分析过程中使用的分析方法,100%客观定义,不含主观定义;
  • 特点:具有很强的可传授性和可复制性,任何人只要花费时间精力去理解,掌握;便可以得到令人满意的投资业绩;

1. 量化择时的内容

  • 股票市场的非理性是周期性爆发的;
  • 定量分析不一定会出色,但是也不会坠入疯狂;

所谓量化择时,即为:根据量化指标,选择买卖的时机。量化择时分为:

  • 市场整体择时
  • 板块行业轮动择时
  • 个股的择时

意义:选择牛市、规避熊市,获得高超额收益;选择时机进入是投资决策的首要目标,低风险区域进入能增大安全边际;

2. 量化择时的优点

  • 提高超额收益
    • 通过精准的市场时机选择,量化择时策略能够在市场上涨时买入,下跌时卖出,从而获得高于市场平均水平的收益。
  • 降低风险
    • 量化择时策略通过避免市场下跌期间的持有,有效降低了投资组合的整体风险。
  • 省去选股复杂性
    • 量化择时策略主要关注市场整体趋势,而非个股表现,因此投资者无需花费大量时间和精力进行个股研究与选择。
  • 系统化决策
    • 量化择时策略依赖于系统化的数据分析和技术工具,减少了人为情绪和主观判断的影响,提高了决策的客观性和一致性。
  • 灵活应对市场波动
    • 通过宏观先行指标、市场情绪指标、整体估值指标和技术分析指标的综合运用,量化择时策略能够灵活应对市场波动,及时调整投资组合。
  • 优化大类资产配置
    • 量化择时策略适用于大类资产配置,能够在不同资产类别(如股票、债券、商品等)之间进行动态调整,以优化投资组合的风险收益比。
  • 捕捉市场机会
    • 量化择时策略能够及时捕捉市场的短期拐点和中期趋势,从而在市场机会出现时迅速做出反应,最大化投资收益。
  • 长期稳健回报
    • 通过量化择时策略,投资者可以在不同市场环境下,灵活调整资产配置,以应对市场波动,实现长期稳健的投资回报。

二、量化择时的策略

常见的技术指标有:

  • 均线
  • MACD
  • RSI等

它们都有一个共同点,那就是具有明确的数学公式,这说明其有广泛性,任何人计算出来的结果都是一样的;

例如20日简单均线,不管谁画出来的均线都是一样的;

这些客观型技术指标按照其性能及其设计特征,归纳了八种量化择时的方法:

  • 趋势择时
  • Hurst指数
  • SWARCH模型
  • 异常指标择时
  • 市场情绪择时
  • SVM分类
  • 有效资金模型
  • 牛熊线

接下来我们将其整理为以下表格进行区分:

策略名称定义公式/计算方法作用指标备注
异常指标择时处理特殊情况下的择时,如大盘顶点或低点时的异常数据。无特定公式,主要依赖市场噪声、行业集中度和兴登堡凶兆等策略。识别市场极端情况,提前预警。市场噪声、行业集中度、兴登堡凶兆适用于市场出现极端情况时的择时。
趋势择时基于技术分析,认为趋势具有延续性,跟随趋势操作。主要指标:MA(移动平均线)、MACD(指数平滑异同移动平均线)、DMA(差离值)等。识别市场趋势,跟随操作以获取收益。MA、MACD、DMA适用于趋势明显的市场环境。
有效资金择时通过判断推动大盘上涨或下跌的有效资金来判断走势。构建有效资金指标EMS(有效资金模型),计算资金流入流出情况。判断市场趋势的拐点,优化资金配置。EMS(有效资金指标)适用于市场顶部和底部的资金流动分析。
市场情绪择时利用投资者情绪判断市场方向,情绪热烈时市场可能继续上涨,反之下跌。利用投资信心指数等情绪指标。捕捉市场情绪波动,预测市场趋势。投资信心指数适用于个人投资者居多的市场环境。
SVM择时利用支持向量机(SVM)技术进行大盘趋势的模式识别。利用SVM技术进行大盘趋势的模式识别,区分不同市场模式。通过模式识别预测市场趋势。SVM分类模型适用于大数据分析和模式识别。
SWARCH择时利用宏观经济指标(如货币供应量M2)判断大盘走势。刻画货币供应量M2与大盘走势之间的关系。通过宏观经济指标预测市场趋势。货币供应量M2适用于宏观经济与股市关联性强的市场。
牛熊线择时将大盘走势划分为牛线和熊线,突破牛线预示上涨趋势,突破熊线预示下跌。使用250日移动平均线(年线)作为牛熊线。判断市场长期趋势,捕捉大级别行情。250日移动平均线(年线)适用于长期趋势判断。
Hurst指数利用分形理论判断市场趋势的长期记忆性和转折点。计算Hurst指数,判断时间序列的长期记忆性。识别市场趋势的延续性和转折点。Hurst指数(H=0.5为随机游走,0.5<H<1为长期记忆性,0≤H<0.5为均值回复)适用于分形市场理论下的趋势判断。

1. 均线由来

这里将均线法则整理为表格:

法则分类法则名称描述图示说明
买入法则买1:黄金交叉均线整体上行,股价由下至上上穿均线,形成黄金交叉,为第一个买点。均线向上,股价从下方穿过均线。
买入法则买2:回测不过股价出现下跌迹象,但尚未跌破均线,均线变为支撑线,为第二个买点。股价下跌但未跌破均线,均线提供支撑。
买入法则买3:小幅跌破股价仍处于均线上方,但呈现急剧下跌趋势。当跌破均线时,为第三个买点。股价在均线上方急剧下跌,跌破均线。
买入法则买4:乖离过大股价和均线都处于下降通道,且股价处于均线下方,严重远离均线,为第四个买点。股价和均线均下降,股价严重偏离均线。
卖出法则卖1:死亡交叉均线由上升状态变为缓慢下降的状态,股价也开始下降。当股价跌破均线时,形成死亡交叉,为第一个卖点。均线由上升转为下降,股价跌破均线。
卖出法则卖2:回测不过股价仍处于均线之下,但股价开始呈现上涨趋势,当股价无限接近均线但尚未突破时,均线变为阻力线,为第二个卖点。股价在均线下方上涨,接近但未突破均线。
卖出法则卖3:小幅突破股价终于突破均线,处于均线上方。但持续时间不长,股价开始下跌,直至再一次跌破均线,为第三个卖点。股价突破均线后迅速下跌,再次跌破均线。
卖出法则卖4:乖离过大股价和均线都在上涨,股价上涨的速度远快于均线上涨的速度。当股价严重偏离均线时,为第四个卖点。股价和均线均上涨,股价严重偏离均线。
  • 买入法则:主要用于判断买入时机,通过股价与均线的相对位置来识别买入信号。
  • 卖出法则:主要用于判断卖出时机,通过股价与均线的相对位置来识别卖出信号。

Granville八大买卖法则通过简单的均线和股价关系,提供了明确的买卖信号,至今仍被广泛应用于股票市场的量化策略中。

2.常见均线

常见的均线包括简单移动平均线(SMA)和指数移动平均线(EMA)

  • 简单移动平均线(SMA)
    • 定义:SMA是通过将一段时间内的价格加总,然后除以时间段的长度来计算的。
    • 计算公式

SMA = ∑ i = 1 n P i n \text{SMA} = \frac{\sum_{i=1}^{n} P_i}{n} SMA=ni=1nPi

其中, P i P_i Pi是第 i i i天的价格, n n n是时间段的长度。
- 示例:20日简单移动平均线是根据过去20个交易日的收盘价来计算的。

  • 指数移动平均线(EMA)
    • 定义:EMA是根据指数平滑系数来计算的,它更加关注最近的价格数据。较新的价格数据会给予更高的权重,而较旧的价格数据则给予较低的权重。
    • 计算公式
      EMA t = α × P t + ( 1 − α ) × EMA t − 1 \text{EMA}t = \alpha \times P_t + (1 - \alpha) \times \text{EMA}{t-1} EMAt=α×Pt+(1α)×EMAt1
      其中, α \alpha α 是平滑系数(通常取值为 2 n + 1 \frac{2}{n+1} n+12), P t P_t Pt 是当天的价格, EMA t − 1 \text{EMA}_{t-1} EMAt1 是前一天的EMA值。
    • 初始EMA值:通常取第一个SMA值作为初始EMA值。
  • 应用
    • 趋势分析:均线可以帮助分析趋势和价格的走势。
    • 买卖信号:当价格上涨并且价格位于均线之上时,可能被视为买入信号;当价格下跌并且价格位于均线之下时,可能被视为卖出信号。
    • 交叉均线策略:使用两条不同长度的移动均线,当短期均线穿过长期均线时产生交易信号。

3. 均线计算

我们结合金融软件具体查看一下该指标。目前各大金融软件基本都提供移动平均值的计算,如下截图展示了平安银行(000001.SZ) 2023年4月到6月的估价走势,在右上角展示了5日移动平均值(M5)、10日移动平均值(M10)、20日移动平均值(M20)、30日移动平均值(M30)。

为了进一步计算验证,本文拉取了20230501 - 20230630 交易日每天的日行情数据,根据收盘价计算,可以看出该计算结果与金融产品上展示的数据一致。

计算代码如下:

"""
使用tushare库来获取股票数据,并对数据进行处理和计算移动平均值。
"""

import tushare as ts

# https://tushare.pro/user/token
tushare_token = '0858b935f4518d9e56ffeb19910dc13e296291364ea1d7bd574eb84b'
ts.set_token(tushare_token)
pro = ts.pro_api(tushare_token)

# 个股数据 https://tushare.pro/document/2?doc_id=27
# 从tushare获取个股数据,从2023年5月1日到2023年6月30日期间获取股票代码为000001.SZ的数据,字段包括交易代码、交易日期和收盘价。
df = pro.daily(ts_code='000001.SZ', start_date='20230501', end_date='20230630', fields='ts_code,trade_date,close')
df = df.sort_values(by='trade_date')

# 使用.rolling()函数计算收盘价的移动平均值,分别为5天、10天、20天和30天,并将结果存储在M5、M10、M20和M30列中。
df['M5'] = df.close.rolling(window=5).mean().round(2)
df['M10'] = df.close.rolling(window=10).mean().round(2)
df['M20'] = df.close.rolling(window=20).mean().round(2)
df['M30'] = df.close.rolling(window=30).mean().round(2)

# 对数据按交易日期进行降序排序,以便按照日期从新到旧的顺序显示数据。
df = df.sort_values(by='trade_date', ascending=False)
print("前10条数据:\n", df.head(10))
df.to_csv('result.csv', index=False)

输出结果:

根据输出的结果,可以看出已经成功计算出均线数据;


三、双均线策略

1.策略原理

双均线策略使用两根均线,一根长周期均线和一根短周期均线。当短期均线从下往上穿越长周期均线时,买入;当短期均线从上往下穿越长周期均线时,卖出。Granville八大法则也是一种双均线策略,其短周期均线为M1(当日收盘价)。

  • 短期均线:5、7、10,用于预测短期走势,MA5和MA10又称为短期监测线。
  • 中期均线:20、30、60,用于预测中期走势,MA20和MA30又称为警戒线,MA60则称之为生死线。
  • 长期均线:120、250,用于长期走势,MA120又称为确认线,MA250则通常被看做反转线,又称为牛熊分界线。

2.策略缺陷

  1. 滞后性:均线归根到底是一种平均值,在应用中存在的最大问题就是滞后性。当出现买入卖出信号时,最佳时机早已过去。
  2. 长短周期难以选择:如果两根均线的周期接近,容易缠绕,产生大量无效交易;如果周期差距较大,趋势性不明显,可能会造成很大亏损。

3.策略优化方向

  1. 使用加权移动平均值:将短期(如昨天)的权重增大,以加强指标的敏感性。
  2. 不局限于收盘价:尝试将最高价、最低价等加入到加权移动平均值的计算中。
  3. 自适应调整均线周期:根据价格走势自动调整均线周期,如单边上涨趋势时采用短期均线,横盘震荡时采用长期均线。

案例代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts

# 设置tushare token
# tushare_token = 'your_tushare_token'
tushare_token = '0858b935f4518d9e56ffeb19910dc13e296291364ea1d7bd574eb84b'
ts.set_token(tushare_token)
pro = ts.pro_api()

# 获取股票数据
df = pro.daily(ts_code='000001.SZ', start_date='20210101', end_date='20230630', fields='trade_date,close')

# 计算短期均线和长期均线
df['MA5'] = df['close'].rolling(window=5).mean()
df['MA20'] = df['close'].rolling(window=20).mean()

# 生成交易信号
df['signal'] = np.where(df['MA5'] > df['MA20'], 1, -1)

# 计算当天持仓状态
df['position'] = df['signal'].diff()

# 回测策略
df['return'] = df['close'].pct_change()  # 计算每日收益率
df['strategy_return'] = df['position'].shift() * df['return']  # 计算每日持仓收益

# 计算累计收益率
df['cumulative_return'] = (1 + df['strategy_return']).cumprod()

# 可视化结果
plt.plot(df['trade_date'], df['cumulative_return'])
plt.xlabel('Date')
plt.ylabel('Cumulative Return')
plt.title('Dual Moving Average Strategy')
plt.xticks(rotation=45)
plt.show()

结果如下:

代码思路:

  1. 数据获取
    • 使用tushare库获取股票代码为000001.SZ的股票数据,时间范围为2021年1月1日至2023年6月30日,字段为交易日期和收盘价。
  2. 计算均线
    • 计算5日和20日的简单移动平均线(SMA),分别存储在MA5MA20列中。
  3. 生成交易信号
    • 当5日均线(短期均线)在20日均线(长期均线)之上时,生成买入信号(1);反之,生成卖出信号(-1),存储在signal列中。
  4. 计算持仓状态
    • 通过signal列的差分计算持仓状态,持仓状态的变化表示买入和卖出的时机,存储在position列中。
  5. 回测策略
    • 计算每日收益率,并根据持仓状态计算每日策略收益率,存储在strategy_return列中。
    • 计算累计收益率,存储在cumulative_return列中。
  6. 可视化结果
    • 使用Matplotlib库绘制累计收益率曲线,展示策略的表现。
  • 交易成本:在实际应用中,需要考虑交易成本和滑点。
  • 止损和止盈:建议设置止损和止盈策略,以控制风险。
  • 策略优化:可以根据市场情况和策略表现,进一步优化均线周期和参数。

四、MACD均线择时策略

1.MACD指标概述

MACD(Moving Average Convergence and Divergence),即异同移动平均线,是由Gerald Appel在1979年提出的一种技术分析工具。它通过对金融资产价格的收盘价进行平滑处理,生成两线一柱的组合,分别是快速线DIF、慢速线DEA和柱状图MACDMACD指标能够反映股票近期价格走势的变化强弱和能量,帮助投资者把握准确的买卖点

2.MACD计算方法

MACD的计算涉及以下几个步骤:

  • 短期EMA:通常采用12天的收盘价指数移动平均值,记为EMA(price, 12)。
  • 长期EMA:通常采用26天的收盘价指数移动平均值,记为EMA(price, 26)。
  • DIF:短期EMA与长期EMA的差值,即DIF = EMA(price, 12) - EMA(price, 26)
  • DEA:DIF的9天指数移动平均值,即DEA = EMA(DIF, 9)
  • MACD:DIF线与DEA线的差,即MACD = DIF - DEA

3.依据MACD进行择时

MACD指标在择时策略中有以下经典应用:

  • 金叉:当MACD从负数转向正数,快速线DIF自下而上穿过慢速线DEA时,形成金叉,这是买入信号。
  • 死叉:当MACD从正数转向负数,快速线DIF自上而下穿过慢速线DEA时,形成死叉,这是卖出信号。
  • 大角度变化:当MACD以大角度变化时,表示快速线和慢速线的差距迅速拉开,预示着市场大趋势的转变。

4.MACD指标的优缺点

优点

  • 简化观察:相比双均线策略,MACD将两条线转换成单个指标,更容易观察。
  • 减少假信号:在震荡行情中,MACD能减少频繁发出假信号的现象。
  • 风险控制:MACD能较早地发出卖出信号,帮助策略在股价开始下跌时及时离场。

缺点

  • 错失利润:在大型趋势上涨行情中,MACD可能过早离场,错失部分利润。

5.代码案例

以下是案例代码,展示了如何使用MACD指标进行择时策略的回测:

import numpy as np
import pandas as pd
import talib as ta 
# Joinquant数据下载API
from jqdatasdk import *
# 登录验证
auth("xxxx电话号码", "xxxx聚宽登录密码")
import matplotlib.pyplot as plt

# 下载数据
# 下载2015-2018年的沪深300指数,频率为每天,只要收盘价
price = get_price("000300.XSHG", start_date="2023-07-22", end_date="2024-07-28", frequency="daily", fields=['close'])['close']
# 用python自带的tseries库中的pct_change()函数计算日收益率
ret = price.pct_change()

# 用talib库中的相应函数计算MACD指标
dif, dea, macd = ta.MACD(price)
# 只考虑MACD指标,MACD转正时开仓买入,转负时清仓
sig = (macd>0)

# sig滞后一期、去除空值、转换成整数
sig_lag = sig.shift(1).fillna(0).astype(int)
# sig_lag与股票日收益率相乘,即可得策略日收益率。python能自动对齐时间序列的日期。
sig_ret = sig_lag*ret
# 计算策略累计收益
cum_sig_ret = (1+sig_ret).cumprod()

# 把股票价格转换成从1开始,方便比较
price_norm = price/price[0]

# 简单起见,这里不考虑手续费,作图比较该策略和“买入-持有”策略的表现。
plt.figure(figsize=(18,8))
plt.plot(price_norm)
plt.plot(cum_sig_ret)
plt.legend(["benchmark", "strategy cumulative return"], loc="upper left")
plt.show()

通过这段代码,我们可以直观地比较MACD择时策略与“买入-持有”策略的表现。

相关包安装:

pip install numpy== 1.14.1
pip install thriftpy2==0.4.20 jqdatasdk pandas

pip install -U pandas_ta

conda install -c conda-forge TA-Lib

申请聚宽数据的链接:

聚宽登录

最后,投资需谨慎,本文仅供作者学习使用,切勿作为实践案例进行使用;若造成损失,作者可不负责哦!🙂


相关链接

  • 项目地址:AlgoQuant-CookBook
  • 相关文档:专栏地址
  • 作者主页:GISer Liu-CSDN博客

如果觉得我的文章对您有帮助,三连+关注便是对我创作的最大鼓励!或者一个star🌟也可以😂.


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2227144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电气安全隐患不容忽视

在现代生活中&#xff0c;电力如同血液般滋养着城市的每一个角落&#xff0c;然而&#xff0c;当这股能量失控时&#xff0c;它也能瞬间化身为吞噬生命的火焰。根据国家消防局的权威数据&#xff0c;电气火灾占所有火灾的28.4%&#xff0c;而其中6.5%的源头直指短路——这一看似…

单细胞数据分析(三):单细胞聚类分析

文章目录 介绍目的加载R包数据链接导入数据可视化聚类选择聚类分辨率值输出结果系统信息介绍 单细胞聚类分析是一种用于解析单细胞RNA测序(scRNA-seq)数据的方法,旨在将成千上万个单细胞根据它们的基因表达模式分组到不同的类别或“簇”中。每个簇代表了具有相似基因表达特…

auto占位符(C++11~C++17)

文章目录 1. 定义1.1 注意事项 2. 推导规则3. 返回类型推导(C14)4. lambda表达式中使用auto类型推导5. 非类型模板形参占位符&#xff08;C17&#xff09; 1. 定义 在C11以前&#xff0c;auto关键字是用来声明自动变量的。从C11起auto被用来&#xff1a;声明变量时根据初始化表…

推荐收藏!一款超好用的网盘资源搜索工具

抖知书老师推荐&#xff1a; 盘搜问世以来&#xff0c;以其简洁、实用的设计&#xff0c;迅速成为网民心中的网盘资源搜索利器。对于那些日常生活离不开网盘的用户来说&#xff0c;盘搜的存在让他们的资源查找变得更加便捷和高效。从影视资源到课程资料再到个人文件&#xff0…

opencv - py_imgproc - py_filtering filtering 过滤-卷积平滑

文章目录 平滑图像目标2D 卷积&#xff08;图像过滤&#xff09;图像模糊&#xff08;图像平滑&#xff09;1. 平均2. 高斯模糊3. 中值模糊4. 双边滤波 其他资源 平滑图像 目标 学习&#xff1a; 使用各种低通滤波器模糊图像将定制滤波器应用于图像&#xff08;2D 卷积&…

MT1401-MT1410 码题集 (c 语言详解)

目录 MT1401归并排序 MT1402堆排序 MT1403后3位排序 MT1404小大大小排序 MT1405小大大小排序II MT1406数字重排 MT1407插入 MT1408插入 MT1409旋转数组 MT1410逆时针旋转数组 MT1401归并排序 c 语言实现代码 #include <stdio.h>// merge two subarrays void merge(int a…

大数据日志处理框架ELK方案

介绍应用场景大数据ELK日志框架安装部署 一&#xff0c;介绍 大数据日志处理框架ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;是一套完整的日志集中处理方案&#xff0c;以下是对其的详细介绍&#xff1a; 一、Elasticsearch&#xff08;ES&#xff09; 基本…

PHP海外矿物矿机理财投资源码-金融理财投资源码

PHP海外矿物矿机理财投资源码/金融理财投资源码 海外矿物矿机理财投资源码 测试不错,可以做其他产品理财,功能都没啥太大问题

Unity3D学习FPS游戏(1)获取素材、快速了解三维模型素材(骨骼、网格、动画、Avatar、材质贴图)

前言&#xff1a;最近重拾Unity&#xff0c;准备做个3D的FPS小游戏&#xff0c;这里以官方FPS案例素材作为切入。 导入素材和素材理解 安装Unity新建项目新建文件夹和Scene如何去理解三维模型素材找到模型素材素材预制体结构骨骼和网格材质&#xff08;Material&#xff09;、…

php反序列化漏洞典型例题

1.靶场环境 ctfhub-技能树-pklovecloud 引用题目&#xff1a; 2021-第五空间智能安全大赛-Web-pklovecloud 2.过程 2.1源代码 启动靶场环境&#xff0c;访问靶场环境&#xff0c;显示源码&#xff1a;直接贴在下面&#xff1a; <?php include flag.php; class pks…

【flask】 flask redis的使用

目的&#xff1a;如何使用在flask web项目中连接redis&#xff0c;并简单的使用 使用的库包&#xff1a;flask-redis pip install falsk-redis下面的写法是对项目代码进行模块化拆分的写法&#xff0c;在app.py中只进行对象的初始化等操作&#xff1b;exts.py中创建对象&…

【含文档】基于ssm+jsp的房屋中介服务平台(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了两个…

CI/CD 的原理

一、CI/CD 的概念 CI/CD是一种软件开发流程&#xff0c;旨在通过自动化和持续的集成、测试和交付实现高质量的软件产品。 CI(Continuous Integration)持续集成 目前主流的开发方式是协同开发&#xff0c;即多位开发人员同事处理同意应用不同模块或功能。 如果企业在同一时间将…

网络请求自定义header导致跨域问题

我记得我的项目之前已经解决了跨域问题。 后来在功能开发着&#xff0c;需要添加一个自定义的header&#xff0c;发现又出现跨域报错。 于是又开始一通摸索折腾。 我的项目前面端是用axios网络请求&#xff0c;通过拦截器添加header&#xff0c;代码如下&#xff1a; //添加请…

python实战项目47:Selenium采集百度股市通数据

python实战项目47:Selenium采集百度股市通数据 一、思路分析二、完整代码一、思路分析 这里以获取百度股市通股评下的投票数据为例,页面中的其他数据同理。由于此页面数据是js动态加载的,所以采用Selenium获取数据。思路很简单,通过Selenium打开页面,然后定位到“股评”选…

《使用Gin框架构建分布式应用》阅读笔记:p212-p233

《用Gin框架构建分布式应用》学习第12天&#xff0c;p212-p233总结&#xff0c;总22页。 一、技术总结 1.JavaScript知识点 (1)class、method (2)function, arrow function, (3)fetch() (4)Promise, then() 2.bootstrap 第5章主要涉及前端技术的运用&#xff0c;作为后…

nfs作业

nfs作业 服务机&#xff1a; 编写配置文件&#xff1a; [rootlocalhost ~]# vim /etc/exports 配置文件内容&#xff1a; /nfs/shared *(ro,sync) /nfs/upload 192.168.36.0/24(rw,anonuid210,anongid210,sync) /home/tom 192.168.36.132(rw) 创建目录&#xff0c;文件&am…

紫杉醇的药物代谢-文献精读73

Hydrogen-Bond-Assisted Catalysis: Hydroxylation of Paclitaxel by Human CYP2C8 氢键辅助催化&#xff1a;人类CYP2C8对紫杉醇的羟基化 摘要 紫杉醇&#xff08;PTX&#xff0c;或称Taxol&#xff09;是一种广泛用于治疗多种癌症的化疗药物&#xff0c;经过细胞色素P450酶…

使用语言模型进行文本摘要的五个级别(llm)

视频链接&#xff1a;5 Levels Of LLM Summarizing: Novice to Expert

A Simple Semi-Supervised Learning Framework for Object Detection

1. Introduction SSL的成功主要有以下两个方面&#xff1a; &#xff08;1&#xff09;一致性正则化&#xff1a;如果对一个未标记的数据应用实际的扰动, 其预测结果不应该发生显著变化, 也就是输出具有一致性&#xff0c;通过在未标记数据上构造添加扰动后的预测结果 y~​ 与…