| 最后由 wuwei 于 2024-6-23 17:08 编辑 
 1. 全面统计功能:该代码能够全面统计当前所有订单的数量、总手数、总盈亏、总手续费和总隔夜利息。
 2. 实时更新:代码实时更新统计信息,确保交易者随时掌握最新的订单动态。
 3. 简洁直观:结果通过日志和图表清晰显示,便于交易者快速获取关键信息。
 
 
 
 复制代码//+------------------------------------------------------------------+
//|                                              OrderStatistics.mq4 |
//|                        Generated by ChatGPT                      |
//|                                                                  |
//+------------------------------------------------------------------+
#property strict
// Order statistics structure
struct OrderStats {
   int orderCount;
   double totalLots;
   double totalProfit;
   double totalLoss;
   double totalCommission;
   double totalSwap;
};
//+------------------------------------------------------------------+
//| GetOrderStatistics function                                      |
//+------------------------------------------------------------------+
OrderStats GetOrderStatistics() {
   OrderStats stats;
   stats.orderCount = 0;
   stats.totalLots = 0.0;
   stats.totalProfit = 0.0;
   stats.totalLoss = 0.0;
   stats.totalCommission = 0.0;
   stats.totalSwap = 0.0;
   for (int i = OrdersTotal() - 1; i >= 0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         stats.orderCount++;
         stats.totalLots += OrderLots();
         stats.totalCommission += OrderCommission();
         stats.totalSwap += OrderSwap();
         double orderProfit = OrderProfit() + OrderSwap() + OrderCommission();
         if (orderProfit >= 0) {
            stats.totalProfit += orderProfit;
         } else {
            stats.totalLoss += orderProfit;
         }
      }
   }
   return stats;
}
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
   OrderStats stats = GetOrderStatistics();
   Print("Total Orders: ", stats.orderCount);
   Print("Total Lots: ", DoubleToStr(stats.totalLots, 2));
   Print("Total Profit: ", DoubleToStr(stats.totalProfit, 2));
   Print("Total Loss: ", DoubleToStr(stats.totalLoss, 2));
   Print("Total Commission: ", DoubleToStr(stats.totalCommission, 2));
   Print("Total Swap: ", DoubleToStr(stats.totalSwap, 2));
   // Additional unique display logic
   Comment(
      "Order Statistics\n",
      "-----------------\n",
      "Total Orders: ", stats.orderCount, "\n",
      "Total Lots: ", DoubleToStr(stats.totalLots, 2), "\n",
      "Total Profit: ", DoubleToStr(stats.totalProfit, 2), "\n",
      "Total Loss: ", DoubleToStr(stats.totalLoss, 2), "\n",
      "Total Commission: ", DoubleToStr(stats.totalCommission, 2), "\n",
      "Total Swap: ", DoubleToStr(stats.totalSwap, 2)
   );
}
//+------------------------------------------------------------------+
 |