【量化交易】顶底分型策略
创作时间:
作者:
@小白创作中心
【量化交易】顶底分型策略
引用
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
热门推荐
充电桩运维工程师:新能源时代的金领职业
中国"虎鲸"无人艇列装,不光是三体船,连垂发都有了
一文看完整个净水技术的发展史
肌腱炎能不能治疗好
剖腹产后必知的饮食禁忌与推荐食谱,80% 的新手妈妈都忽略了!
俄罗斯战术专家讲解:在战场上如何救援伤员 匍匐前进动作最重要
被仓鼠咬了如何处理,要打疫苗吗?
芯片架构师薪酬待遇如何
符号学视角下的当代艺术解读
养老金“差异化”调整通知将公布,三类人最幸福,两类人一分不涨
读懂中国史而绕不过去的5部中国通史巨著!社科院倾情推荐!
深度解析:百万存款在中国的真实含金量
青岛3天2晚旅游攻略:初游青岛必看行程安排
中医舌诊被确证!新研究:AI通过舌头诊断疾病,准确率高达98%!
粤西桂东首个省级人力资源服务产业园:2年营收超25亿,打造县域经济新引擎
明日方舟 血魔大君在剧情里的表现也太恐怖了,玩家:他擅长清杂
被告人供述如何认证
无极性电解电容的特点与应用
南关清真大寺:历史、文化与建筑艺术的瑰宝
墙面装修材料选择与环保意识
如何明确跑腿项目需求呢
社交网络中设置朋友圈可见性的实用指南与隐私保护建议
如何制定合理的基金投资策略以降低风险?这些策略的实施效果如何评估?
嘉庆皇帝:清朝统治史上的独一无二
好意施惠致损引发的侵权如何认定?
电脑功耗计算器使用指南:从基础到进阶的全面解析
项目管理拖延症怎么治理
询问笔录的制作要领有哪些
那么多流感疫苗,到底给娃选哪个好?
程序员的“中年危机“:如何在35岁之后依然保持职业竞争力?