初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1406

 
Marco Nicholas #:
你好。你能告诉我如何在代码中正确实现这个条件吗?

我需要在设置中指定的时间(小时、分钟,例如 "在23-55后开出第一笔交易")后开出第一笔头寸,然后不考虑这个条件。

这段代码工作得很好,但它完全打开了 "one_time_current.hour "和 "one_time_open.min "之后的所有交易。我只需要执行这个条件一次(开立1个头寸),而不应用于后续的头寸。

你好,马可!

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min && PositionsTotal()==0)

问候,弗拉基米尔。

 
MrBrooklin #:

你好,马可!


真诚的,弗拉基米尔。

谢谢你,这有点不对劲。这个代码并没有开放很多职位。没有它,它就会开得更大。
 
Marco Nicholas #:
你好。你能告诉我如何在代码中正确实现这个条件吗?

我需要在设置中指定的时间(小时、分钟,例如 "在23-55后开出第一笔交易")后开出第一笔头寸,然后不考虑这个条件。

这段代码工作得很好,但它完全打开了 "one_time_current.hour "和 "one_time_open.min "之后的所有交易。我只需要执行这个条件一次(开立1个头寸),而不是把它应用到接下来的头寸上。

你好,马可!你请求帮助,使之成为一个开放的职位。现在你在写这个。

Спасибо, немного не то. Такой код не дает открыть много позиции. Без него открывает намного больше.

首先,你需要决定你想开多少个仓位--许多一个。也许,单词的机器翻译并不能让你正确地提出你的要求。

问候,弗拉基米尔。

 
Marco Nicholas #:
你好。你能告诉我如何在代码中正确实现这个条件吗?

我需要在设置中指定的时间(小时、分钟,例如 "在23-55后开出第一笔交易")后开出第一笔头寸,然后不考虑这个条件。

这段代码工作得很好,但它完全打开了 "one_time_current.hour "和 "one_time_open.min "之后的所有交易。我们只需要执行这个条件一次(针对1个头寸的开仓),而不需要应用于后续的头寸

因此,接下来应该有另一个条件,但不能忽略 "23:55之后 "这个条件,我是这样理解的吗?

 
MrBrooklin #:

你好,马可!你请求帮助,使一个职位空缺。现在你在写这个。

首先,你需要决定你想开多少个仓位--许多一个。也许,机器翻译的文字不能让你正确地提出你的要求。

问候,弗拉基米尔。

是的,这是正确的,我们误解了对方。当我写道。

"这段代码运行良好,但绝对所有的交易都是在 "one_time_current.hour "和 "one_time_open.min "之后打开的但我们只需要执行这个条件一次(开立1个头寸),而 不需要将其应用于后续的头寸"

我想澄清一下,不是开一个仓位 "1个仓位"(你一定是这样理解的),我的意思是只适用于开第一个仓位的条件,而不适用于后面的。

谢谢你的答复。

 
Alexey Viktorov #:

因此,对于下一个位置应该有另一个条件,但不能忽略 "23:55之后 "这个条件,我是这样理解的吗?

事实证明,是的,它不需要 应用于(取消)接下来的头寸。 我们只需要打开第一个头寸(如EA的开始,在某个小时和分钟之后),而对于随后的头寸,这个条件不需要应用

是否有可能在一个条件下做到这一点?

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
 
Marco Nicholas #:

事实证明是的,它不需要 应用(取消)到接下来的头寸。 它只需要应用于打开第一个头寸(如EA的开始,在某个小时和分钟之后),对于随后的头寸不需要应用这个条件

是否有可能在一个条件下做到这一点?

  bool first_position_was_opened=false;
  ...
  if(first_position_was_opened || ( one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min))

而且不要忘记在打开任何头寸后设置 "first_position_was_opened=true"。

first_position_was_opened "变量必须是全局的或静态的。
 
我需要一个函数来计算特定符号和魔力在过去一周的利润。
我已经找到了没有magik的例子,但我无法让magik发挥作用(((。
 
JRandomTrader #:

而且不要忘记在打开任何头寸后设置 "first_position_was_opened=true"。

first_position_was_opened "变量必须是全局的或静态的。

谢谢你。有趣的工作变体。

我还想指出,我的第一个变体原来也是可行的,但有一个条件:如果你把第一个职位和后续职位的空缺分开。也有可能通过其他方式。

if(one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)
if(item_positions==0) для первой


if(item_positions>0) для последующих

感谢你的回答,学习mql5快多了。
 

或者您可以使用PositionsTotal() 代替@JRandomTrader 代码中的first_position_was_opened 变量:

if(PositionsTotal() > 0 || (one_time_current.hour>=one_time_open.hour && one_time_current.min>=one_time_open.min)) {}

在这种情况下,不需要使用该变量,也不需要在开仓后将该变量设为 True,在平仓后将该变量设为 False。