Caius 3.6 EA MT4

Caius 3.6 EA 策略分析报告

概述

Caius 3.6 是一个基于MetaTrader 4平台的智能交易专家顾问(EA),集成了多种先进的技术分析方法和风险管理策略。该EA的主要特点包括:

  • 多重技术指标融合:结合ADX、RSI、布林带、斐波那契回调等指标
  • AI趋势学习系统:使用神经网络进行市场趋势预测
  • 订单流分析:实时分析买卖力量对比
  • 动态风险管理:包含马丁格尔策略、固定止损、百分比止损等
  • 趋势过滤机制:支持多种趋势确认条件

1. 基本结构分析

1.1 输入参数配置

// 通用设置
input double 风险比 = 0.001;           // 风险比(每100美元账户资金的交易手数)
input double 加倍点数 = 0.001;         // 加倍点数(已弃用)
input int 距离 = 20.0;                 // 基础开仓距离(点数)
input double 基础加仓距离 = 10.0;       // 基础加仓距离
input double 马丁倍率 = 1.3;           // 马丁格尔倍率
input int inFixed_SL = 100000;         // 固定止损金额(美元)
input double inPercentage_SL = 100;    // 百分比止损

安全机制

  • 仅允许指定账户使用
  • 内置时间限制,过期后自动停止

2. 核心策略逻辑

2.1 开仓条件分析

EA采用多重开仓逻辑,按优先级顺序执行:

2.1.1 基础开仓逻辑(传统网格策略)

// 多头开仓条件
if (Cek_Loss_daily() == false &&                    // 每日亏损检查
    iOpen(NULL,0,0) < iClose(NULL,0,0) &&          // K线为阳线
    Bid >= PricBuyLine &&                           // 价格突破买入线
    LastType() != OP_BUY &&                         // 最后订单不是多单
    Count(-1) == 0) {                              // 无持仓订单
    // 执行开仓
}

2.1.2 趋势方向开仓(高级策略)

当启用启用趋势方向开仓时,优先执行趋势分析:

bool OpenTradeByTrend() {
    // 1. 更新指标状态
    UpdateIndicatorStatus();

    // 2. 计算综合趋势得分
    double trend_score = 0;

    // ADX趋势强度 (权重0.35)
    // RSI超买超卖状态 (权重0.25)
    // 布林带状态 (权重0.25)
    // 均线交叉状态 (权重0.15)
    // 斐波那契回调判断 (权重0.2)

    // 3. 根据得分决定开仓方向
    if (trend_score > 0.5) {
        // 开多仓
    } else if (trend_score < -0.5) {
        // 开空仓
    }
}

2.1.3 订单流增强开仓

当启用启用订单流分析时,进一步优化开仓方向:

if(启用订单流分析) {
    if(orderFlow.buyPower > orderFlow.sellPower) {
        // 买入信号强,开多单
    } else {
        // 卖出信号强,开空单
    }
}

2.2 技术指标体系

2.2.1 ADX指标(平均趋向指数)

  • 周期ADX周期 = 12(默认)
  • 阈值ADX阈值 = 25(默认)
  • 作用:判断市场趋势强度,ADX > 25表示有趋势

2.2.2 RSI指标(相对强弱指数)

  • 周期RSI_Period = 14(默认)
  • 超买阈值RSI_Overbought = 70
  • 超卖阈值RSI_Oversold = 30
  • 作用:识别超买超卖状态

2.2.3 布林带指标

  • 周期BB_Period = 20
  • 标准差倍数BB_Deviation = 2.0
  • 作用:判断价格相对位置和波动性

2.2.4 ATR指标(平均真实波幅)

  • 周期ATR周期 = 7
  • 作用:动态调整加仓距离

2.2.5 斐波那契回调

  • 作用:判断价格在斐波那契水平上的位置
  • 关键水平:38.2%、50%、61.8%

2.3 动态加仓系统

2.3.1 传统马丁格尔策略

Lot = Lot * pow(马丁倍率, orderCount);  // 每次亏损后按倍率增加手数

2.3.2 递增倍数加仓

input bool EnableIncrementalMartingale = false;    // 启用递增倍数加仓
input double InitialMultiplier = 1.0;              // 初始倍数
input double IncrementStep = 0.1;                  // 递增步长
input double MaxMultiplier = 1.5;                  // 最大倍数
input int BaseLotsCount = 3;                        // 基础手数单数

2.3.3 动态距离调整

double GetDynamicDistance() {
    if (!启用动态加仓距离) return 基础加仓距离;

    double atrValue = iATR(NULL, 0, ATR周期, 1);
    double adxValue = GetADXValue();

    // 动态调整波动敏感系数
    double dynamicCoefficient = 波动系数 * (1 + MathMin(adxValue, 50) / 100);

    double 动态距离 = 基础加仓距离 + (atrValue / _Point * dynamicCoefficient);
    return MathMax(动态距离, 基础加仓距离 * 0.5);
}

3. AI趋势学习系统

3.1 系统架构

struct AITrendLearner {
    double weights[][];        // 神经网络权重
    double biases[][];         // 神经网络偏置
    int layers;                // 网络层数
    int neuronsPerLayer;       // 每层神经元数
};

3.2 学习参数配置

input bool   启用AI趋势学习 = true;     // 启用AI趋势学习
input int    学习周期 = 1000;           // 历史数据学习周期
input int    预测周期 = 20;             // 未来预测周期
input double 学习率 = 0.01;             // 学习率
input int    神经网络层数 = 3;          // 神经网络隐藏层
input int    每层神经元 = 10;           // 每层神经元数量

3.3 特征提取

void ExtractFeatures(int shift, double &features[]) {
    // 价格数据特征
    features[0] = iClose(Symbol(), 0, shift);
    features[1] = iHigh(Symbol(), 0, shift) - iLow(Symbol(), 0, shift);

    // 技术指标特征
    features[2] = iADX(Symbol(), 0, ADX周期, PRICE_CLOSE, MODE_MAIN, shift);
    features[3] = iRSI(Symbol(), 0, RSI_Period, PRICE_CLOSE, shift);

    // 布林带特征
    features[4] = iBands(Symbol(), 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_UPPER, shift);
    features[5] = iBands(Symbol(), 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_LOWER, shift);

    // 移动平均特征
    features[6] = iMA(Symbol(), 0, 趋势均线周期, 0, MODE_SMA, PRICE_CLOSE, shift);
}

3.4 预测逻辑

double PredictTrend(double &features[]) {
    // 前向传播
    double layerOutput[];
    ArrayCopy(layerOutput, features);

    for(int i = 0; i < layers; i++) {
        layerOutput = ForwardPass(layerOutput, i);
    }

    // 返回预测结果(0-1之间)
    return layerOutput[0];
}

4. 订单流分析系统

4.1 数据结构

struct OrderFlowData {
    double buyPower;    // 买入力量
    double sellPower;   // 卖出力量
    string flowReason;  // 分析原因
};

4.2 权重配置

input bool   启用订单流分析 = true;     // 启用订单流分析
input double 订单流权重 = 0.6;          // 订单流分析权重
input double 技术指标权重 = 0.4;        // 技术指标权重

4.3 动态权重调整

struct DynamicWeights {
    double trend_weight;    // 趋势权重
    double flow_weight;     // 订单流权重
    double ai_weight;       // AI权重
};

DynamicWeights GetDynamicWeights() {
    // 根据市场波动率动态调整权重
    double volatility = iATR(Symbol(), 0, 14, 0) / iClose(Symbol(), 0, 0);

    if(volatility > 0.02) {  // 高波动期
        return {0.3, 0.5, 0.2};  // 增加订单流权重
    } else {  // 低波动期
        return {0.4, 0.3, 0.3};  // 平衡权重
    }
}

5. 风险管理系统

5.1 多重止损机制

5.1.1 固定金额止损

if(Calculate <= -inFixed_SL) {
    // 关闭所有订单
}

5.1.2 百分比止损

double Percentage = NormalizeDouble((inPercentage_SL/100) * Balance, 2);
if(Calculate <= -Percentage) {
    // 关闭所有订单
}

5.1.3 每日亏损限制

bool Cek_Loss_daily() {
    double dailyLoss = -ProfitDey(-1);
    return (dailyLoss >= DailyProfitLimit);
}

5.2 最大浮亏监控

// 实时更新各种周期的最大浮亏
MaxDrawdownDay = MathMax(MaxDrawdownDay, currentDrawdown);
MaxDrawdownYesterday = MathMax(MaxDrawdownYesterday, currentDrawdown);
MaxDrawdownWeek = MathMax(MaxDrawdownWeek, currentDrawdown);
MaxDrawdownMonth = MathMax(MaxDrawdownMonth, currentDrawdown);

5.3 交易时间限制

input int TimeStart = 0;   // 开始时间(小时)
input int TimeEnd = 23;    // 停止时间(小时)

6. 程序执行流程

6.1 初始化阶段(OnInit)

  1. 许可证验证
  • 检查账户ID是否匹配
  • 检查EA是否过期
  1. 参数初始化
  • 设置图表显示属性
  • 初始化全局变量
  • 计算点值和小数位数
  1. 指标初始化
  • 创建价格参考线
  • 初始化斐波那契水平
  • 初始化AI学习系统
  • 训练历史数据

6.2 主循环阶段(OnTick)

graph TD
    A[开始OnTick] --> B[许可证和时间检查]
    B --> C[每日收益限制检查]
    C --> D[计算动态风险参数]
    D --> E[更新指标状态]
    E --> F{是否有持仓?}
    F -->|无| G[开仓逻辑]
    F -->|有| H[平仓逻辑]
    G --> I[CloseAll检查]
    H --> I
    I --> J[更新信息面板]
    J --> K[结束]

6.2.1 开仓逻辑详细流程

  1. 基础条件检查
  • 每日亏损限制
  • K线状态(阴阳线)
  • 价格位置(突破参考线)
  • 订单状态(避免重复开仓)
  1. 高级策略判断
  • 趋势方向开仓(优先级最高)
  • 订单流分析优化
  • AI预测确认
  1. 动态手数计算
  • 基础风险计算
  • 马丁格尔倍数调整
  • 递增倍数应用

6.2.2 平仓逻辑

  • 被动平仓:达到止损条件时自动平仓
  • 主动平仓:无固定止盈,依靠动态止损

6.3 指标更新流程

每10个tick执行一次:

  1. 更新所有技术指标值
  2. 计算趋势状态
  3. 更新订单流数据
  4. 刷新信息面板显示

7. 关键函数分析

7.1 OpenTradeByTrend() – 趋势开仓函数

功能:根据多重指标计算趋势得分,决定开仓方向

算法流程

  1. 更新所有指标状态
  2. 计算ADX趋势强度得分(权重35%)
  3. 计算RSI超买超卖得分(权重25%)
  4. 计算布林带位置得分(权重25%)
  5. 计算均线交叉得分(权重15%)
  6. 计算斐波那契位置得分(权重20%)
  7. 综合评分决定开仓

7.2 ShouldOpenPosition() – 综合开仓判断

功能:整合趋势、订单流、AI预测的综合判断

评分机制

  • 趋势得分:ADX强度评估
  • 订单流得分:买卖力量对比
  • AI得分:神经网络预测结果
  • 最终得分 > 0.3 时允许开仓

7.3 GetDynamicDistance() – 动态距离计算

功能:根据市场波动率动态调整加仓距离

计算公式

动态距离 = 基础加仓距离 + (ATR值 × 波动系数 × ADX调整)

7.4 CloseAll() – 风险平仓函数

功能:监控账户亏损,执行强制平仓

平仓条件

  • 固定金额亏损 ≥ inFixed_SL
  • 百分比亏损 ≥ inPercentage_SL

8. 优势与特点

8.1 技术优势

  1. 多策略融合:传统网格 + 趋势跟踪 + AI预测
  2. 自适应算法:动态权重调整,根据市场状态优化
  3. 多重风控:固定止损 + 百分比止损 + 每日限制
  4. 智能化决策:AI学习历史数据,预测趋势

8.2 实用特点

  1. 可视化界面:实时显示账户状态和市场指标
  2. 参数可调:丰富的输入参数,支持个性化配置
  3. 稳定性保障:完善的错误处理和异常保护

9. 潜在风险与建议

9.1 风险点分析

  1. 马丁格尔风险:连续亏损时手数倍增,可能导致重大亏损
  2. AI过拟合:神经网络可能对历史数据过拟合
  3. 市场变化:策略参数可能需要定期调整

9.2 使用建议

  1. 小额测试:建议先用小额资金测试策略表现
  2. 参数优化:根据不同品种和市场环境调整参数
  3. 风险控制:严格控制单次交易和每日总风险
  4. 监控重要:定期检查策略表现,及时调整

图片[1]交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易Caius 3.6 EA MT4交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易1mt5
图片[2]交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易Caius 3.6 EA MT4交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易1mt5
图片[3]交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易Caius 3.6 EA MT4交易的工具|外汇EA|外汇论坛|MT4指标|MT5软件|EA源码|MQL编程|跟单系统|马丁格尔|狼行天下|财经东北路|ctrader|蜡烛图技术|外汇知识|自动化交易1mt5
Caius 3.6
© 版权声明
THE END
喜欢就支持一下吧
点赞13
评论 抢沙发

请登录后发表评论

    暂无评论内容