[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 644

 
Myth63:


问题是,我不太擅长MQL编程,我的EA是基于BASIC原则=)一个变量被分配给一个开放的订单。终端说我已经被重新登录了,而且这个变量的值在订单打开时消失了。我想,如果订单被重新登录,应该怎么做? 如果发生这种情况,终端应该检查未结头寸,并将这些值分配给机器人已经分配的变量。而专家顾问在测试中显示出良好的读数。

根据你想存储的内容(什么信息),可以使用不同的选项。

  • 关于订单的信息可以存储在其注释中,然后从注释中读取。
  • 你想要的信息可以被写入文件--一个缓慢的过程。
  • 最常用的变体是将其写入终端的全局变量 中。
 
FelixFX:

如果你不介意的话,这里有一个例子。据我所知,在执行循环之前,数据不会被更新?
int start()
{
//----
    while (!IsStopped() && IsExpertEnabled())
    {fMineFunction();}
//----
    return (0);
}
 
TarasBY:

在这个无休止的循环中,是否只能使用相同的数据?数据是否会随着新的刻度线而更新?
 
Myth63:


问题是,我不太擅长MQL编程,我的EA是基于Bacyca原则的=)一个变量被分配给一个开放的订单。终端说我已经被重新登录了,而且这个变量的值在订单打开时消失了。我想知道如何让它在有超额记录的情况下检查未结头寸,并将这些值分配给机器人已经分配的变量。

你说的是神奇的数字吗?没有足够的信息来帮助你......变量是什么,如何分配的--这就是你需要的出发点。

但我的专家顾问在测试中显示出良好的结果。

100个交易不是阅读,而是一段美好的历史。2-3年内的几千次交易是可以信任的。
 
FelixFX:

在这个无休止的循环中,是否只能使用相同的数据?数据是否会随着新的打勾而更新?
不,要想更新,必须是这样。关于循环的问题,由网站搜索引擎回答,它返回多少页。阅读它。
 
FelixFX:

在这个无休止的循环中,是否只能使用相同的数据?数据是否会随着新的勾号而更新?
循环允许你在一个 "循环 "中运行你的函数,而不需要等待下一个刻度的到来。你问的是什么数据?
 
请告知是否有一个内置的函数可以让我在每个柱状体开盘时运行我写的函数,而不是在每个刻度 上运行。 用手写似乎很容易,但当一部分代码按刻度执行,一部分按柱状体执行时,程序会变得非常混乱。 非常感谢)
 
Qwertee:
请告诉我是否有一个内置的功能,我可以在每个条形的开盘时运行我写的一些功能,而不是在每个点上。 用手写并不难,但当一些代码按点执行,一些按条形执行时,程序会变得非常混乱。 非常感谢)

所以你只需确定什么时候有一个新栏打开并执行你的功能。

你可以通过记忆条形图的开盘时间 来确定新条形图的出现,然后将其与条形图0的当前时间进行比较。如果新的时间比之前的时间长,那么我们就有了一个新的柱子。

 

sergeev 谢谢你的建议,它似乎是有效的)

好吧,还有一件事。

在我的EA中,我有这个分支。

if(period=="M15")
{
//检查打开买入
Alert(buyysell);

if(buysell=="buy")

警报(1)。

.............

}

基本上,嵌套的if。但是,条件if(period=="M15")得到满足,Alert给出了一个结果,并且买入,但是条件if(buysell=="buy")没有得到满足,Alert(1)命令甚至没有启动。

 
sergeev:

所以你只需确定什么时候有一个新栏打开并执行你的功能。

你可以通过记忆条形图的开盘时间来确定新条形图的出现,然后将其与条形图0的当前时间进行比较。如果新的时间比以前的时间长,那么你就有一个新的条形图。

我将把它写下来。

int time.marker;

void start() {
   if(time.marker!=Time[0]) {
      time.marker=Time[0];
      // тут то что буде исполнятся только на открытии бара
      }
   // тут то что буде исполнятся на каждом тике
   }