[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 223

 
solnce600:

先生们,晚上好。

你能告诉我为什么编译器认为在下面的代码中

int Ticket变量未被定义。

它产生了一个错误

'Ticket' - 未定义变量 C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)

但在下面的代码中,Ticket变量也被定义在赋值语句中,并且代码编译成功。

int Ticket变量是本地的,将在下一次打勾时被重置。
 
Vinin:


可能只是在一个地方缺少了括号

问题解决了,非常感谢你。
 
TarasBY:
int Ticket变量是本地的,将在下一次打勾时被重置。
我们考虑了这一意见,非常感谢。
 

我遇到了这个问题。

我需要为3000个投标价格值初始化一个双类型 的一维数组,所有的值都是不同的,而且不按顺序排列。

我必须手动输入用逗号分隔的每个值--这不现实。

我试着用excel,但如果我放一个点而不是浮点,excel就不会读到数字之间放一个逗号。

请建议最佳方案。


 

我写了一个简单的专家顾问,它返回3个变量并将它们传递给start()

然后在每一次打勾时,这些数据(对象类型、价格1和价格2)应该被返回。

//+-------------------------------------------------------------------------------------+
//|                                                TradingByLine.mq4                    |
//|                                                              hoz                    |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""

string objName;
int isObj,
    objType;
double price1,
       price2;

//+-------------------------------------------------------------------------------------+
//| Функция иницилизации                                                                |
//+-------------------------------------------------------------------------------------+
int init()
{

   

  return(0);
}
//+-------------------------------------------------------------------------------------+
//| Функция деиницилизации                                                              |
//+-------------------------------------------------------------------------------------+
int deinit()
{
//----
   
//----
  return(0);
}
//+-------------------------------------------------------------------------------------+
//| Блок поиска своих объектов                                                          |
//+-------------------------------------------------------------------------------------+
bool IsObjectFound(double& price1, double& price2, int& objType)
{
   for (int obj=0; obj<=ObjectsTotal()-1; obj++)
   {
      objName = ObjectName(obj);
      isObj = ObjectFind(objName);
      price1 = ObjectGet("objName", OBJPROP_PRICE1);
      price2 = ObjectGet("objName", OBJPROP_PRICE2);
      objType = ObjectType("objName");

      if (isObj != -1)
         return(true);
   }
   return(false);
}
//+-------------------------------------------------------------------------------------+
//| Функция start                                                                       |
//+-------------------------------------------------------------------------------------+
int start()
{
   if (!IsObjectFound(price1, price2, objType))
      return(0);
   Print("objType = ", objType);
   Print("price1 = ", price1, ", price2 = ", price2);

  return(0);
}

然后我在测试器中以可视化模式运行这个专家顾问,并在图表中手绘一条线。我在IsObjectFound() 函数中得到的绘图价格和对象类型都没有正确返回。下面是日志输出。

2013.03.16 20:12:46     2013.01.24 00:02  TradingByLine EURJPY,M1: objType = -1
2013.03.16 20:12:46     2013.01.24 00:02  TradingByLine EURJPY,M1: price1 = 0, price2 = 0
2013.03.16 20:12:46     2013.01.24 00:02  TradingByLine EURJPY,M1: objType = -1
2013.03.16 20:12:45     2013.01.24 00:01  TradingByLine EURJPY,M1: price1 = 0, price2 = 0
2013.03.16 20:12:45     2013.01.24 00:01  TradingByLine EURJPY,M1: objType = -1
2013.03.16 20:12:45     2013.01.24 00:01  TradingByLine EURJPY,M1: price1 = 0, price2 = 0
2013.03.16 20:12:45     2013.01.24 00:01  TradingByLine EURJPY,M1: objType = -1
2013.03.16 20:12:44     2013.01.24 00:01  TradingByLine EURJPY,M1: price1 = 0, price2 = 0

这条线是手绘的,这意味着它有一个类型和其他参数。

航线

为什么没有返回所需的参数?

 
solnce600:

我遇到了这个问题。

我需要为3000个投标价格值初始化一个双倍类型的一维数组,所有的值都是不同的,而且不按顺序排列。

手动输入每个用逗号分隔的数值是不现实的。

我试着用excel,但如果我用点来代替浮点,excel就不会读取数字,在它们之间加逗号。

请建议最佳方案。


Excel可以阅读,给我看看你是如何做到的更多细节
 
hoz:

我写了一个简单的专家顾问,它返回3个变量并将它们传递给start()

然后在每一次打勾时,这些数据(对象类型、价格1和价格2)应该被返回。

然后我在测试器中以可视化模式运行这个专家顾问,并在图表中手绘一条线。我在IsObjectFound() 函数中得到的绘图价格和对象类型都没有正确返回。下面是日志输出。

这条线是手绘的,这意味着它有一个类型和其他参数。

为什么没有返回所需的参数?

我们必须

price1 = ObjectGet("objName", OBJPROP_PRICE1);
      price2 = ObjectGet("objName", OBJPROP_PRICE2);
      objType = ObjectType("objName");

objName,不带引号。这是包含对象名称(字符串)的变量名称(程序文本中的标识符)。

 
alsu:

它应该是

objName,不带引号。这是包含对象名称(字符串)的变量名称(程序文本中的标识符)。



顺便说一下,文件中认为不是这样。这就是我陷入混乱的地方。

文档错误

 
alsu:

Excel可以读懂它,告诉我更多的细节如何去做

在100个数值的行中,第一个符号(即价格)后有一个逗号。

突出显示某一行

主页 - 查找和替换

将所有的逗号改为点号--成功。

现在我们必须在数值之间加上逗号

我选择单元格的格式

所有格式

在显示我的字符串的数字格式的活动字段中--我在末尾放了一个逗号

Exel说他无法处理我输入的格式。

 
hoz:


顺便说一下,文件中认为不是这样。所以我被误导了。

引号是指字符串变量的VALUE,而不是变量本身!!!!。