设为首页 收藏本站 切换语言 切换语言

我用量化方法验证了华尔街经典策略,结果出乎意料!(附策略源码)

| 发表于 2025-2-22 19:55:23 | 显示全部楼层 |复制链接
————————前言————————
作为追涨杀跌的代言人,海龟交易法面世已经半个世纪有余。作为经典的华尔街交易策略,海龟交易法在当年号称能做到单品种年化80%以上,放到2025年的今天,这辆传奇超级跑车是否还能一战?!
先来看看海龟交易法的内核,这套交易系统包含以下几个关键部分:
1.市场选择:海龟交易法不局限于特定的市场,但是在高流动性的市场中表现优异!骨子里的跑车!
2.头寸规模:根据账户资金和市场波动率来确定交易头寸的大小,以控制风险。车速越快它越猛!!
   公式:头寸单位 = (账户风险比例 × 总资金) / (ATR× 合约乘数)
3.入场策略:使用突破的概念进行入场。例如,当价格突破过去 20 天的最高价或最低价时,就会产生买入或卖出的信号。生下来就是为了超越对手!
4.加仓策略:初始头寸建立后,价格每有利变动 0.5 倍 ATR 则追加等量仓位,最多加仓 3 次。别人多3个档!
5.止损策略:设置止损位,以控制每笔交易可能的损失。安全很重要!
6.退出策略:采用跟踪止损的方法,随着盈利的增加逐步调整止损位,以保护利润。让利润跑起来!
海龟交易法就是这样来自于上个世纪的超级跑车,就像法x利,如果你听过它的名字,你就会忍不住想多看它两眼。
这套交易法在当时取得了显著的成功,证明了通过系统的培训和严格的纪律,普通人也能够在交易中取得较好的成绩。然而,它并非在所有市场环境中都能始终有效,交易方法的有效性还需要根据不同的市场条件和个人的风险承受能力进行调整和优化。
————————量化策略————————
海龟交易法已经面世半个世纪有余,面对现在的市场,是否还适用?是否还能获利? 我们一起来通过量化测试一下。

该部分可能对非专业人士不太友好,不喜欢编程的朋友可以直接看策略的测试部分。

核心代码如下:

// 核心参数设定
input int EntryPeriod = 20; // 入场周期,突破20日高/低点就进场
input int ExitPeriod = 10; // 退出周期,反向突破10日高/低点就出场
input double RiskPercent = 2; // 单笔风险比例
input int ATRPeriod = 20; // ATR计算周期

// 指标计算模块
double CalculateATR() { return iATR(_Symbol, PERIOD_D1, ATRPeriod, 0); }

void OnTick()
{
double upperChannel = iHigh(_Symbol, PERIOD_D1, iHighest(_Symbol, PERIOD_D1, MODE_HIGH, EntryPeriod, 1));
double lowerChannel = iLow(_Symbol, PERIOD_D1, iLowest(_Symbol, PERIOD_D1, MODE_LOW, ExitPeriod, 1));
// 多空信号生成
bool buySignal = Close[0] > upperChannel;
bool sellSignal = Close[0] < lowerChannel;

// 头寸计算
double atrValue = CalculateATR();
double lotSize = NormalizeDouble((AccountEquity()*RiskPercent/100)/(atrValue*MarketInfo(_Symbol,MODE_TICKVALUE)),2);
// 订单执行
if(buySignal && OrdersTotal()==0)
{
OrderSend(_Symbol, OP_BUY, lotSize, Ask, 3, Bid-2*atrValue, 0, "Turtle_Long"); }
else if(sellSignal && OrdersTotal()==0)
{
OrderSend(_Symbol, OP_SELL, lotSize, Bid, 3, Ask+2*atrValue, 0, "Turtle_Short"); }
// 动态追踪止损
if(PositionsTotal()>0)
{
PositionSelectByTicket(PositionGetTicket(0));
double currentStop = PositionGetDouble(POSITION_SL);
double newStop = PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY ? Close[0] - 2*atrValue : Close[0] + 2*atrValue;
if(MathAbs(newStop - currentStop) > _Point)
OrderModify(OrderTicket(), OrderOpenPrice(), newStop, OrderTakeProfit(), 0); } }
其余代码省略,有兴趣的朋友可以私信找我获取。
可以看出来,海龟交易法就是简单粗暴的右侧突破交易法,就像超跑,玩的就是大马力!
这样的一辆大马力跑车在你面前,你不想跑上两圈?
————————策略测试——————————
我们以今年1月1日到2月21日的黄金来进行测试,经常关注黄金的朋友都知道,从年初开始,黄金一直在创新高,我们看看海龟法则的使用效果。初始仓位为5%,测试图表周期为D1。

收益率300%+

收益率300%+

单边趋势就是香

单边趋势就是香
可以看到,海龟在强势的趋势行情中如鱼得水,过去了50多年,依然能够让你肾上腺素飙升!
那有人就要说了,这是说明趋势刚好符合海龟交易策略的特点,那要是遇到震荡行情怎么办,毕竟柴米油盐才是日常,速度与激情也不是天天有的。

那我们来试试,这辆超级跑车能不能兼顾一下家用。刚好2024年的11月到12月,黄金就是一个区间的震荡行情。我们用同样的系统和参数来测试一下这段时间。
海龟测试结果4.png
海龟测试结果3.png
这么看来超跑确实不太适合家用。超跑要是不能天天开,是不是有点太可惜了?
怎么办呢?常规来看,两个思路,买一辆日常家用车,或者,把超跑调教一下,让它能够适应大多数情况。

当然,小孩子才做选择,成年人全都要!

买一辆日常家用车不在今天的讨论范围,我们今天来研究一下怎么样让超跑适用于每一天的日常。

————————策略研究————————
如果观察仔细的朋友就会发现,在我们第一次测试中,我的止损和止盈肯定是要大一些,不然以黄金的高波动性,很容易一波回调就让我的仓位出场。
那第一个思考方向就来了,其它的参数不变的情况下,我把震荡期间的止损和止盈相对缩小一些是不是就能有所改善?
我们来试试看!
海龟测试结果5.png 海龟测试结果6.png
看来修改止损止盈以后确实对震荡行情有所改善,但是总觉得还不够,在这两个月期间,策略有很大一段时间都在空窗期,就像是两个月,限号限了一个月,这谁受得了。
如果不对系统框架进行修改的情况下,还有什么办法吗?

当然!比如说使用更小周期的图表来进行交易!我们来看看效果!
海龟测试结果7.png 海龟测试结果8.png
改变了一下赛道,这下直接夸张得离谱了!原本亏钱的行情,直接逆袭成2个月20倍!你敢信?!!

哈哈,看来离财富自由不远了?

如果有对这个交易系统感兴趣的伙伴,欢迎加入我的知识星球。
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论10

都挺好
DDD
| 发表于 2025-2-22 20:13:16 | 显示全部楼层
经典交易策略
举报

点赞 评论 使用道具

bishengke
D
| 发表于 2025-2-22 20:17:26 来自手机 | 显示全部楼层
很多系统都能在某一段小区间表现优异,但区间放大以后就不是那么回事了,已经过气的东西不必花精力做无用功。
举报

点赞 评论 使用道具

你是我的小脑被
DDD
| 发表于 2025-2-22 20:24:13 来自手机 | 显示全部楼层
感谢分享,收货量多
举报

点赞 评论 使用道具

Jiayee85
DDD
 楼主 | 发表于 2025-2-22 20:38:28 | 显示全部楼层
bishengke 发表于 2025-2-22 20:17
很多系统都能在某一段小区间表现优异,但区间放大以后就不是那么回事了,已经过气的东西不必花精力做无用功 ...

50年还能行得通,说明这套系统的内核有概率优势。回测只是开卷作答,而未来永远是不确定的。学会让自己掌握优势,才是明智之举。
举报

点赞 评论 使用道具

westwuwei
DDD
| 发表于 2025-2-22 21:31:43 | 显示全部楼层
我于1月1日“回测”第一天就梭哈1000万元,然后持筹码不动,请问到今天我赚了多少倍呢?我是不是神仙?

千万不要糊弄自己,要看开阔一些。如果你不骗人,但回测也很容易骗自己,请拿实盘验证。
举报

点赞 评论 使用道具

westwuwei
DDD
| 发表于 2025-2-22 21:47:36 | 显示全部楼层
其实你随便拿出一个流行的、金融专业中专生教科书中的策略,你“总能调出一套拟合优化参数”,来用回测的方法推销这套策略。

所以关键是,如果你能免费提供给大家去测试这个EA,看看大家是不是80%以上的人都同样大赚,这样才能说明好坏。

提供大家能够随时(用模拟账户)实盘交易测试!千万不要自己搞个测试报告用来卖课(这里是泛指互联网营销)。
举报

点赞 评论 使用道具

Jiayee85
DDD
 楼主 | 发表于 2025-2-23 10:02:20 | 显示全部楼层
westwuwei 发表于 2025-2-22 21:47
其实你随便拿出一个流行的、金融专业中专生教科书中的策略,你“总能调出一套拟合优化参数”,来用回测的方 ...

你的评论很中肯,下次我会注意提醒大家这个只是模拟测试的结果,感谢指教。以后的每一次评测我都会刻意提醒大家,回测终究是开卷考,只能用来验证交易逻辑,而实盘才是真正的考验。
另外一个问题是,很多人总想着靠一个拿来的系统或者EA就能盈利,这种想法很可笑。所以,我希望我分享的内容是能够让别人得到启发,而不是诱惑别人去走捷径。
你只看了我测试这个系统的一部分,而我写这篇文章的时候是包括了很多思维和干货在里面的。
我就算是卖课,也是靠自己的辛勤付出去交换,而不是忽悠。这个钱我是站着赚的。
举报

点赞 评论 使用道具

Jiayee85
DDD
 楼主 | 发表于 2025-2-23 10:14:20 | 显示全部楼层
westwuwei 发表于 2025-2-22 21:31
我于1月1日“回测”第一天就梭哈1000万元,然后持筹码不动,请问到今天我赚了多少倍呢?我是不是神仙?

千 ...

我这篇文章探讨的是海龟交易策略还能不能行得通,只要我能证明他行得通,这就是我这篇文章的目的。
你要和我掰扯实盘能不能获利,这就是另外一个问题了。
举报

点赞 评论 使用道具

Jiayee85
DDD
 楼主 | 发表于 2025-2-23 10:24:04 | 显示全部楼层
westwuwei 发表于 2025-2-22 21:47
其实你随便拿出一个流行的、金融专业中专生教科书中的策略,你“总能调出一套拟合优化参数”,来用回测的方 ...

如果我要推广这个EA,那这篇文章的内容就应该是“如何将海龟交易法”应用于实盘,明显它的价值就比验证策略本身高多了,你的提醒非常好,我下一次就专门来写一篇帖子。但是这么好的东西,肯定不是免费的,凭什么?
举报

点赞 评论 使用道具

tuoleiea
C
| 发表于 2025-3-17 08:11:38 | 显示全部楼层
不错,希望得到完整代码
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

Jiayee85

Jiayee85 DDD

从事交易和EA开发十几年,有兴趣的朋友加V交流。
手上各种平台代理已经很多,代理商可以略过,谢谢。

广告位
 简体中文国旗 简体中文
 繁體中文国旗 繁體中文
 English国旗 English(英语)
 日本語国旗 日本語(日语)
 Deutsch国旗 Deutsch(德语)
 Русский язык国旗 Русский язык(俄语)
 بالعربية国旗 بالعربية(阿拉伯语)
 Türkçe国旗 Türkçe(土耳其语)
 Português国旗 Português(葡萄牙语)
 ภาษาไทย国旗 ภาษาไทย(泰国语)
 한어国旗 한어(朝鲜语/韩语)
 Français国旗 Français(法语)
翻译