右侧追击(一)——东方财富

本文通过A股东方财富的历史数据,探讨右侧追击策略,包括策略定义、数据获取、回测分析和真实收益。策略将资金分为5份,每次新高买入1份,止损点设为买入价下方8%,并根据价格上涨追加买入。文章指出,虽然存在假突破风险,但严格止损可控制风险,且在12年的回测中,策略取得了超过120%的收益,年化收益率约为6.9%。

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

本文旨在策略学习探讨,不构成任何投资建议!

之前我们用两篇文章将账户和交易封装,做了一定准备工作。今天,将正式开启对策略的考核。

对于券商、钢铁、有色、甚至房地产等右侧行情的行业,通常会用到一个方法——右侧追击,也就是所谓的追涨杀跌。

中心思想基本是以较低的试错成本,一次次的去追击它们的强势行情。中间可能会有多次追击失败,但亏损不会太大,而一旦追击成功,收益相对而言都较为可观。

本次以A股东方财富历史数据为示例,股票代码300059

1. 数据获取

其中quan_trade是在交易封装中封装好的类

# 导入相关库
import akshare as ak
import pandas as pd
import quan_trade # 导入交易类
### 获取东方财富历史行情数据
# 参数adjust:默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据。
# 该股票涉及到多次转增分红,这里需要选择前复权
dfcf_df = ak.stock_zh_a_hist(symbol='300059', period="daily", start_date="20011101", end_date='20221231', adjust="qfq")
dfcf_df

该股票于2010-03-19上市,截止2022-04-08,一共有2865条数据。

2.策略更新

策略之前封装到了quan_trade.py中的类Trade中,添加右侧追击策略只需在类中添加新方法,然后在主函数self.main中添加策略判断即可。

先来梳理一下右侧追击的策略:

1. 将资金分为5份;

2. 突破新高买入一份,止损点设为买入价下方8%;

3. 每涨10%,追加一份,并将止损点更新为最新买入价下方8%;

4. 一旦期间触发止损,意味着此次追击失败,再觅良机重新追击;

5. 如果5份全部买入完成,设最高价下方8%为动态止盈点,一旦触发止盈,意味着本次追击成功且圆满结束。

右侧追击中,会有不少假突破。可能会对本金造成侵蚀,但这是右侧交易必要的磨损。只要严格遵守纪律,在止损点果断斩仓,风险就是可控的。

接下来,就是要将我们的策略告诉程序,在此之前有几个细节需要确定:

1. 新高为半年内新高(即前180个交易日的最高价,非最高收盘价)

2. 突破新高是指当日收盘价站上前期高点,非当日最高价破新高。避免上长影线触发策略买入(上长影线意味着抛压巨大,不是很好的追击点)

3. 每次交易以当日收盘价作为交易价格,更为贴近在现实中能买到或卖到的价格

代码如下:

# 在quan_trade.py文件的的类Trade中添加此方法
def by_right_attack(self):
    """右侧追击"""
    # 定义两个变量,分别存放前高以及追击完成后的最高股价
    last_higt = max_price = None
    for i in range(180, self.data.shape[0]):
        # 更新前半年最高价
        last_higt = self.data['最高'][i-180:i].max()

        # 无持仓(持仓数据为空或者持仓数量为零)
        if self.account.position.empty or self.account.position.iloc[-1].amount == 0:
            # 价格未突破
            if self.data.iloc[i].收盘 <= last_higt:
                self.account.no_trade_update_ass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值