[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 603

 
lottamer:

电脑可以随心所欲地记忆--但要让它以人性化的方式给我们:))))而我们又有什么办法呢?)

它给出了它所要求的东西,根据定义,它不能 "以人为本",它是一台计算机,而不是一个人。
 

在此阅读 https://forum.mql4.com/ru/38949/page2#434212


ExistPosByPrice()函数。

该函数返回一个标志,表示在给定的开盘价 上存在一个头寸。

什么是Exist标志

 
hoz:

所以要问你写的函数是否正确,否则你问的是一件事,显示的是另一件事。
 
lottamer:

在此阅读 https://forum.mql4.com/ru/38949/page2#434212


ExistPosByPrice()函数。

该函数返回一个标志,表示在给定的开盘价上存在一个头寸。

什么是Exist标志


标志是一个变量,通常是bool类型的,它被设置为一个状态,取决于被检查的条件的真实性(这里 - 如果有一个给定开盘价 的头寸)。
 
sergeev:

而不是让==符号的这个时间只存在1秒。

正确的做法是,将符号>=置于

或通过控制两个时间变量--当前和之前。

但另一方面,你有一个逻辑错误。 你试图将第二种情况与一个订单开放条件的逻辑操作的积极结果绑定。

这是不正确的。该订单可能无法打开,这意味着你将不会尝试在下一个tick上打开它--因为时间函数将返回false


我明白了大概的意思。以下是所得到的结果。

bool GetTimeToInput()

{

  if(TimeCurrent() >= iTime(Symbol(),1440,0) && TimeCurrent() <= iTime(Symbol(),1440,0) + N)

  {

    return(true);

  }

  else

    

  return(false);

} 

N是日线开盘后的分钟数。到目前为止,我还没有想出如何得到它,所以我写了一个纯变量。这似乎是正确的。

sergeev:

你必须将成功操作的记忆与时间结合起来。

想。

但我想澄清你所说的 "将成功的操作与时间结合起来保存 "是什么意思。我不太明白。

 
hoz:


我明白了大概的意思。以下是所得到的结果。

N是指自日线开盘以来所经过的分钟数。到目前为止,我不明白如何得到它,所以我纯粹是写了一个变量。这似乎是正确的。

谢尔盖耶夫

但我想更清楚地解释,如何将记忆成功的操作与时间联系起来。我不太明白。


对你来说,重要的不是时间本身,而是某件事情是否在某段时间内完成--这是你应该检查的。

P.S. 而且你不需要确定N,只要做你的检查if(TimeCurrent() >= iTime(Symbol(),1440,0) ),直到你需要的动作完成(安装订单)。

 
rigonich:

标志是一个变量,通常是bool类型的,它被设置为一个状态,取决于条件是否为真(这里--如果有一个给定开仓价的头寸)。

我明白了,什么是INDEX的位置?它不是一个股票,也不是一个类型....。
 
lottamer:

明白了,什么是订单指数?它不是一个股票,也不是类型....。


这是决定订单在数组中的位置的索引,数组中存储着终端中存在的订单数据。

换句话说,它是下划线的(在SELECT_BY_POS下) boolOrderSelect(int index, int select, int pool=MODE_TRADES)

 
rigonich:


这是定义订单在数组中的位置的索引,终端中存在的订单数据被存储在这里。

也就是下划线的内容(用SELECT_BY_POS) bool OrderSelect(int index, int select, int pool=MODE_TRADES)



但是,如果你需要编码一个条件 "如果最后两个交易是亏损的.....",你如何在实践中应用这个方法???
 
lottamer:

但是,如果你需要编写 "如果最后两笔交易是输家..... "的条件,你如何在实践中使用它???


在实践中,这在所有与订单打交道的操作中都会用到。 你必须首先选择订单,然后对其进行处理(查看订单信息,向服务器发送交易订单 以修改或关闭它)在终端中有两种选择订单的方式,一种是通过票据,即在服务器上分配给订单的编号,对某一特定订单而言,该编号不会改变,另一种是通过订单编号(索引),该订单存储在终端下。这个数字可能会在每一个刻度上发生变化,这取决于有什么以及有多少订单被打开、设置、关闭或删除。

有订单周期来处理订单。