最后由 solarisboy 于 2025-12-3 10:48 编辑
写的全新代码,已经做了MT5今年全年的回测,70%收益
在交易系统中,开仓逻辑至关重要。此策略基于多个条件来决定是否开仓。可以设定MA开仓,多空设置,系统允许买入和卖出,确保双向操作灵活性。为了实现盈利,系统采用了多种策略。手数设置和增加手数的值可以灵活调整,确保在盈利时能够逐步增加仓位。手数取整到小数位数功能,使得交易更加精确。碎形或蜡烛的时间框架设置为15,帮助捕捉短期市场机会。此外,使用碎形或蜡烛填充的选项,使得交易信号更加明确。
止损设置止损是交易系统中不可或缺的一部分。系统允许设置最大损失,确保交易风险可控。允许的最大损失设置为100000.0,为每笔交易设定了明确的风险上限。此外,关闭时的损失设置也为交易提供了额外的安全保障。 总结通过高效开仓逻辑、精准的盈利策略以及严格的止损设置,该系统能够在市场中实现稳健的交易表现。合理的参数设置和灵活的调整选项,使得交易者能够根据市场情况和个人偏好进行优化,从而提升交易的成功率。
=====================================
以下是部分参数,可以自己测试修改
//--- 枚举:交易方向
enum ENUM_TRADE_DIR {
DIR_BOTH = 0, // 双向交易
DIR_LONG = 1, // 只做多
DIR_SHORT = 2 // 只做空
};
//--- 枚举:移动平均线过滤模式
enum ENUM_MA_FILTER {
MA_FILTER_OFF = 0, // 不启用过滤
MA_FILTER_LONG = 1, // 价格在MA之上时,只允许做多
MA_FILTER_SHORT = 2, // 价格在MA之下时,只允许做空
MA_FILTER_BOTH = 3 // 价格在MA之上做多,价格在MA之下做空
};
//--- 输入参数 ---
input string _Comments1_ = "=== 交易设置 ===";
input ENUM_TRADE_DIR InpTradeDir = DIR_BOTH; // 1) 交易方向
input bool InpTrendMode = false; // 2/3) 顺势加仓开关 (False=逆势, True=顺势)
input double InpLots = 0.02; // 4) 起始下单量
input double InpMaxLot = 1.00; // 5) 最大单手数
input int InpGridStep = 200; // 6) 下单间隔点数 (Points)
input double InpMartingale = 1.3; // 7) 下单倍率
input int InpMagic = 88888; // 8) 魔术号
input string InpOrderComment = "V:YourWeChat"; // 13) 订单备注
input string _Comments2_ = "=== 风控设置 (单位:美金) ===";
input double InpTakeProfitUSD = 50.0; // 9) 止盈金额
input double InpStopOpenLoss = 100.0; // 10) 浮亏多少暂停开单
input double InpStopLossUSD = 500.0; // 11) 止损金额 (全平)
input string _Comments3_ = "=== 时间设置 ===";
input int InpStartHour = 0; // 12) 开始时间 (小时 0-23)
input int InpEndHour = 24; // 12) 结束时间 (小时 0-23)
input string _Comments4_ = "=== 回测设置 ===";
input bool InpRunOnTester = true; // 策略测试器运行时是否自动启动
input string _Comments5_ = "=== MA 过滤设置 ===";
input ENUM_TIMEFRAMES InpMAMode = PERIOD_H1; // 16) MA时间周期 (M15, M30, H1, H4, D1等)
input ENUM_MA_FILTER InpMAFilter = MA_FILTER_OFF; // 15) MA过滤模式
input int InpMAPeriod = 20; // 17) MA平均周期 (20, 50, 100等) |