【 BigRise一款俄罗斯的源码】多货币自动匹配对冲(参数已经调校好,无需修改)  热门

| 发表于 2026-5-24 13:23:31 | 显示全部楼层 |复制链接
325858746ED7749058A57356D0F44AC2.png


2.png



由原来的MT4升级到MT5,并把之前的俄语释义,全部改成英文和中文,增加了一些开单条件(但是都默认关闭的),手数采用平推即可,大资金的可以自己修改加仓参数,有三个选项可以自己选择开启或关闭,默认都是关闭,只做平推,很稳健!

加载欧美任意一个货币兑即可,一分钟周期(五分钟可选)不要总单独提问了,所有我发布的代码都是经过亲测。
filetype

BigRise EA.ex5

52.7 KB, 下载次数: 112, 下载积分: 活跃度 -5  [下载]

MT5完整版(无需修改参数)

filetype

BigRise EA.mq5

62.4 KB, 下载次数: 45, 下载积分: 活跃度 -5 售价: 3 H币  [记录]  [下载]

MT5源码版(参数任意修改)

评分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:5    参与人数:1    我的评分:未评 下载时遇到问题?
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论171

581589
C
 楼主 | 发表于 2026-5-25 13:12:33 | 显示全部楼层
微信图片_20260525131139_112_1110.png

中午时分开了两单,自动手数的,也可以固定手数开单,都可以设置,无限制。
举报

点赞 1 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-25 13:47:24 | 显示全部楼层
QQ20260525-134639.gif

周一开盘大吉!!!俄罗斯的东西确实不错。
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-25 19:36:36 | 显示全部楼层
QQ20260525-134639.gif

最新盈利展示。今后不再展示,请自行测试!
微信图片_20260525131139_112_1110.png
QQ20260525-134639.gif
举报

点赞 1 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-26 13:09:02 | 显示全部楼层
73A466D16C4C94132D3702BC6CEC7C0D.png

面板进行了优化,搞了许久。。。这方面的功底有些欠缺啊。

面板源码修正:

//+------------------------------------------------------------------+
//| 更新面板数据(数值)——优化颜色和格式                              |
//+------------------------------------------------------------------+
void UpdatePanelData()
{
   if(!gInfoPanelCollapsed)
   {
      ObjectSetString(0, "info_balance", OBJPROP_TEXT, DoubleToString(GetAccountBalance(), 2));
      ObjectSetString(0, "info_equity", OBJPROP_TEXT, DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY), 2));
      ObjectSetString(0, "info_margin", OBJPROP_TEXT, DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN), 2));
      ObjectSetString(0, "info_freeMargin", OBJPROP_TEXT, DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN_FREE), 2));
      ObjectSetString(0, "info_totalOrders", OBJPROP_TEXT, IntegerToString(GetAllPositionsCount()));
      double totalProfit = GetTotalProfit();
      ObjectSetString(0, "info_totalProfit", OBJPROP_TEXT, DoubleToString(totalProfit, 2));
      if(totalProfit >= 0)
         ObjectSetInteger(0, "info_totalProfit", OBJPROP_COLOR, clrLime);
      else
         ObjectSetInteger(0, "info_totalProfit", OBJPROP_COLOR, clrRed);
         
      for(int i = 0; i < totalPairs; i++)
      {
         double pairProfit = GetPairProfit(pairs.symbol);
         string profitStr = DoubleToString(pairProfit, 2);
         ObjectSetString(0, "info_profit"+IntegerToString(i), OBJPROP_TEXT, profitStr);
         if(pairProfit >= 0)
            ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_COLOR, clrLime);
         else
            ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_COLOR, clrRed);
      }
   }
   if(!gTradePanelCollapsed)
   {
      ObjectSetString(0, "trade_selectedPair", OBJPROP_TEXT, pairs[gSelectedPairIndex].symbol);
      double lot = CalculateLotSize(pairs[gSelectedPairIndex]);
      ObjectSetString(0, "TRADEs_B", OBJPROP_TEXT, "买入  " + DoubleToString(lot, 2));
      ObjectSetString(0, "TRADEs_S", OBJPROP_TEXT, "卖出  " + DoubleToString(lot, 2));
   }
}

//+------------------------------------------------------------------+
//| 创建信息面板(中文)——加宽宽度并调整位置,保证所有信息完整显示    |
//+------------------------------------------------------------------+
void CreateInfoPanel()
{
   int x = 370, y = 20, w = 420, h = 460; // 大幅加宽并右移,避免与交易面板重叠

   if(!ObjectCreate(0, "info_background", OBJ_RECTANGLE_LABEL, 0, 0, 0))
      Print("创建背景失败");
   ObjectSetInteger(0, "info_background", OBJPROP_XDISTANCE, x);
   ObjectSetInteger(0, "info_background", OBJPROP_YDISTANCE, y);
   ObjectSetInteger(0, "info_background", OBJPROP_XSIZE, w);
   ObjectSetInteger(0, "info_background", OBJPROP_YSIZE, h);
   ObjectSetInteger(0, "info_background", OBJPROP_BGCOLOR, clrDarkSlateGray);
   ObjectSetInteger(0, "info_background", OBJPROP_CORNER, CORNER_LEFT_UPPER);
   ObjectSetInteger(0, "info_background", OBJPROP_BORDER_TYPE, BORDER_SUNKEN);
   ObjectSetInteger(0, "info_background", OBJPROP_BORDER_COLOR, clrGoldenrod);
   
   ObjectCreate(0, "info_toggle", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "info_toggle", OBJPROP_XDISTANCE, x + w - 70);
   ObjectSetInteger(0, "info_toggle", OBJPROP_YDISTANCE, y + 8);
   ObjectSetInteger(0, "info_toggle", OBJPROP_YSIZE, 24);
   ObjectSetInteger(0, "info_toggle", OBJPROP_XSIZE, 60);
   ObjectSetString(0, "info_toggle", OBJPROP_TEXT, "隐藏");
   ObjectSetInteger(0, "info_toggle", OBJPROP_BGCOLOR, clrDimGray);
   ObjectSetInteger(0, "info_toggle", OBJPROP_FONTSIZE, 11);
   ObjectSetInteger(0, "info_toggle", OBJPROP_COLOR, clrWhite);
   
   ObjectCreate(0, "info_title", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_title", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "info_title", OBJPROP_YDISTANCE, y + 15);
   ObjectSetString(0, "info_title", OBJPROP_TEXT, "账户信息");
   ObjectSetInteger(0, "info_title", OBJPROP_COLOR, clrCyan);
   ObjectSetInteger(0, "info_title", OBJPROP_FONTSIZE, 16);
   ObjectSetString(0, "info_title", OBJPROP_FONT, "Arial Bold");
   
   int lineY = y + 50;
   int step = 28;
   int labelX = x + 20;
   int valueX = x + 220; // 数值列右移,给长标签留足空间
   
   // 余额
   ObjectCreate(0, "info_balanceLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_balanceLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_balanceLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_balanceLabel", OBJPROP_TEXT, "账户余额:");
   ObjectSetInteger(0, "info_balanceLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_balanceLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_balance", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_balance", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_balance", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_balance", OBJPROP_TEXT, "0.00");
   ObjectSetInteger(0, "info_balance", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_balance", OBJPROP_FONTSIZE, 12);
   lineY += step;
   
   // 净值
   ObjectCreate(0, "info_equityLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_equityLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_equityLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_equityLabel", OBJPROP_TEXT, "账户净值:");
   ObjectSetInteger(0, "info_equityLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_equityLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_equity", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_equity", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_equity", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_equity", OBJPROP_TEXT, "0.00");
   ObjectSetInteger(0, "info_equity", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_equity", OBJPROP_FONTSIZE, 12);
   lineY += step;
   
   // 已用保证金
   ObjectCreate(0, "info_marginLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_marginLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_marginLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_marginLabel", OBJPROP_TEXT, "已用保证金:");
   ObjectSetInteger(0, "info_marginLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_marginLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_margin", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_margin", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_margin", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_margin", OBJPROP_TEXT, "0.00");
   ObjectSetInteger(0, "info_margin", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_margin", OBJPROP_FONTSIZE, 12);
   lineY += step;
   
   // 可用保证金
   ObjectCreate(0, "info_freeMarginLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_freeMarginLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_freeMarginLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_freeMarginLabel", OBJPROP_TEXT, "可用保证金:");
   ObjectSetInteger(0, "info_freeMarginLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_freeMarginLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_freeMargin", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_freeMargin", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_freeMargin", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_freeMargin", OBJPROP_TEXT, "0.00");
   ObjectSetInteger(0, "info_freeMargin", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_freeMargin", OBJPROP_FONTSIZE, 12);
   lineY += step;
   
   // 持仓数
   ObjectCreate(0, "info_totalOrdersLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_totalOrdersLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_totalOrdersLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_totalOrdersLabel", OBJPROP_TEXT, "持仓总单数:");
   ObjectSetInteger(0, "info_totalOrdersLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_totalOrdersLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_totalOrders", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_totalOrders", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_totalOrders", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_totalOrders", OBJPROP_TEXT, "0");
   ObjectSetInteger(0, "info_totalOrders", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_totalOrders", OBJPROP_FONTSIZE, 12);
   lineY += step + 8;
   
   // 分割线
   ObjectCreate(0, "info_line1", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_line1", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "info_line1", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_line1", OBJPROP_TEXT, "────────────────────────────────────");
   ObjectSetInteger(0, "info_line1", OBJPROP_COLOR, clrLightGray);
   lineY += 25;
   
   // 总盈亏
   ObjectCreate(0, "info_totalProfitLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_totalProfitLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "info_totalProfitLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_totalProfitLabel", OBJPROP_TEXT, "总盈亏:");
   ObjectSetInteger(0, "info_totalProfitLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "info_totalProfitLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "info_totalProfit", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "info_totalProfit", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "info_totalProfit", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "info_totalProfit", OBJPROP_TEXT, "0.00");
   ObjectSetInteger(0, "info_totalProfit", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "info_totalProfit", OBJPROP_FONTSIZE, 12);
   lineY += step + 8;
   
   // 各货币对盈亏
   for(int i = 0; i < totalPairs; i++)
   {
      ObjectCreate(0, "info_profitLabel"+IntegerToString(i), OBJ_LABEL, 0, 0, 0);
      ObjectSetInteger(0, "info_profitLabel"+IntegerToString(i), OBJPROP_XDISTANCE, labelX);
      ObjectSetInteger(0, "info_profitLabel"+IntegerToString(i), OBJPROP_YDISTANCE, lineY);
      ObjectSetString(0, "info_profitLabel"+IntegerToString(i), OBJPROP_TEXT, pairs.symbol + ":");
      ObjectSetInteger(0, "info_profitLabel"+IntegerToString(i), OBJPROP_COLOR, clrWhite);
      ObjectSetInteger(0, "info_profitLabel"+IntegerToString(i), OBJPROP_FONTSIZE, 11);
      ObjectCreate(0, "info_profit"+IntegerToString(i), OBJ_LABEL, 0, 0, 0);
      ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_XDISTANCE, valueX);
      ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_YDISTANCE, lineY);
      ObjectSetString(0, "info_profit"+IntegerToString(i), OBJPROP_TEXT, "0.00");
      ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_COLOR, clrYellow);
      ObjectSetInteger(0, "info_profit"+IntegerToString(i), OBJPROP_FONTSIZE, 11);
      lineY += step;
   }
}

//+------------------------------------------------------------------+
//| 创建交易面板(中文)——保持宽度不变,确保文字完整显示              |
//+------------------------------------------------------------------+
void CreateTradePanel()
{
   int x = 10, y = 20, w = 350, h = 460; // 交易面板宽度保持350px

   if(!ObjectCreate(0, "trade_background", OBJ_RECTANGLE_LABEL, 0, 0, 0))
      Print("创建交易面板背景失败");
   ObjectSetInteger(0, "trade_background", OBJPROP_XDISTANCE, x);
   ObjectSetInteger(0, "trade_background", OBJPROP_YDISTANCE, y);
   ObjectSetInteger(0, "trade_background", OBJPROP_XSIZE, w);
   ObjectSetInteger(0, "trade_background", OBJPROP_YSIZE, h);
   ObjectSetInteger(0, "trade_background", OBJPROP_BGCOLOR, clrDarkSlateGray);
   ObjectSetInteger(0, "trade_background", OBJPROP_CORNER, CORNER_LEFT_UPPER);
   ObjectSetInteger(0, "trade_background", OBJPROP_BORDER_TYPE, BORDER_SUNKEN);
   ObjectSetInteger(0, "trade_background", OBJPROP_BORDER_COLOR, clrGoldenrod);
   
   ObjectCreate(0, "trade_toggle", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_XDISTANCE, x + w - 70);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_YDISTANCE, y + 8);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_YSIZE, 24);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_XSIZE, 60);
   ObjectSetString(0, "trade_toggle", OBJPROP_TEXT, "隐藏");
   ObjectSetInteger(0, "trade_toggle", OBJPROP_BGCOLOR, clrDimGray);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_FONTSIZE, 11);
   ObjectSetInteger(0, "trade_toggle", OBJPROP_COLOR, clrWhite);
   
   ObjectCreate(0, "trade_title", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "trade_title", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "trade_title", OBJPROP_YDISTANCE, y + 15);
   ObjectSetString(0, "trade_title", OBJPROP_TEXT, "交易控制");
   ObjectSetInteger(0, "trade_title", OBJPROP_COLOR, clrCyan);
   ObjectSetInteger(0, "trade_title", OBJPROP_FONTSIZE, 16);
   ObjectSetString(0, "trade_title", OBJPROP_FONT, "Arial Bold");
   
   int lineY = y + 50;
   int step = 26;
   int labelX = x + 20;
   int valueX = x + 200;
   
   // 当前货币对
   ObjectCreate(0, "trade_selectedLabel", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "trade_selectedLabel", OBJPROP_XDISTANCE, labelX);
   ObjectSetInteger(0, "trade_selectedLabel", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "trade_selectedLabel", OBJPROP_TEXT, "当前货币兑:");
   ObjectSetInteger(0, "trade_selectedLabel", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "trade_selectedLabel", OBJPROP_FONTSIZE, 12);
   ObjectCreate(0, "trade_selectedPair", OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0, "trade_selectedPair", OBJPROP_XDISTANCE, valueX);
   ObjectSetInteger(0, "trade_selectedPair", OBJPROP_YDISTANCE, lineY);
   ObjectSetString(0, "trade_selectedPair", OBJPROP_TEXT, pairs[0].symbol);
   ObjectSetInteger(0, "trade_selectedPair", OBJPROP_COLOR, clrYellow);
   ObjectSetInteger(0, "trade_selectedPair", OBJPROP_FONTSIZE, 12);
   lineY += step + 8;
   
   // 货币对选择按钮
   int btnY = lineY;
   int btnW = 36;
   for(int i = 0; i < totalPairs; i++)
   {
      ObjectCreate(0, "pair_btn_"+IntegerToString(i), OBJ_BUTTON, 0, 0, 0);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_XDISTANCE, x + 18 + i*(btnW+6));
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_YDISTANCE, btnY);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_XSIZE, btnW);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_YSIZE, 26);
      ObjectSetString(0, "pair_btn_"+IntegerToString(i), OBJPROP_TEXT, IntegerToString(i+1));
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_BGCOLOR, clrDarkGray);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_COLOR, clrWhite);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_FONTSIZE, 11);
   }
   lineY = btnY + 36;
   
   // 平仓按钮(宽度155px,文字完整)
   ObjectCreate(0, "btn_closeProfit", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_YSIZE, 28);
   ObjectSetString(0, "btn_closeProfit", OBJPROP_TEXT, "平盈利单");
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "btn_closeProfit", OBJPROP_FONTSIZE, 12);
   
   ObjectCreate(0, "btn_closeLoss", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_XDISTANCE, x + 180);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_YSIZE, 28);
   ObjectSetString(0, "btn_closeLoss", OBJPROP_TEXT, "平亏损单");
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "btn_closeLoss", OBJPROP_FONTSIZE, 12);
   lineY += 34;
   
   ObjectCreate(0, "btn_closePair", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_YSIZE, 28);
   ObjectSetString(0, "btn_closePair", OBJPROP_TEXT, "平该货币兑");
   ObjectSetInteger(0, "btn_closePair", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "btn_closePair", OBJPROP_FONTSIZE, 12);
   
   ObjectCreate(0, "btn_closeAll", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_XDISTANCE, x + 180);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_YSIZE, 28);
   ObjectSetString(0, "btn_closeAll", OBJPROP_TEXT, "平全部单");
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "btn_closeAll", OBJPROP_FONTSIZE, 12);
   lineY += 38;
   
   // 开关按钮(宽度155px,文字完整)
   ObjectCreate(0, "sw_autoTrade", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_YSIZE, 26);
   ObjectSetString(0, "sw_autoTrade", OBJPROP_TEXT, "自动交易: 开");
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_BGCOLOR, clrGreen);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_FONTSIZE, 11);
   
   ObjectCreate(0, "sw_gridProfit", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_XDISTANCE, x + 180);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_YSIZE, 26);
   ObjectSetString(0, "sw_gridProfit", OBJPROP_TEXT, "盈利网格: 开");
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_BGCOLOR, clrGreen);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_FONTSIZE, 11);
   lineY += 32;
   
   ObjectCreate(0, "sw_gridLoss", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_YSIZE, 26);
   ObjectSetString(0, "sw_gridLoss", OBJPROP_TEXT, "亏损网格: 开");
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_BGCOLOR, clrGreen);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_FONTSIZE, 11);
   
   ObjectCreate(0, "sw_mobileTrade", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_XDISTANCE, x + 180);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_YSIZE, 26);
   ObjectSetString(0, "sw_mobileTrade", OBJPROP_TEXT, "移动跟单: 关");
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_FONTSIZE, 11);
   lineY += 32;
   
   ObjectCreate(0, "sw_nightUnload", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_YSIZE, 26);
   ObjectSetString(0, "sw_nightUnload", OBJPROP_TEXT, "夜间清仓: 关");
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_BGCOLOR, clrDarkGray);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_FONTSIZE, 11);
   lineY += 40;
   
   // 买卖按钮(宽度155px,文字完整)
   ObjectCreate(0, "TRADEs_B", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_XDISTANCE, x + 15);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_YSIZE, 32);
   ObjectSetString(0, "TRADEs_B", OBJPROP_TEXT, "买入 0.01");
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_BGCOLOR, clrBlue);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "TRADEs_B", OBJPROP_FONTSIZE, 13);
   
   ObjectCreate(0, "TRADEs_S", OBJ_BUTTON, 0, 0, 0);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_XDISTANCE, x + 180);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_YDISTANCE, lineY);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_XSIZE, 155);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_YSIZE, 32);
   ObjectSetString(0, "TRADEs_S", OBJPROP_TEXT, "卖出 0.01");
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_BGCOLOR, clrRed);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_COLOR, clrWhite);
   ObjectSetInteger(0, "TRADEs_S", OBJPROP_FONTSIZE, 13);
}

//+------------------------------------------------------------------+
//| 更新按钮状态                                                     |
//+------------------------------------------------------------------+
void UpdateButtonsState()
{
   ObjectSetString(0, "sw_autoTrade", OBJPROP_TEXT, gAutoTrade ? "自动交易: 开" : "自动交易: 关");
   ObjectSetInteger(0, "sw_autoTrade", OBJPROP_BGCOLOR, gAutoTrade ? clrGreen : clrDarkGray);
   ObjectSetString(0, "sw_gridProfit", OBJPROP_TEXT, gGridProfit ? "盈利网格: 开" : "盈利网格: 关");
   ObjectSetInteger(0, "sw_gridProfit", OBJPROP_BGCOLOR, gGridProfit ? clrGreen : clrDarkGray);
   ObjectSetString(0, "sw_gridLoss", OBJPROP_TEXT, gGridLoss ? "亏损网格: 开" : "亏损网格: 关");
   ObjectSetInteger(0, "sw_gridLoss", OBJPROP_BGCOLOR, gGridLoss ? clrGreen : clrDarkGray);
   ObjectSetString(0, "sw_mobileTrade", OBJPROP_TEXT, gMobileTrade ? "移动跟单: 开" : "移动跟单: 关");
   ObjectSetInteger(0, "sw_mobileTrade", OBJPROP_BGCOLOR, gMobileTrade ? clrGreen : clrDarkGray);
   ObjectSetString(0, "sw_nightUnload", OBJPROP_TEXT, gUnloadNight ? "夜间清仓: 开" : "夜间清仓: 关");
   ObjectSetInteger(0, "sw_nightUnload", OBJPROP_BGCOLOR, gUnloadNight ? clrGreen : clrDarkGray);
   
   for(int i = 0; i < totalPairs; i++)
   {
      color bg = (gSelectedPairIndex == i) ? clrYellow : clrDarkGray;
      color txt = (gSelectedPairIndex == i) ? clrBlack : clrWhite;
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_BGCOLOR, bg);
      ObjectSetInteger(0, "pair_btn_"+IntegerToString(i), OBJPROP_COLOR, txt);
   }
}

//+------------------------------------------------------------------+
//| 图表事件处理                                                     |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   if(id == CHARTEVENT_OBJECT_CLICK)
   {
      if(sparam == "info_toggle")
      {
         gInfoPanelCollapsed = !gInfoPanelCollapsed;
         ObjectsDeleteAll(0, "info_", -1, -1);
         if(gInfoPanelCollapsed)
            ObjectSetString(0, "info_toggle", OBJPROP_TEXT, "显示");
         else
         {
            CreateInfoPanel();
            ObjectSetString(0, "info_toggle", OBJPROP_TEXT, "隐藏");
         }
         ChartRedraw();
      }
      else if(sparam == "trade_toggle")
      {
         gTradePanelCollapsed = !gTradePanelCollapsed;
         ObjectsDeleteAll(0, "trade_", -1, -1);
         if(gTradePanelCollapsed)
            ObjectSetString(0, "trade_toggle", OBJPROP_TEXT, "显示");
         else
         {
            CreateTradePanel();
            ObjectSetString(0, "trade_toggle", OBJPROP_TEXT, "隐藏");
         }
         ChartRedraw();
      }
      else if(StringFind(sparam, "pair_btn_") == 0)
      {
         int idx = (int)StringToInteger(StringSubstr(sparam, 9));
         if(idx >= 0 && idx < totalPairs)
            gSelectedPairIndex = idx;
         UpdateButtonsState();
         UpdatePanelData();
      }
      else if(sparam == "btn_closeProfit")
      {
         CloseProfitPositions(pairs[gSelectedPairIndex].symbol);
      }
      else if(sparam == "btn_closeLoss")
      {
         CloseLossPositions(pairs[gSelectedPairIndex].symbol);
      }
      else if(sparam == "btn_closePair")
      {
         ClosePositionsBySymbol(pairs[gSelectedPairIndex].symbol);
      }
      else if(sparam == "btn_closeAll")
      {
         CloseAllPositions();
      }
      else if(sparam == "sw_autoTrade")
      {
         gAutoTrade = !gAutoTrade;
         UpdateButtonsState();
      }
      else if(sparam == "sw_gridProfit")
      {
         gGridProfit = !gGridProfit;
         UpdateButtonsState();
      }
      else if(sparam == "sw_gridLoss")
      {
         gGridLoss = !gGridLoss;
         UpdateButtonsState();
      }
      else if(sparam == "sw_mobileTrade")
      {
         gMobileTrade = !gMobileTrade;
         UpdateButtonsState();
      }
      else if(sparam == "sw_nightUnload")
      {
         gUnloadNight = !gUnloadNight;
         UpdateButtonsState();
      }
      else if(sparam == "TRADEs_B")
      {
         string sym = pairs[gSelectedPairIndex].symbol;
         double lot = CalculateLotSize(pairs[gSelectedPairIndex]);
         OpenOrder(sym, 1, lot, InpMagic, "Manual Buy");
      }
      else if(sparam == "TRADEs_S")
      {
         string sym = pairs[gSelectedPairIndex].symbol;
         double lot = CalculateLotSize(pairs[gSelectedPairIndex]);
         OpenOrder(sym, -1, lot, InpMagic, "Manual Sell");
      }
   }
}

//+------------------------------------------------------------------+
//| 初始化                                                           |
//+------------------------------------------------------------------+
int OnInit()
{
   if(InpAllowedAccount != 0 && AccountInfoInteger(ACCOUNT_LOGIN) != InpAllowedAccount)
   {
      Print("账号未授权!");
      return INIT_FAILED;
   }
   if(InpDemoOnly && AccountInfoInteger(ACCOUNT_TRADE_MODE) != ACCOUNT_TRADE_MODE_DEMO)
   {
      Print("仅允许模拟账户运行!");
      return INIT_FAILED;
   }
   
   ParseBlacklist();
   InitPairs();
   CreateInfoPanel();
   CreateTradePanel();
   UpdateButtonsState();
   
   EventSetMillisecondTimer(InpSpeedMs);
   return INIT_SUCCEEDED;
}

//+------------------------------------------------------------------+
//| 反初始化                                                         |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();
   ObjectsDeleteAll(0);
}

//+------------------------------------------------------------------+
//| 定时器(主循环)                                                  |
//+------------------------------------------------------------------+
void OnTimer()
{
   if(gIsProcessing) return;
   gIsProcessing = true;
   
   gIsWithinTime = IsWithinTradingHours();
   gIsBlacklistTime = IsBlacklistTime();
   
   ManageNightUnload();
   ManageMobileTrade();
   
   if(gAutoTrade && gIsWithinTime && !gMobileTrade && !gIsBlacklistTime)
   {
      SSignal sig = CalculateSignal();
      for(int i = 0; i < totalPairs; i++)
      {
         if(sig.shouldOpen && GetPairPositionsCount(pairs.symbol) == 0 && GetAllPositionsCount() < InpMaxOrders)
         {
            double lot = CalculateLotSize(pairs);
            if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) > lot * 1000)
            {
               OpenOrder(pairs.symbol, sig.direction, lot, InpMagic, "BigRise Signal");
            }
         }
      }
      ManageGrid(sig);
   }
   
   ManageTakeProfitStopLoss();
   UpdatePanelData();
   UpdateButtonsState();
   
   gIsProcessing = false;
}
//+------------------------------------------------------------------+
举报

点赞 1 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-26 13:11:57 | 显示全部楼层
EA面板修正后最新版本,参数已经调校好,默认即可,仓位大的忽略!
filetype

BigRise EA.ex5

53.64 KB, 下载次数: 227, 下载积分: 活跃度 -5  [下载]

面板修正

评分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:5    参与人数:1    我的评分:未评 下载时遇到问题?
举报

点赞 1 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-28 09:50:47 | 显示全部楼层
QQ20260528-094936.gif

本来不想这样张扬的,无奈很多客户问盈利情况,自己看~今日最新盈利。
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-28 21:12:09 | 显示全部楼层
QQ20260528-210725.gif

今日的盈利和开单情况,今天白天和昨日有一天的持仓单,刚才一波行情结束全部盈利出局!
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-31 19:28:14 | 显示全部楼层
我特意用模拟账号给大家观摩:

账号:63559

密码:Abc123789$(密码不定时更新)

服务器:EBCFinancialGroupKY-Demo
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-6-5 23:31:43 | 显示全部楼层
QQ20260605-232841.gif

今日两个软件盈利收益!
举报

点赞 评论 使用道具

fjszph
D
| 发表于 2026-5-24 13:28:45 | 显示全部楼层
这不错的做单
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-24 14:10:19 | 显示全部楼层

感谢支持
举报

点赞 评论 使用道具

16237298
D
| 发表于 2026-5-24 16:03:29 | 显示全部楼层
MT4,还能不能用
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-24 16:13:25 | 显示全部楼层

你之前有的话可以用。就是源码有些凌乱,需要优化
举报

点赞 评论 使用道具

53916584
D
| 发表于 2026-5-24 23:50:32 | 显示全部楼层
奈何活跃度不够只能看着
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-25 06:36:18 | 显示全部楼层
53916584 发表于 2026-5-24 23:50
奈何活跃度不够只能看着

那就多活跃活跃
举报

点赞 评论 使用道具

413774302
D
| 发表于 2026-5-25 06:45:56 | 显示全部楼层
参数都默认就可以吗?有人试过没呀?
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-25 14:30:56 | 显示全部楼层
413774302 发表于 2026-5-25 06:45
参数都默认就可以吗?有人试过没呀?

别人测试不如自己测试
举报

点赞 评论 使用道具

hncbxjh
DDD
| 发表于 2026-5-25 20:54:22 | 显示全部楼层
这个不错
举报

点赞 评论 使用道具

huangyi0324
DD
| 发表于 2026-5-26 01:54:55 | 显示全部楼层
7d331f0e-5131-4594-8c26-ada2b379b20c.png
能把面板优化一下吗
举报

点赞 评论 使用道具

agg123456789
D
| 发表于 2026-5-26 02:08:45 来自手机 | 显示全部楼层
看着不错,先收藏一下
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-26 09:03:29 | 显示全部楼层
huangyi0324 发表于 2026-5-26 01:54
能把面板优化一下吗

正在处理这个面板模块
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-26 09:03:46 | 显示全部楼层
agg123456789 发表于 2026-5-26 02:08
看着不错,先收藏一下

感谢支持~~~~
举报

点赞 评论 使用道具

581589
C
 楼主 | 发表于 2026-5-26 09:04:02 | 显示全部楼层

谢谢老板支持
举报

点赞 评论 使用道具

jiangliangjl
DD
| 发表于 2026-5-26 11:08:00 | 显示全部楼层
这个不错,下载测试,感谢楼主!
举报

点赞 评论 使用道具

470949635
D
| 发表于 2026-5-26 11:45:20 | 显示全部楼层
先下载试试,感谢楼主
举报

点赞 评论 使用道具

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