哈喽,大家好,我是木头左!
海龟交易法则是由著名的商品交易大师理查德·丹尼斯(Richard Dennis)和威廉·埃克哈特(William Eckhardt)在20世纪80年代开发的一套交易策略。海龟交易法则以其简单性和趋势跟踪的核心理念而闻名,它证明了通过一套明确的交易规则,即使是没有交易经验的人也可以在市场中取得成功。本文将介绍如何在聚宽平台上使用Python实现一个基于海龟交易法则的量化交易策略。 感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流!
海龟交易法则的核心原则
趋势跟踪
海龟交易法则的核心是利用趋势跟踪策略来捕捉市场中的大趋势。趋势跟踪策略基于一个简单的假设:一旦一个市场开始显示某种趋势,这种趋势很可能会持续一段时间。
突破交易
海龟交易法则使用突破交易来进入市场。突破交易意味着在价格超过某个历史高点或低点时买入或卖出。这种方法的目标是尽早识别新趋势并随之交易。
风险管理
海龟交易法则强调风险管理的重要性。它使用止损单来限制潜在的损失,并在盈利时使用移动止损来锁定利润。
海龟交易策略的适用场景
海龟交易策略适用于股票市场、期货市场、外汇市场等多种金融市场。在聚宽交易平台上,可以利用这一策略来指导的投资决策。以下是一些适用场景: 震荡市场:在震荡市场中,海龟交易策略可以帮助抓住市场的短期波动,从而获得稳定的收益。 趋势明显市场:在趋势明显的市场中,海龟交易策略可以让紧跟市场趋势,避免逆势操作带来的损失。 高风险高收益市场:在高风险高收益市场中,海龟交易策略可以帮助合理分配资金,降低风险,提高收益。
策略实现步骤
1. 数据准备
首先,需要获取交易数据。在聚宽平台上,可以使用get_price函数来获取历史价格数据。
# 导入聚宽函数库from jqdata import *# 初始化函数def initialize(context): # 设定沪深300作为股票池 g.stock_pool = '000300.XSHG' # 设置历史数据窗口长度 g.window_length = 20 # 设置突破交易的N值 g.N = 20 # 设置止损比例 g.stop_loss_ratio = 0.02
2. 计算突破点
接下来,计算突破点。这通常是通过比较过去N天内的最高价或最低价来完成的。
# 交易函数def trade(context): for stock in g.stock_pool: # 获取历史价格数据 prices = attribute_history(stock, g.N, '1d', ['high', 'low'], skip_paused=True) high_channel = prices['high'].max() low_channel = prices['low'].min() # 计算突破点 buy_price = high_channel * (1 + g.stop_loss_ratio) sell_price = low_channel * (1 - g.stop_loss_ratio) # 获取当前价格 current_price = current_data[stock].last_price # 突破买入 if current_price > buy_price: order_value(stock, context.portfolio.available_cash) # 突破卖出 elif current_price < sell_price: order_value(stock, -context.portfolio.positions[stock].amount)
3. 风险管理
在实际交易中,还需要考虑交易成本、滑点、市场影响等因素,并设置止损点和仓位管理规则。
结论
海龟交易法则是一种简单而有效的趋势跟踪策略,它通过突破交易和严格的风险管理来捕捉市场中的大趋势。注意目前有专门针对这种策略的阻击,被称为喝海龟汤。市场有风险,交易需谨慎。 感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流!
我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!