[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 191

 
eddy:

错误的价格是1.37197000。

正确的价格是1.37197或1.3719,取决于哪个DNS。

NormalizeDouble()用于设置小数点后的数字。


为OrderSend()中的价格添加了NormalizeDouble(),现在没有错误了,谢谢!
 
artmedia70:

这是最简单不过的了。

将函数本身放在start()函数之外,或者放在整个代码的最末尾。



谢谢你!
 
eddy:

我需要在启动指标后的第一个刻度上记住GetTickCount,但下面的代码不起作用--终端挂起。也许RefreshRates在init()中根本不起作用...?

while(true){if(RefreshRates()){ tik=GetTickCount();break; }Sleep(1); }

有人知道如何实现吗? 我想在init中实现,因为如果我在开始时设置一个标志--它每次都会被检查。
 
eddy:
我想在init中实现它,因为如果你在开始时做一个标志,它将在每次检查时被检查。
在声明全局变量 时,要给它赋值,并在开始时重置它。那么它将只在第一个刻度上有初始值,在分配之前,而在所有随后的刻度上--开始时分配的值。然后,所有在EA启动时执行一次的操作都可以转移到启动时。
 
eddy:

你能告诉我如何以编程方式在图表上加载指标吗?

一个函数 bool ServiceLoadCustomIndicator(int hwndChart, ...);//hwndChart- 图表窗口的系统描述符,指标被加载在那里

我不知道如何知道图表窗口的描述符。

我只需要在指标开始后的第一个刻度上记住GetTickCount,但下面的代码不起作用--终端挂起。 也许在init()中RefreshRates根本不起作用...?

https://docs.mql4.com/ru/windows/WindowHandle
 
granit77:
在声明中为全局变量赋值,并在启动时重置。那么它将只在第一个刻度上有原始值,在分配之前,而在随后的所有刻度上--开始时分配的值。然后,所有在EA启动时执行一次的操作都可以转移到启动时。

我不需要在启动时给这个变量分配任何东西。

我决定创建一个单独的指标,在一个全局变量中记忆刻度,其值将在启动时为主指标所知。

Zhunko,如果有几个具有相同TF和符号的窗口怎么办?

 
eddy:

我不需要在启动时给这个变量分配任何东西。

我决定创建一个单独的指标,在一个全局变量中记忆刻度,其值将在启动时为主指标所知。

Zhunko,如果有几个具有相同时间框架和符号的窗口怎么办?

很久以前检查过(你也可以这样做),它返回最后一个或活动的一个。
 
Zhunko: 返回最后一个或活动的一个。

也就是说,如果它们中没有一个是活动的,它就会返回最后一个?

然而,这并不重要,我认为在添加时,无论如何,你想添加的那个总是活跃的。

 
eddy:

然而,这并不重要,我认为无论如何,当你添加它的时候,它总是活跃的,你想在哪里添加它就在哪里。

是的,完全正确。我有一个函数,按Z顺序返回所有相同图表窗口的描述符。没有把它列入图书馆。但这不会有什么帮助。
 
eddy:

我不需要在启动时给这个变量分配任何东西。只需要一次就能记住勾选。

我决定做一个单独的指标来记忆全局变量中的ticks,主指标在启动时识别其值。

我的意思是这样。
bool FirstStart=true;

int start(){

    if(FirstStart){
      if(RefreshRates()) tik=GetTickCount();
      FirstStart=false;
    } 
}