量化交易-MACD策略学习

本文介绍了使用MACD指标进行量化交易的策略,通过筛选基本面良好的股票,结合DIF和DEA的金叉、死叉信号进行买入和卖出操作。同时,设置了基于盈利回撤20%的止损机制。回测结果显示了该策略的表现,并提供了源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MACD的基本概念,可以参考 https://www.joinquant.com/post/7095?f=18newyearjx ,感谢 Quant中找米吃的阿鼠 和 聚宽小秘书 Thanks♪(・ω・)ノ

我认为MACD不适合采用轮动策略,经过回测,我将策略改成以下模式:?

  • 选出基本面较好的股票
  • 剔除ST、停牌、退市的股票
  • 在DIF和DEA在0轴上形成金叉时买入
  • 在DIF他DEA的0轴下形成死叉时卖出
  • 加入止损:这次的止损买有根据股票的盈亏来判断,而是:
    • 记录持仓股票的每天的盈利,如果当天盈利比之前的盈利小,则不记录
    • 如果当天判断的盈利已经比记录的最大盈利小20%,则止损卖出

下面?是回测结果和源代码

import numpy as np
import pandas as pd
# 导入技术分析库
import talib as tb

def initialize(context):
    """初始化函数"""
    
    # 记录股票的收益率
    g.retio = {
   
   }
    
    # 设置中证500为参考基准
    set_benchmark('000905.XSHG')
    # 使用真实价格交易
    set_option('use_real_price', True)
    # 设定日志级别
    log.set_level('order', 'error')
    
    # 指定周期性交易函数
    run_daily(trade, 'every_bar')
    

def before_trading_start(context):
    """开盘前设置交易费用"""
    
    # 设定所有类型的交易品种的交易滑点为0.02
    set_slippage(FixedSlippage(0.02))
    
    # 设定2013年前与2013年后的交易费用
    dt = context.current_dt
    if dt>datetime.datetime(2013,1, 1):
        set_order_cost(OrderCost(
            open_tax=0, 
            close_tax=0.001, 
            open_commission=0.0003, 
            close_commission=0.0003, 
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值