首页 > 解决方案 > MQL5 多变量数组结构

问题描述

如何在 MQL5 上创建一个可以容纳 3 个变量的数组以及如何填充它以及如何调用它?请看图片 https://i.imgur.com/VyjmwNW.jpg [![array][1]][1]

在 nicholishen 回答之后,当我尝试使用变量初始化数组时,我得到以下错误:'hi' -需要常量表达式22.mq5 16 18

void OnStart()
{
   struct MyData { string name; double price; int volume; };
   // initializing an array of structs


     double hi= 0.01;


   MyData arr[] = {
      {"USDJPY", hi, 200},
      {"USDJPY", 110.100, 300},
      {"USDJPY", 110.200, 400},
   };

}

标签: mql5

解决方案


我相信你正在寻找的是一个结构数组。结构是可以保存不同类型数据的对象。这是您可以在终端中运行的示例。

void OnStart()
{
   struct MyData { string name; double price; int volume; };
   // initializing an array of structs
   MyData arr[] = {
      {"USDJPY", 110.000, 200},
      {"USDJPY", 110.100, 300},
      {"USDJPY", 110.200, 400},
   };
   // changing some values 
   arr[1].name = "EURUSD";
   arr[1].price = 1.12;
   arr[1].volume = 1000;

   for (int i=0; i<ArraySize(arr); i++)
      printf(
         "Symbol=%s, price=%.3f, vol=%d", 
         arr[i].name, 
         arr[i].price, 
         arr[i].volume
      );
}

推荐阅读