量化策略分享:怎么用MACD和Boll做成量化交易策略?
还有疑问,立即追问>

量化交易策略量化交易黄金期货APP

量化策略分享:怎么用MACD和Boll做成量化交易策略?

叩富问财 浏览:665 人 分享分享

咨询TA
首发回答

目前量化程序交易越来越流行,但很多散户不知道从哪下手,因此我会持续分享一些量化入门知识,涵盖了量化软件介绍与推荐、量化策略编程、回测、优化、优质量化指标等全套内容,欢迎和我一起探讨学习。接下来我就来分享一个:用MACD和BoIl做成量化交易策略。


首先是用MACD和Bo做成量化交易策略的原理:

1、开仓条件:

多头开仓:当MACD形成金叉且BoIl上升(资金流入信号)。

空头开仓:当MACD形成死叉且BoIl下降(资金流出信号)。

2、平仓条件:

平多仓:持有多头仓位时,当MACD形成死叉或BoIl下降,表明趋势可能转弱。

平空仓:持有空头仓位时,当MACD形成金叉或BoIl上升,表明趋势可能转强。


其次就是使用Python实现的MACD和BoIl量化交易策略示例:
# 计算MACD
data['ema_12'] = data['close'].ewm(span=12, adjust=False).mean()
data['ema_26'] = data['close'].ewm(span=26, adjust=False).mean()
data['DIF'] = data['ema_12'] - data['ema_26']
data['DEA'] = data['DIF'].ewm(span=9, adjust=False).mean()
data['MACD'] = (data['DIF'] - data['DEA']) * 2 # MACD柱线

# 计算BoI(Balance of Index, 简化的流入流出平衡指数)
data['BoI'] = np.where(data['close'] > data['close'].shift(1), data['volume'],
np.where(data['close'] < data['close'].shift(1), -data['volume'], 0))
data['BoI'] = data['BoI'].rolling(window=5).sum() # 取5日资金流动平衡

# 初始化资金和仓位管理
initial_cash = 100000 # 初始资金
position_size = 1 # 每次交易手数
data['position'] = 0 # 持仓状态:1=多头,-1=空头,0=空仓
data['cash'] = initial_cash
data['portfolio_value'] = initial_cash
data['trade_signal'] = '' # 记录交易信号

# 执行交易逻辑
for i in range(1, len(data)):
close_price = data.at[i, 'close']
previous_position = data.at[i - 1, 'position']
macd_signal = data.at[i, 'DIF'] > data.at[i, 'DEA'] # DIF>DEA为金叉
macd_signal_previous = data.at[i - 1, 'DIF'] > data.at[i - 1, 'DEA'] # 上一个金叉状态
boi_signal = data.at[i, 'BoI'] > 0 # BoI上升表示资金流入
boi_signal_previous = data.at[i - 1, 'BoI'] > 0 # 上一个BoI状态

# 开仓逻辑
if previous_position == 0: # 当前无持仓
if macd_signal and boi_signal and not macd_signal_previous:
# 金叉出现且BoI上升,开多仓
data.at[i, 'position'] = 1
data.at[i, 'cash'] = data.at[i - 1, 'cash'] - position_size * close_price
data.at[i, 'trade_signal'] = 'Buy to Open'
elif not macd_signal and not boi_signal and macd_signal_previous:
# 死叉出现且BoI下降,开空仓
data.at[i, 'position'] = -1
data.at[i, 'cash'] = data.at[i - 1, 'cash'] + position_size * close_price
data.at[i, 'trade_signal'] = 'Sell to Open'
else:
# 平仓逻辑
if previous_position == 1 and (not macd_signal or not boi_signal):
# 持有多仓且死叉出现或BoI下降,平多仓
data.at[i, 'position'] = 0
data.at[i, 'cash'] = data.at[i - 1, 'cash'] + position_size * close_price
data.at[i, 'trade_signal'] = 'Sell to Close'
elif previous_position == -1 and (macd_signal or boi_signal):
# 持有空仓且金叉出现或BoI上升,平空仓
data.at[i, 'position'] = 0
data.at[i, 'cash'] = data.at[i - 1, 'cash'] - position_size * close_price
data.at[i, 'trade_signal'] = 'Buy to Close'

量化交易入门有难度,无论如何找个师傅带着入门很重要,这样能快速实现量化交易,一步到位,具体可以及时通过电话或微信联系我,领取内部量化策略和资料,现成的量化工具。

发布于2024-11-7 18:09 北京

当前我在线 直接联系我
1 收藏 分享 追问
举报
咨询TA

期货量化工具免费领,一键识别支撑、压力位,告别无效盯盘
您是不是也有以下困扰?可以免费领取试一下:
1、新手一枚,不知道如何下手
2、想把握每个波动机会,频繁操作,被市场打脸
3、抓不住买卖时机,做空它就涨,做多它就跌!
4、被情绪左右,亏损后还想继续操作,越亏越大

   免费体验>>

收藏 分享 追问
问题没解决?向金牌答主提问, 最快30秒获得解答! 立即提问
其他类似问题 搜索更多类似问题 >
量化投资怎么用MACD和Boll做成策略?简短介绍
您好,使用MACD(MovingAverageConvergenceDivergence)和BollingerBands(布林带)构建量化投资策略是一种常见的方法。这两种技术指标可以相...
量化刘老师 429
有哪些基于MACD和Boll的量化交易策略?
您好,基于MACD和Boll的量化交易策略结合了这两个经典技术指标的优势,可以帮助交易者更准确地识别市场趋势和波动性,从而制定有效的交易策略。你可以随时联系我,免费提供,主打就是服务好...
量化刘老师 503
有哪些量化交易策略?
你好,量化交易常见策略可归纳为以下几类,每类均附典型实现方式与适用场景,供你参考:一、多因子选股策略1.核心逻辑:综合多个因子(如估值、成长、动量、质量、情绪等)对股票评分,选取高分股...
券商田经理 161
有什么制作MACD和Boll结合的量化策略?
您好,在量化交易中,结合MACD和Boll指标的策略是一种常见的趋势跟踪方法。可以及时联系我了解。下面我来给你做个简单介绍。以下是一个简单的策略模型:1.趋势识别:使用Boll指标确定...
量化刘老师 482
什么是量化交易策略,量化交易软件怎么收费
量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式。量化交易有QMT、Ptrade,个人投资者办理量化交易应该达到资金50万元。现在开户佣金一般默认在万三左...
资深小夏经理 2311
什么是量化交易策略?具体咋执行?
您好,专业的量化交易软件比如:qmt和ptrade,主要功能包括数据获取和处理、策略编写和回测、实盘交易和风险控制等。它可以帮助您快速、准确地实现股票量化交易,并提供了多种量化策略,以...
资深小妮经理 194
金牌答主

光大期货客服 期货

4234万+

电话咨询
同城推荐 更多>
  • 咨询

    好评 18万+ 浏览量 1245万+

  • 咨询

    好评 22万+ 浏览量 872万+

  • 咨询

    好评 4.9万+ 浏览量 501万+

相关文章
回到顶部