MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 124

 
VOLDEMAR:

你最好用英语写所有的东西。 如果你的代码到了海外交易员那里,他不会明白任何东西...

我为一个俄罗斯人写代码,他要求我用俄语写。而我在这里检查的是--我为自己而写,我不在乎我是用俄语还是用火星语写。如果我看到一个问题,我会描述它。

我是用英语写的,是为了市场。

 
pro_:
stringo:

搜索

并发现了

给我讲讲你的例子。


我已经在私信中给你写了信。用一个例子来说明我所面临的问题。ObjectFind是解决这个问题的一个尝试,你可能是对的,

ObjectFind本身 工作很好

这个问题很清楚。对ObjectFind函数的 使用不正确。ObjectFind返回找到对象的子窗口的编号。如果没有找到对象,则返回-1。你正在检查 "零-零"。
 
Night63:

你好!

我们发现了以下问题。

我们插入了从4位数报价切换到5位数的块(该代码运行绝对正常,已经在几十个专家顾问上测试过)。

从这里你可以看到以下内容。

我们按F7键调出专家顾问的输入参数,一切正常。

按确定,然后再按F7。

按确定,再按F7。

按确定,再按F7。

以此类推......

这个错误在更新后的版本中并没有消失。以同样的方式出现在不同的用户身上。这个话题在这里 讨论过


你不能改变输入变量!

使用关键字输入而不是extern,那么编译器就不会让你这样做。

我们将看看我们能做些什么来保持旧的四重功能

PS 非常感谢你提出这个问题

 
artmedia70:
因此,今后Bars不仅是一个预定义的变量,也是一个同名的函数:Bars() ?

这是很有可能的。(顺便说一下,在C/C++中这是允许的)。
 
stringo:

你不能改变输入变量!



在这里,你能详细解释一下,输入变量不能被改变是什么意思?

如果输入变量输入int TakeProfit = 300 ;

然后我可以在代码中给它一个不同的值。

我不明白,当我不能改变它时?

 

另一个问题,我怎样才能以编程方式确定鼠标光标在一个bmp对象上?

我做了一些代码,在对象下面有一个区域,光标落在那里,代码理解为光标在bmp对象上 ...

我问这个问题是因为我正在寻找一种更简单的方法来定义bmp对象上的光标 ...

 
VOLDEMAR:

在这里,你能更详细地解释一下输入变量不能被改变是什么意思吗?

如果输入变量输入int TakeProfit = 300 ;

然后我可以在代码中给它分配一个不同的值。

我不明白,我什么时候不能改变?

软件不能被改变。只能由用户在设置中进行。

输入 int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit。

// 然后修改 takeProfit。

return(0);

}

 
artmedia70:

你不能以编程方式改变它。只能由用户在设置中进行。

输入 int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit。

// 然后修改 takeProfit。

return(0);

}




谢谢你!!!!。我现在知道了...
 
VOLDEMAR:

在这里,你能更详细地解释一下输入变量不能被改变是什么意思吗?

如果输入变量输入int TakeProfit = 300 ;

然后我可以在代码中给它分配一个不同的值。

我不明白,我什么时候不能改变?

下面是一个来自我们定制抛物线 的例子

input double InpSARStep=0.02;    // Step
input double InpSARMaximum=0.2;  // Maximum
//---- buffers
double       ExtSARBuffer[];
//--- global variables
double       ExtSarStep;
double       ExtSarMaximum;

...

void OnInit()
  {
//--- checking input data
   if(InpSARStep<0.0)
     {
      ExtSarStep=0.02;
      Print("Input parametr InpSARStep has incorrect value. Indicator will use value",
            ExtSarStep,"for calculations.");
     }
   else
      ExtSarStep=InpSARStep;
   if(InpSARMaximum<0.0)
     {
      ExtSarMaximum=0.2;
      Print("Input parametr InpSARMaximum has incorrect value. Indicator will use value",
            ExtSarMaximum,"for calculations.");
     }
   else
      ExtSarMaximum=InpSARMaximum;

...

而且我们进一步使用ExtSarStep和ExtSarMaximum

 
stringo:
可以肯定的是,它根本不会很快。


这真是太糟糕了。我的专家们像空气一样需要这些活动。

在每一个步骤中,你必须通过一堆职位,弄清楚哪些职位去了哪里,为什么。