找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 0|回复: 0

【突破交易和变种海龟交易系统】两种策略结合月化在30%左右,一次一单

[复制链接]

6470

主题

54

回帖

4871

积分

管理员

积分
4871
发表于 2026-8-16 10:52:59 | 显示全部楼层 |阅读模式
一、突破交易系统核心思想:波段高低点识别EA通过寻找局部最高点和最低点来定义波段(swing points)。具体识别方法:左侧K线数(LeftBars):判断一个高点是否高于其左侧指定数量的K线高点。右侧K线数(RightBars):同样需要高于右侧指定数量的K线高点。低点识别类似,但要求价格低于左右两侧的K线低点。

识别出的波段高点和低点分别存储在swingHighs和swingLows数组中,并按时间排序(最新的在前)。同时为避免过于接近的高低点重复,增加了最小波段距离(MinSwingDistance)过滤。二、趋势判断与强度评分EA利用最近几个波段高点和低点的相对位置来评估当前趋势强度(GetTrendStrength函数):若最近高点高于前一个高点,趋势强度+1;低于则-1。若最近低点高于前一个低点,趋势强度+1;低于则-1。若数据足够,还会参考更早的波段点。

趋势强度值用于判断是处于上升趋势(正值)、下降趋势(负值)还是震荡(接近0)。该强度评分影响后续的入场决策。三、入场模型EA提供两种入场方式,可通过参数独立开启或关闭:1. 回撤模型(UseRetracementModel)多头信号:在上升趋势中,价格回撤至最近的支撑位(即最近波段低点)附近时,如果出现看涨K线反转形态(如锤子线、看涨吞没、早晨之星),则开多。空头信号:在下降趋势中,价格反弹至最近的阻力位(即最近波段高点)附近时,如果出现看跌K线反转形态(如上吊线、看跌吞没、黄昏之星),则开空。

2. 突破模型(UseBreakoutModel)多头突破:当价格向上突破最近一个波段高点(并超出一定阈值,如ATR的0.1倍或5点),且趋势强度非负(至少不是强下降趋势),则开多。空头突破:当价格向下突破最近一个波段低点,且趋势强度非正,则开空。

四、过滤条件为了减少假信号,EA加入了多个过滤层:趋势过滤:回撤模型要求趋势明确(上升或下降);突破模型至少要求趋势不反向。波动性过滤(UseVolatilityFilter):要求当前ATR(平均真实波幅)大于最小设定值(MinATR),避免在低波动市场中交易。ATR过滤(UseATRFilter):动态调整止损距离、突破阈值等,使参数适应市场波动。时间过滤(UseTimeFilter):可限制交易时段(例如只允许在特定小时内交易),并自动排除周末。最大订单数限制(MaxOrders):防止过度开仓。

五、风险管理1. 止损与止盈止损设置:

对于回撤模型,止损设置在支撑位(或阻力位)外侧,并加入ATR倍数保护。对于突破模型,止损通常设置在最近的波段低点(多头)或高点(空头),再结合ATR动态调整。如果计算出的止损不合理(如距离太近),则取消开仓。

止盈设置:基于风险回报比(RiskRewardRatio)计算,即止盈 = 入场价 ± (止损距离 × 风险回报比)。

2. 移动止损(Trailing Stop)当订单盈利后,EA会动态调整止损位:多头:新止损 = 当前卖价 - (ATR倍数 或 固定点数),且不会低于初始止损。空头:新止损 = 当前买价 + (ATR倍数 或 固定点数),且不会高于初始止损。

3. ATR出场机制除了移动止损,EA还监控价格从最高点(多头)或最低点(空头)的回撤幅度,若超过ATR的一定倍数(ATRMultiplier),则主动平仓。这是一种基于波动率的利润保护策略。六、辅助验证K线反转形态:在回撤模型中,需要确认反转形态以增加信号可靠性(如锤子线、吞没形态等)。有效入场验证:开仓前检查价格是否远离关键支撑/阻力,以及趋势强度是否允许。

七、整体交易流程在新K线开始时执行OnTick(避免反复计算)。更新当前ATR,检查时间过滤和波动性过滤。识别最近的波段高点和低点。根据回撤模型和突破模型检查入场信号。若信号有效,计算止损止盈并开仓。持续管理已有订单:移动止损、ATR出场。显示调试信息(如当前ATR、波段点数量、趋势强度等)。

该EA是基于经典海龟交易系统开发的增强版本,遵循趋势跟踪策略,通过突破关键价格水平入场,并结合金字塔加仓、动态止损和严格的风险管理。以下是其核心交易原理和逻辑的详细解析:1.1 系统1(主系统)多头入场:价格突破过去20根K线的最高点(BreakPeriod1 = 20)。空头入场:价格突破过去20根K线的最低点。退出条件:价格反向突破过去10根K线的最低点(多头持仓)或最高点(空头持仓)。

1.2 系统2(辅助系统)独立入场(可选):价格突破55根K线的高低点(BreakPeriod2 = 55),可作为独立信号开仓。方向过滤(可选):若启用UseSystem2Filter,则仅当价格同时突破系统2的对应水平时才允许系统1入场。例如,多头必须同时高于系统2高点,避免在较弱突破中入场。

1.3 入场确认方式K线收盘确认(默认启用):以上一根K线的收盘价是否突破作为信号,避免盘中毛刺。实时突破:以当前实时价格判断,即时入场。

1.4 信号有效性过滤最小突破距离:要求突破价格距离前一次突破至少 MinBreakDistance × ATR,防止频繁同向交易。交易间隔限制:新开仓与前一次交易至少间隔 MinBarsBetweenTrades 根K线。

2. 金字塔加仓系统最大单位数:最多加仓至4个单位(MaxUnits = 4)。加仓间隔:每个新单位的价格需比上一单位向有利方向移动一定距离,该距离基于ATR动态调整(UseDynamicAddStep):第2个单位:0.5倍ATR第3个单位:1.0倍ATR第4个单位:1.5倍ATR

加仓时同样设置2倍ATR止损,且所有单位共享同一个退出信号。

3. 风险管理与头寸计算3.1 初始止损每笔交易开仓时设置止损为 ATR_StopLoss × ATR(默认2倍ATR),基于入场价计算。

3.2 移动止损当价格向有利方向移动时,将止损调整为 ATR_TrailingStop × ATR(默认1倍ATR)的距离,确保保护利润且只向有利方向调整。

3.3 头寸规模(手数)基于账户余额(或净值,若启用复利)和风险百分比(RiskPercent)计算:

风险金额 = 账户余额 × RiskPercent / 100止损点数 = ATR_StopLoss × ATR / Point每点价值 = 市场信息中的点值(考虑5位数报价)手数 = 风险金额 / (止损点数 × 每点价值),并标准化至经纪商允许的最小步长。

额外限制:每笔最大风险(MaxRiskPerTrade)、保证金检查(保留20%自由保证金)。

3.4 资金管理限制每日最大风险:当日亏损超过 MaxDailyRisk% 时停止交易。每日盈利限制:当日盈利超过 DailyProfitLimitPercent% 时可选择停止开新仓或全部平仓。最大回撤限制:账户净值回撤超过 MaxDrawdownLimit% 时强制平仓并停止交易。每日交易次数:不超过 MaxPositionsPerDay。

3.5 时间过滤可设置交易时间段(TradingStartTime/EndTime),仅在该时段内开仓。

4. 其他辅助逻辑每日重置:每日开盘时重置当日盈亏、交易计数和盈利限制状态。订单管理:通过订单注释(如“S1_Long”、“Add_Unit_2”)识别海龟系统订单,便于统一平仓和统计。错误处理:开仓失败时记录错误码,并输出描述信息。

5. 策略特点总结趋势跟踪:通过突破开仓捕捉趋势行情,利用加仓放大收益。动态风控:以ATR为基础动态调整止损和加仓间隔,适应市场波动。多层过滤:系统2过滤、最小距离、K线确认等减少假突破。严格资金管理:每日风险、回撤、盈利限制等保障账户安全。灵活性:参数可调节,适应不同品种和交易风格。以下是统计图   





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-8-25 06:15 , Processed in 0.108873 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表