【量化交易】顶底分型策略
创作时间:
作者:
@小白创作中心
【量化交易】顶底分型策略
引用
1
来源
1.
https://www.cnblogs.com/bigleft/p/18214152
在众多的量化策略中,顶底分型策略因其独特的市场趋势捕捉能力和简洁的实现方式而受到许多投资者的青睐。本文将详细介绍顶底分型策略的原理,并展示如何使用Python在聚宽平台上实现这一策略。
顶底分型策略概述
顶底分型是一种基于价格行为的技术分析方法,由市场分析师Bill Williams提出。该策略认为价格行为可以形成特定的模式,这些模式能够预示市场趋势的转变。顶分型和底分型是两种基本的价格模式:
- 顶分型:在上升趋势的末端出现,预示着可能的下跌趋势。顶分型由三根连续的K线组成,其中第二根K线的高点高于第一根和第三根K线的高点。
- 底分型:在下降趋势的末端出现,预示着可能的上升趋势。底分型同样由三根连续的K线组成,其中第二根K线的低点低于第一根和第三根K线的低点。
顶底分型策略的实现步骤
在聚宽平台上实现顶底分型策略,我们需要按照以下步骤进行:
- 初始化策略参数:设置策略的基本参数,如K线周期、顶底分型确认的K线数量等。
- 计算顶底分型:根据历史K线数据计算可能的顶分型和底分型。
- 确认顶底分型:根据一定的规则确认顶分型和底分型的成立。
- 生成交易信号:根据确认的顶底分型生成买入和卖出信号。
- 执行交易:根据交易信号在市场中执行买卖操作。
策略参数初始化
在策略开始前,我们需要设置一些基本的参数,这些参数将影响顶底分型的计算和确认。
# 初始化参数
g.n = 5 # 用于计算分型的K线数量
计算顶底分型
接下来,我们需要编写函数来计算顶分型和底分分型。这个函数将遍历历史K线数据,并找出可能的顶分型和底分型。
# 计算顶底分型
def calculate_fractals(data):
highs = data['high']
lows = data['low']
tops = []
bottoms = []
for i in range(len(highs) - g.n):
if highs[i] < highs[i + 1] and highs[i + 1] > highs[i + 2]:
tops.append((i + 1, highs[i + 1]))
if lows[i] > lows[i + 1] and lows[i + 1] < lows[i + 2]:
bottoms.append((i + 1, lows[i + 1]))
return tops, bottoms
确认顶底分型
计算出可能的顶底分型后,我们需要确认这些分型是否成立。顶分型的确认通常需要后续的K线低点低于顶分型的高点,而底分型的确认则需要后续的K线高点高于底分型的低点。
# 确认顶底分型
def confirm_fractals(data, tops, bottoms):
confirmed_tops = []
confirmed_bottoms = []
for i, top in tops:
if i + 1 < len(data) and data[i + 1]['low'] < top:
confirmed_tops.append(top)
for i, bottom in bottoms:
if i + 1 < len(data) and data[i + 1]['high'] > bottom:
confirmed_bottoms.append(bottom)
return confirmed_tops, confirmed_bottoms
生成交易信号
有了确认的顶底分型后,我们可以生成交易信号。当确认顶分型时,我们可能会考虑卖出或做空;当确认底分型时,我们可能会考虑买入或做多。
# 生成交易信号
def generate_signals(security, confirmed_tops, confirmed_bottoms, portfolio, order):
for top in confirmed_tops:
order(security, -1) # 卖出
for bottom in confirmed_bottoms:
order(security, 1) # 买入
执行交易
最后,我们需要在策略的交易函数中调用上述函数,并执行交易。
# 交易函数
def trade(context):
stock_data = attribute_history(context.security, g.n + 1, '1d', ['open', 'high', 'low', 'close'], skip_paused=True)
tops, bottoms = calculate_fractals(stock_data)
confirmed_tops, confirmed_bottoms = confirm_fractals(stock_data, tops, bottoms)
generate_signals(context.security, confirmed_tops, confirmed_bottoms, context.portfolio, order_target)
策略测试与优化
在实际应用顶底分型策略之前,我们需要对策略进行充分的测试和优化。这包括但不限于:
- 历史回测:使用历史数据对策略进行回测,评估策略在过去的表现。
- 参数优化:调整策略参数,如K线周期和确认分型所需的后续K线数量,以优化策略的表现。
- 风险管理:考虑交易成本、滑点等因素,并设置止损点和仓位管理规则,以控制风险。
总结
顶底分型策略是一种基于价格行为的量化交易策略,它通过识别市场趋势的转折点来生成交易信号。通过Python在聚宽平台上实现这一策略,我们可以自动化交易过程,提高交易效率。
市场有风险,交易需谨慎。
本文原文来自cnblogs.com
热门推荐
红外线通信原理及NEC协议介绍
日漫中这些妖怪来自《山海经》
三世诸佛的第一辅臣虚空藏菩萨
从NHTSA 事故致命数据看汽车品牌的安全性
正宗米酒做法自酿全过程(教做正宗米酒,掌握8个步骤)
《漫长的探索:人类对宇宙的认知历程》
紫苏的营养价值与功效:从防贫血到助减肥,三道美味料理轻松掌握
银行借记卡到期更换:必要性分析及实用指南!
“中药+”缘何成为年轻人的养生新招式?
误喝一口,中毒身亡!这东西每家都在用
《犯罪心理学》:洞悉人性,远离伤害,避免犯罪
《蓝色多瑙河》交响乐赏析:圆舞曲之王的不朽之作
人工智能的发展历程与未来前景:变革与挑战并存
眼科医生:眼睛一大一小的人,不妨多留个心眼
十年横海亦英雄——明末“石浦游击”将军张名振抗清记
突发性耳聋最佳治疗方法及康复时间
儿童脸蛋红扑扑无非就这5点原因,家长别不当回事!
为何刘邦从汉中北伐能成功,诸葛亮五次北伐却不能成功?3个原因
红辣椒的热量高吗
虚空藏菩萨翡翠:左手拿剑的雕刻艺术与象征意义
米兰德比:AC米兰逆转夺冠,孔塞桑上任后首夺冠军
每年或将防止约 1100 万人过早死亡!星球健康饮食学起来
短视频革命:未来趋势、市场潜力与持久火爆揭秘
DDR4 SDRAM:高性能存储器的全面解析
美国留学生开饭店需要了解哪些关键因素
新农合会不会一直持续下去?
三国志战略版开荒最强队伍搭配攻略
德国德乙对决:马格德堡与柏林赫塔鏖战,三分之差引发激烈交锋
研究发现:肠道微生物失衡可提前预测自闭症和多动症风险
从“青年十大热词”中看到当代青年的模样