MACD指标精讲PART1:MACD指标入门及使用法则

一、MACD指标入门

MACD(Moving Average Convergence Divergence)指标称为指数平滑异同移动平均线指标,是由Geral Apple所创造,用来跟踪股价运行趋势、判断股票买卖时机的技术分析工具。
MACD指标由DIFF线(Difference线,收盘价短期/长期指数平滑移动平均线间的差)、DEA线(Difference Exponential Average线,DIFF线的M日指数平滑移动平均线)、MACD柱线和零轴“三线一轴”组成。投资者通过这“三线一轴”的交叉、背离、突破、支撑和阻碍等方式来对股价进行分析、判断。

1.1、MACD指标的特点

(1)MACD指标来源于股价的指数移动平均线EMA,具有均线指标稳定/能追随趋势的特点,可以对市场动能做出客观的反映。同时,MACD指标去掉了均线有时频繁发出假信号的缺陷,使得指标在对中长期趋势的把握上准确率较高,深受趋势型投资者的欢迎。
(2)MACD指标实际上围绕两个离差值进行分析,是市场动能最直接的反映。两个离差值,一个是DIFF线,是快慢均线的差值,可以理解为股价上涨或下跌的速度;另一个是MACD柱线,是快慢DIFF线的差值(DIFF-DEA),可以理解为股价上涨或下跌的加速度
(3)MACD指标的滞后性:该指标剔除了股价短期上下波动的影响,主要反映市场中长期趋势,对股价短期走势的反映往往较为滞后,远不如K线形态那样及时。
(4)MACD指标不适合超短线投资者使用,不适合在盘整行情中使用。在盘整行情中,MACD指标一般会围绕着零轴上下运动,频繁发出交易信号,这些信号大多属于无效信号。

1.2、DIFF和DEA线

(1)DIFF线与DEA线的计算过程

MACD指标默认参数为12/26/9。按照这样的参数,DIFF线和DEA线的计算过程分为以下三步:
第一步,计算指数移动平均值EMA。
其中12日EMA值为:
E M A = 2 12 + 1 ∗ 今日收盘价 + 12 − 1 12 + 1 ∗ 昨日 E M A ( 12 ) EMA = \frac{2}{12+1}*今日收盘价+ \frac{12-1}{12+1}*昨日EMA(12) EMA=12+12今日收盘价+12+1121昨日EMA12
26日EMA值为:
E M A = 2 26 + 1 ∗ 今日收盘价 + 26 − 1 26 + 1 ∗ 昨日 E M A ( 26 ) EMA = \frac{2}{26+1}*今日收盘价+ \frac{26-1}{26+1}*昨日EMA(26) EMA=26+12今日收盘价+26+1261昨日EMA26
第二步,计算离差值DIFF
D I F F = E M A ( 12 ) − E M A ( 26 ) DIFF = EMA(12)-EMA(26) DIFF=EMA12EMA26
第三步,计算DIFF的9日平滑移动平均值DEA
今日 D E A ( M A C D ) = 2 9 + 1 ∗ 今日 D I F F + 9 − 1 9 + 1 ∗ 昨日 D E A 今日DEA(MACD)= \frac{2}{9+1}*今日DIFF+ \frac{9-1}{9+1}*昨日DEA 今日DEAMACD=9+12今日DIFF+9+191昨日DEA
通过该计算公式可以看出,DIFF实际上是12日EMA与26日EMA的差值,而DEA则是DIFF的9日平滑移动平均线。

(2)DIFF线和DEA线的用法

DIFF线本质上是快慢均线的差值,该值的变动是对股价上涨和下跌速度最直观的描述,投资者在实践中可以将其理解为股价动能运动情况,DEA线由于是DIFF线的移动平均线,自然也具有这一特征。
在实战中,根据DIFF线/DEA线的值和位置,可以将他们的用法分类:

DIFF值DIFF位置DEA值DEA位置市场状态操作
大于0向上移动大于0向上移动上涨动能强劲,股价处于多头行情做多或持股待涨
小于0向上移动小于0向上移动上涨动能正在增加,可能会出现上涨走势,但是否反转还需要继续观察少量买入股票或观望
大于0向下移动大于0向下移动下跌动能逐步增加,股价可能出现下跌趋势,但是否反转还需要继续观察卖出部分股票或观望
小于0向下移动小于0向下移动下跌动能强劲,股价处于下跌趋势持币观望

通过DIFF线和DEA线对股价进行研判,除需要了解位置和数值之外,时间也是一个重要的考量因素。
当DIFF线和DEA线在零轴上方运行时,如果持续时间很长,就表明股价长时间地处于上涨趋势,此时上涨动能很强,除非DIFF线或DEA线出现非常明显的转势信号(如跌破零轴或多次顶背离),否则上涨趋势仍将延续。投资者要注意顺势而为,持股的投资者要注意不要急匆匆的卖出股票。
同理,当DIFF线和DEA线在零轴下方运行时,如果持续时间很长,就表明股价长时间地处于下跌趋势,下跌动能很强。此时除非出现明显的反转信号,否则不能判断上涨趋势的到来,投资者要注意持币观望,不能贸然进场。
当DIFF线和DEA线在零轴上方向下移动时,投资者要注意两点:
(1)除非DIFF线和DEA线彻底跌破零轴,否则不能判断上涨趋势结束。
(2)DIFF线和DEA线回到零轴之后,往往出现盘整走势。此时DIFF线将围绕着零轴上下不断震荡。

1.3、MACD柱线

(1)MACD柱线的由来

MACD柱线是由DIFF线和DEA线衍生出来的另一指标线,其计算公式为:
M A C D 柱线 = 2 ∗ ( D I F F − D E A ) MACD柱线 = 2*(DIFF-DEA) MACD柱线=2DIFFDEA
MACD柱线实际上是DIFF线和DEA线差值的放大。

(2)MACD柱线的用法

柱线是对DIFF线变化快慢程度(DIFF线与DEA线的差值)的一种度量,而DIFF线则是对股价变动快慢程度的一种度量,因此可以把柱线看作为股价涨跌的加速度,并由此来理解它的各种用法。

MACD柱颜色MACD柱趋势市场状态操作
红色持续发散表明上涨动能较强,股市处于急速上涨行情中持股待涨或短线买入
红色持续收敛表明上涨动能开始衰减,投资者要警惕下跌趋势形成当MACD柱变色或柱线与股价顶背离,就可离场

在把握这个用法是,投资者需要注意以下三个关键点:
(1)MACD柱线为红色且持续发散时,股价一般正在快速上涨中,此时买入往往抢不到好的价位;
(2)MACD柱线开始逐渐缩小时,投资者不必着急卖出,此时股价往往正在缓慢上涨;但在动能衰减的过程中,DIFF线也回调,才是真正需要警惕的离场信号。
(3)在卖出的时候,“MACD柱变色”的可靠性不如“MACD柱线与股价顶背离”高(股价创新高,但是MACD柱没有创新高);

MACD柱颜色MACD柱趋势市场状态操作
绿色持续发散表明市场正处于急速下跌阶段持币观望或卖出股票
绿色持续收敛表明市场下跌动能衰减等柱线变色或者柱线与股价出现底背离的时候,少量进行长线战略建仓,等上涨趋势确定后,再大举入场

投资者再运用柱线是,除了以上四种情况外,还有注意以下几个重要看点:
(1)柱线主要用来研判DIFF的走势,通过柱线的起伏变动可以方便地得知DIFF地变动趋势。当柱线由绿转红时,意味着DIFF线向上突破DEA线,出现了金叉;当柱线由红转绿时,意味DIFF线向下突破DEA线,出现死叉。
当DIFF线在零轴上方运行时,一旦柱线与股价出现了顶背离,在下跌动能的驱动下,DIFF线和DEA线接下来往往会出现死叉,一起回到零轴,甚至形成一波下跌趋势。相反,当DIFF线在零轴下方运行时,一旦柱线和股价出现底背离,在上涨动能的驱使下,DIFF线和DEA线接下来又较大可能出现金叉,并顺利回到零轴,甚至出现一般上涨趋势。
(2)仅凭MACD柱线难以判断趋势
一般来说,MACD柱线围绕着零轴上下波动,即使是在长时间的趋势运行中,柱线也围绕着零轴上下起伏。因此投资者不能仅利用柱线来研判股价的运行趋势,必须结合其他技术分析工具进行综合分析。
(3)柱线可以用来研判具体的买卖点
由于DIFF线能够对市场动能和趋势做出较为直观的反映,而MACD柱线又能对DIFF的短期变动做出及时的反映,头i作者虽然不能用柱线来研判趋势,但是可以用柱线背离/颜色转换来研判具体的买卖点。特别是当DIFF线显示股价即将出现一波上涨趋势时,投资者结合柱线往往能够抓住上涨趋势的最低点。相反,当DIFF线显示股价即将出现一波下跌趋势时,投资者结合柱线往往能够抓住下跌趋势的最高点。

二、MACD指标的作用和使用法则

2.1、四大作用

2.1.1判断股价涨跌趋势

利用MACD指标来判断股价涨跌趋势,主要是通过DIFF线(DEA线也可以)来实现的,在实战中投资者可以通过以下两种途径来判断。
(1)DIFF线穿过零轴

DIFF状态市场状态操作
由下向上穿过零轴上涨趋势已经初步形成分批建仓
穿过零轴后冲高回落在零轴得到支撑,再次向上上涨趋势已经彻底形成买入
由上向下穿过零轴下跌趋势已经初步形成部分卖出
向下穿过后反弹确认,之后再次下跌下跌趋势已经彻底形成卖出

(2)DIFF线的背离
DIFF线(或DEA线)与股价背离是判断市场趋势的另外一种常用方法。

DIFF状态股价状态市场状态操作
DIFF线与股价底背离股价突破前期重要阻力位表明上涨趋势已经初步形成,有时股价突破之后会有一个回抽确认过程,这是上涨趋势彻底形成的标志买入
DIFF线与股价顶背离股价跌破前期重要支撑位表明下跌趋势已经初步形成,有时股价跌破之后会有一个反弹确认过程,这是下跌趋势彻底形成的标志卖出

在实战中,投资者通过DIFF线与股价背离关系来判断市场趋势,要注意与其他技术分析工具向结合,特别是以下三种最为常用的工具:
第一,DIFF线与DEA线的交叉(MACD柱),它往往出现在背离之后,起到确认的作用。如果背离出现后,迟迟MACD柱不变色,就表明背离的动能太弱。
第二,MACD柱线的背离,如果该信号也出现,往往表明趋势将很快到来。
第三,成交量的配合,当DIFF线和股价的底背离出现时候,成交量可能不会太高,但随着股价的上涨,成交量将会大幅放大。
投资者通过以上两种方法来判断市场的涨跌趋势时,必须要考虑时间因素。一般来说,上涨趋势即将形成的时候,市场正处于下跌趋势或盘整趋势中,如果下跌或者盘整持续的时间太长,那么这两种判断上涨趋势的方法的可靠性将有所降低。最典型的是,在长期下跌趋势中,即使出现DIFF线与股价的底背离,但是由于下跌动能太过强势,底背离只能使股价短期内略有反弹,但无法使之彻底转势。相反,下跌趋势即将形成的时候也是同理。

2.1.2 寻找买卖点

买卖点是指技术指标所发出的关于买进和卖出股票的信号。利用MACD指标寻找买卖点,可以有多种方法,常见的有DIFF线和DEA线与股价的背离、DIFF线和DEA线的交叉、MACD柱的背离、DIFF线和DEA线的形态等。

2.1.3寻找转支撑/阻力位

寻找支撑/阻力位是MACD指标的另一个重要作用,它主要通过以下两个方法来实现:

指标说明
零轴当DIFF线在零轴下方运行时,零轴对其有重要的阻力作用;而一旦DIFF线突破零轴,零轴对它就具有重要的支撑作用。这种支撑和阻力作用在实战中往往构成重要买卖点。
DEA线DEA线因为是DIFF线的9日移动平均线,所以对DIFF线具有一定的支撑、阻碍作用。MACD指标买卖点中,“拒绝金叉卖点”和“拒绝死叉买点”都是根据DEA线的支撑和阻力作用而来的。

投资者要注意的是,当DIFF线长时间围绕着零轴窄幅震荡时,表明在股价走势中,两条快慢均线正缠绕到一起,市场正处于盘整状态。那么DIFF线围绕零轴震荡的区间一旦被突破,也会有重要的支撑或阻碍作用。

2.2、使用技巧

2.2.1 趋势第一

MACD指标作为判断市场趋势的重要工具,在使用的过程中,首先要注意的就是利用该指标判断市场趋势。

DIFFDEA值市场状态操作
零轴上方零轴上方上涨趋势持股待涨或逢低加仓
零轴附近波动零轴附近波动盘整状态高抛低吸或持币观望
零轴下方零轴下方下跌趋势持币观望

2.2.2 多周期共振

在实战中,投资者在分析股票走势时,一般要用到多个周期的走势图,常用的有月/周/日/60分钟/30分钟/15分钟/5分钟这7个周期。多周期共振是指任何一个买点或卖点都必须有两个或两个以上的周期发出买入或卖出信号(越多越可靠)时,投资者才最终买入或卖出,当只有单独的一个周期发出买卖信号时,投资者可不予考虑。
对于长线投资者,当月或周线图出现买卖信号时,日线图也发出相同方向买卖信号才考虑买入和卖出

2.2.3参数的修改

对股价变动的反应滞后,买卖价位有时不太理想,这是MACD指标的一个缺陷,改变这种情况的方法之一就是通过改变指标参数,使得MACD指标对走势的反应变得灵敏一些。投资者可以在实际使用中自行验证,比如修改位5/34/5,5/10/30等。但修改参数虽然能让灵敏度提高,但可靠性会有所降低,需要综合考虑。

2.2.4 多指标配合

在实战中,买卖点的可靠性非常重要,除了多周期共振外,多指标配合也很重要。
多指标配合是指每一个买卖点的出现都需要至少两种或两种以上的技术分析工具发出同方向的买卖信号,才能最终确认。例如MACD指标与成交量指标配合、MACD指标与K线组合理论配合、MACD与KDJ指标配合等

2.2.5形态法则

在实战中,DIFF线(或DEA线)的形态可分为三类
(1)顶部底部的经典反转状态
在经典形态理论中,反转形态主要有双重顶(M头)和双重底、头肩顶和头肩底、三重顶和三重底、圆弧顶和圆弧底等形态。当股价走势一旦出现这种形态的时候,就表示市场可能发生反转。
(2)顶背离和底背离
MACD的背离是指MACD指标的走势与股价走势正好相反,表明与市场原来趋势相反的动能正在聚集。
(3)趋势线
趋势线是指连接连续两个或两个以上波峰(或波谷)的直线,它可以直观地表示所观察对象地运行趋势,其中连接波谷地直线被称为上升趋势线,连接波峰的直线被称为下降趋势线,趋势线的一个重要特点就是起到支撑和阻力的作用,一旦被突破,就表示市场运行趋势将发生较大的变化。

4、MACD指标实操练习

结合DIFF线/MACD柱线以及股价状态,我制定了如下策略,随机选择一些股票看看实战效果如何:

DEA状态股价状态MACD状态市场状态操作
向下移动顶背离由红转绿下跌动能十分强劲卖出
向上移动底背离由绿转红上涨趋势形成分批买入,底背离买入一次,MACD变色买入一次,DIFF穿过零轴买入一次,共三次

我们以海康威视的股票为例,先定义一个存储策略函数的py文件,代码如下:

import numpy as np
import pandas as pd
import talib
from gm.api import *
import datetime
import matplotlib.pyplot as plt
"""
MACD指标
TALIB金融库中提供的MACD函数与国内实际使用的不同,因此转换为国内常用的形式;
MACD称为异同移动平均线,是从双指数移动平均线发展而来的;
由快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,再用2×(快线DIF-DIF的9日加权移动均线DEA)得到MACD柱。
MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势,但阅读起来更方便。
MACD的变化代表着市场趋势的变化,不同K线级别的MACD代表当前级别周期中的买卖趋势。
"""
def MACD_CN(close, fastperiod = 12, slowperiod = 26, signalperiod = 9):macdDIFF,macdDEA,macd = talib.MACDEXT(close,fastperiod = fastperiod,fastmatype=1,slowperiod = slowperiod,slowmatype =1,signalperiod =signalperiod,signalmatype =1) #平滑异同移动平均线(可控制移动平均算法)macd = macd * 2return macdDIFF,macdDEA,macd
"""
MACD指标买入策略
策略1:当DEA大于0时,且MACD由绿转红的时刻触发买入操作;"""
def MACD_strategy_buy_simple1(close, fastperiod=12, slowperiod=26, signalperiod=9,strategy_buy_num=1):macdDIFF, macdDEA, macd = MACD_CN(close, fastperiod=12, slowperiod=26, signalperiod=9)signal = 0 # 标志位,0代表无动作,1代表买入#策略1:当DEA大于0时,且MACD由绿转红的时刻触发买入操作;if strategy_buy_num == 1:if macdDEA[-1] > 0 and macd[-1]*macd[-2] < 0:signal = 1;return signal
"""
MACD指标卖出策略
策略1:当DEA小于0时,且MACD由红转绿的时刻触发卖出操作;"""
def MACD_strategy_sell_simple1(close, fastperiod=12, slowperiod=26, signalperiod=9,strategy_sell_num=1):macdDIFF, macdDEA, macd = MACD_CN(close, fastperiod=12, slowperiod=26, signalperiod=9)signal = 0 # 标志位,0代表无动作,1代表卖出#策略1:当DEA小于0时,且MACD由红转绿的时刻触发卖出操作;if strategy_sell_num == 1:if macdDEA[-1] < 0 and macd[-1]*macd[-2] < 0:signal = 1return signal

之后再建立一个运行的主函数:

# coding=utf-8
from __future__ import print_function, absolute_import, unicode_literals
from gm.api import *import datetime
import numpy as np
import talib
import pandas as pd
import MACD_strategy
import pandas as pd
import matplotlib.pyplot as plt'''
示例策略仅供参考,不建议直接实盘使用。行业轮动策略
逻辑:以场内ETF基金代表,按照月收益率进行排序,选择收益率最高的10只ETF基金进行买入,每月进行一次调仓换股
'''def init(context):#股票代码context.index = "SZSE.002415"#买入股票的标志位context.buy_signal = 0#卖出股票的MFI阈值context.sell_signal = 0# 每日定时任务schedule(schedule_func=algo, date_rule='1d', time_rule='09:30:00')# schedule(schedule_func=algo_zhiyingzhisun, date_rule='1d', time_rule='09:31:00') #根据盈利亏损值止盈止损def algo(context):# 当天日期now_str = context.now.strftime('%Y-%m-%d')# 获取上一个交易日及上一周交易日last_day = get_previous_n_trading_dates(exchange='SHSE', date=now_str, n=1)[0]# 获取历史交易数据data = history_n(symbol=context.index, frequency="1d", count=100, end_time=last_day,fields="high, low, close, volume", fill_missing="last", adjust=ADJUST_PREV, df=True)# 从dataframe中提取数据close = data["close"].valuescontext.buy_signal = MACD_strategy.MACD_strategy_buy_simple1(close=close, fastperiod=12, slowperiod=26, signalperiod=9, strategy_buy_num=1)context.sell_signal = MACD_strategy.MACD_strategy_sell_simple1(close=close, fastperiod=12, slowperiod=26, signalperiod=9,strategy_sell_num=1)if context.buy_signal == 1:print("买入")order_target_percent(symbol=context.index, percent=1, order_type=OrderType_Market,position_side=PositionSide_Long)if context.sell_signal == 1:print("卖出")order_target_percent(symbol=context.index, percent=0, order_type=OrderType_Market,position_side=PositionSide_Long)def algo_zhiyingzhisun(context):now_str = context.now.strftime('%Y-%m-%d')print(now_str+"执行策略2")positions = get_position()for position in positions:symbol = position['symbol']price = position["price"] #当前行情价格vwap = position["vwap"] #持仓均价# print(position)if (price - vwap)/vwap < -0.1: #当亏损大于10%,止损order_target_percent(symbol=symbol, percent=0, order_type=OrderType_Market,position_side=PositionSide_Long)print(symbol+"止损"+now_str)elif (price - vwap)/vwap > 0.4: #当盈利大于30%,止盈order_target_percent(symbol=symbol, percent=0, order_type=OrderType_Market,position_side=PositionSide_Long)print(symbol+"止盈"+now_str)def on_order_status(context, order):# 标的代码symbol = order['symbol']# 委托价格price = order['price']# 委托数量volume = order['volume']# 目标仓位target_percent = order['target_percent']# 查看下单后的委托状态,等于3代表委托全部成交status = order['status']# 买卖方向,1为买入,2为卖出side = order['side']# 开平仓类型,1为开仓,2为平仓effect = order['position_effect']# 委托类型,1为限价委托,2为市价委托order_type = order['order_type']if status == 3:if effect == 1:if side == 1:side_effect = '开多仓'else:side_effect = '开空仓'else:if side == 1:side_effect = '平空仓'else:side_effect = '平多仓'order_type_word = '限价' if order_type == 1 else '市价'print('{}:标的:{},操作:以{}{},委托价格:{},委托数量:{}'.format(context.now, symbol, order_type_word, side_effect,price, volume))def on_backtest_finished(context, indicator):print('*' * 50)print('回测已完成,请通过右上角“回测历史”功能查询详情。')if __name__ == '__main__':'''strategy_id策略ID,由系统生成filename文件名,请与本文件名保持一致mode实时模式:MODE_LIVE回测模式:MODE_BACKTESTtoken绑定计算机的ID,可在系统设置-密钥管理中生成backtest_start_time回测开始时间backtest_end_time回测结束时间backtest_adjust股票复权方式不复权:ADJUST_NONE前复权:ADJUST_PREV后复权:ADJUST_POSTbacktest_initial_cash回测初始资金backtest_commission_ratio回测佣金比例backtest_slippage_ratio回测滑点比例backtest_match_mode市价撮合模式,以下一tick/bar开盘价撮合:0,以当前tick/bar收盘价撮合:1'''run(strategy_id='自己的策略ID',filename='MACD_strategy_test.py',mode=MODE_BACKTEST,token='自己的token码',backtest_start_time='2012-03-01 09:00:00',backtest_end_time='2024-08-01 15:00:00',backtest_adjust=ADJUST_PREV,backtest_initial_cash=1000000,backtest_commission_ratio=0.0001,backtest_slippage_ratio=0.0001,backtest_match_mode=1)

运行结果如下,收益为562%,还是非常可观的,年化收益率16%以上。
在这里插入图片描述
加上止盈止损策略后,收益率有了进一步的提升,年化收益率达到19%以上。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈架构实战

目录 背景 1 架构演变 2 如何实现高层的复用 2 中台产生案例 3 技术架构的核心要点 4 技术架构的高可用案例 背景 业务架构、数据架构、应用架构和技术架构它们是相互关联和相互支持的&#xff0c;共同构成了企业的总体架构&#xff0c;业务架构是源头&#xff0c;然后才…

强推!创新直发核心!时序分解+优化组合+模型对比!VMD-SSA-Transformer-BiLSTM多变量时间序列预测

强推&#xff01;创新直发核心&#xff01;时序分解优化组合模型对比&#xff01;VMD-SSA-Transformer-BiLSTM多变量时间序列预测 目录 强推&#xff01;创新直发核心&#xff01;时序分解优化组合模型对比&#xff01;VMD-SSA-Transformer-BiLSTM多变量时间序列预测效果一览基…

如何将图表数据拟合为函数

1. 数据准备 收集图表数据&#xff0c;包括独立变量&#xff08;如 x值&#xff09;和因变量&#xff08;如 y 值&#xff09;。这些数据可以是离散的点&#xff0c;通常表示为一组 (x1,y1),(x2,y2),…,(xn,yn)。 2. 选择模型 选择拟合函数的模型。这取决于数据的特征及其在…

YOLO配合 PYQT做自定义虚拟电子围-自定义绘制多边形虚拟电子围栏

1、目标检测&#xff1a; YOLO可以识别检测物体&#xff0c;这是众所周知的。使用YOLO来做目标检测&#xff0c;并获取坐标信息。 2、电子围栏 比如在监控中&#xff0c;指定一块区域&#xff0c;如果有目标进入&#xff0c;则发出警报&#xff0c;并提示。比如下图标红的区…

使用rabbitmq发送消息和caffeineCache保存本地

目录 使用stock_job工程采集到国内大盘的最新交易时间的信息并插入数据库&#xff0c;使用rabbitmq发送消息 1.导入依赖 2.编写yml文件&#xff0c;配置连接rabbitmq的信息 3.编写mq的配置类&#xff0c;生成交换机&#xff0c;消息队列&#xff0c;并将他们绑定 4.采集最新…

Centos安装配置Gitea(Ubuntu等系统也可参考)

准备工作 安装好宝塔面板&#xff0c;再进入宝塔面板安装好MySQL&#xff0c;添加配置一个MySQL数据库gitea&#xff0c;用户名和密码也为gitea &#xff08;也可用命令行做相关操作&#xff0c;自行搜索教程&#xff09; 通过终端下载安装git&#xff0c;添加普通用户git&a…

《Nginx核心技术》第16章:实现Nginx的高可用负载均衡

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

网络安全AI大模型训练从入门到精通

前言 2022年下半年&#xff0c;国内安全圈内开始完chatGPT&#xff0c;当时在安全圈内小火了一把。大家纷纷注册去体验一把&#xff0c;希望chatGPT能帮助解决日常安服渗透问题。当时以为仅此而已&#xff0c;谁知年后大火&#xff0c;随后以chatGPT为代表的大语言模型&#x…

掌握Hive函数[3]:从基础到高级应用

目录 窗口函数&#xff08;开窗函数&#xff09; 概述 常用窗口函数 1&#xff09;聚合函数 2&#xff09;跨行取值函数 &#xff08;1&#xff09;LEAD 和 LAG &#xff08;2&#xff09;FIRST_VALUE 和 LAST_VALUE 3&#xff09;排名函数 案例演示 1. 数据准备 1&…

数据库锁之行级锁、记录锁、间隙锁和临键锁

1. 行级锁 InnoDB 引擎支持行级锁&#xff0c;而MyISAM 引擎不支持行级锁&#xff0c;只支持表级锁。行级锁是基于索引实现的。 对于普通的select语句&#xff0c;是不会加记录锁的&#xff0c;因为它属于快照读&#xff0c;通过在MVCC中的undo log版本链实现。如果要在查询时对…

spring security 中的授权使用

一、认证 身份认证&#xff0c;就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证&#xff0c;但是无论开发者使用那种方式认证&#xff0c;都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。 二、授权 授权&#x…

【Anaconda】修改jupyter notebook默认打开的工作目录、jupyter notebook快捷键

jupyter notebook快捷键 针对单元格的颜色蓝色命令行模式绿色编辑模式 两种模式的切换编辑模式切换到命令行模式 >>> esc键命令行模式切换到编辑模式 >>> 鼠标左键或者直接按enter键1.标题的书写方式1:1.esc进入命令行模式2.按m键3.写内容4.运行单元格即可方…

基于SpringBoot的智能制造云平台系统的设计与实现计算机毕设

一、选题背景与意义&#xff08;300字左右&#xff09; 根据工业4.0智能制造生态链中云工厂在实际生产当中的工作流程进行充分调研和整理出来的&#xff0c;描述最终用户在本系统中对于生产订单的处理、排产、以及生产的完整在线处理流程和业务需求的文档。 针对制造业而言&a…

COD论文笔记 BiRefNet

本质还是一个 U 型编码器解码器结构的分割模型。 我可以考虑将©和(d)结合&#xff0c;即对解码器的输入不进行 patchify,同时在各个阶段引入梯度参考信息 最近的相关工作&#xff0c;中间监督、额外先验(频率&#xff0c;梯度&#xff0c;边缘等)取得不错效果 作者观察到…

【数据分享】《中国城市统计年鉴》(1985-2023)全PDF版本 第一次补档

数据介绍 中国城市&#xff0c;如同一本生动的历史书&#xff0c;承载着经济、社会的快速变迁。《中国城市统计年鉴》记录了城市的发展轨迹&#xff0c;是我们理解城市化进程、洞察城市挑战的重要指南。 这份年鉴的数据庞大而详实&#xff0c;囊括了中国城市发展的多个方面。…

二、Maven工程的创建--JavaSEJavaEE

1、idea创建Maven JavaSE工程&#xff1a; 2、idea创建Maven JavaEE工程&#xff1a; &#xff08;1&#xff09;手动创建 &#xff08;2&#xff09;插件方式创建 在idea里安装插件JBLJavaToWeb&#xff1b; 选择需要生成的项目文件后&#xff0c;右击&#xff1a; 项目…

【verilog】1. 流水灯例程

文章目录 前言一、定义概念 缩写1. verilog 二、性质三、代码分解释四、完整代码参考文献 前言 数电课设 一、定义概念 缩写 1. verilog Verilog 是一种以代码形式来描述数字系统和电路的硬件描述语言 (HDL)。它由 Gateway Design Automation 在 20 世纪 80年代中期开发&a…

【Linux】进程控制(一)

1. 进程创建 &#xff08;一&#xff09;认识fork函数 从已存在进程中创建一个新进程&#xff08;新进程为子进程&#xff0c;而原进程为父进程&#xff09; 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核做&#xff1a; 分配新的内存块和内核数…

JVM 调优篇1 类的加载器与加载过程

一 基本知识 1.1 JIT&AOT JIT: Just Time compilation 即时编译器 在程序运行时将字节码或中间表示转换为机器代码。 AOT: Ahead of Tmie Compilation &#xff1a; 预编译 在程序运行之前将高级语言代码完全编译成机器代码。 1.2 字面量和符号引用* 字面量&am…

逻辑代数的基本规则

目录 逻辑代数的基本规则 带入规则 反演规则 对偶规则 逻辑代数的基本规则 带入规则 将逻辑等式两边的某一变量均用同一个逻辑函数代替&#xff0c;等式仍然成立。 可以用A非代替A&#xff0c;也可以用C代替B。 也可使用BC这样一个整体代替B。 反演规则 可以把与换或&#x…