【量化交易】顶底分型策略
创作时间:
作者:
@小白创作中心
【量化交易】顶底分型策略
引用
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
热门推荐
从模糊的上古圣王到人文始祖——伏羲的形象演变
李丹阳:伏羲女娲形象流变考
大会再提“人工智能+、科技创新”:中国科技强势崛起,中美实力差距到底多大?
衡阳,湖南最“火”的城市
开学第一课:先抓习惯,再谈成绩,家长必读
谨防鱼刺扎伤,远离“海洋刺客”
COB 和 SMD 芯片有什么区别?
解读股市集合竞价:法律视角下的交易机制分析
金毛犬的科学喂养指南:从幼犬到老年犬的全面养护
股票复盘在投资决策中起到什么作用?这种复盘如何影响投资策略?
预防糖尿病、延长寿命!美国内分泌学会《维生素D疾病预防指南》重磅发布!
泉州老城区City Walk美食之旅——深入探寻传统与现代的味蕾盛宴
全球每年有超过670万人死于糖尿病,哪些国家的患病率最高?
瑞金医院宁光院士团队综述1:中国糖尿病流行病学与危险因素全解析
新能源项目经理要什么证书
电脑主机散热器怎么装
解密数字的奥秘:从1到9的文化与象征意义
小麦传播之谜:绿洲、草原还是海路?历史轨迹待揭晓!
PPT设计的一致性原则:让你的PPT更加出众
风湿病患者饮食指南:这些食物需要避免
美国VPS安装宝塔面板教程:新手10分钟建站指南
什么是电池充电周期
什么?肋骨骨折竟然不是挂骨科?
曹操的悲凉诗情——解读《短歌行》
无限火力塞拉斯,吸血装强到飞起,出装攻略
高性能特种工程塑料聚醚醚酮(PEEK):特性、应用与前景
紫苏籽油:适合多种人群的天然健康选择
高效养鸡模式:现代养殖业的突破与发展
免疫警察单核细胞:你的身体防线如何守护健康?
上海有机所游书力团队Chem:首次实现钯催化Z-保留烯丙基取代反应