if (!ExistPositions("", Sell, MagicNumber)) { // вместо Sell должно быть OP_SELL или 1double sl, tp;
if (Sell) {
if (StopLoss>0) sl=Bid+StopLoss*Point; else sl=0;
if (TakeProfit>0) tp=Bid-TakeProfit*Point; else tp=0;
}
else { // Это расчёт для OP_BUY - зачем он тут?if (StopLoss>0) sl=Ask-StopLoss*Point; else sl=0;
if (TakeProfit>0) tp=Ask+TakeProfit*Point; else tp=0;
}
OpenPosition("", Sell, Lots, sl, tp, MagicNumber); // вместо Sell должно быть OP_SELL или 1
} // ну и, если нужен Buy, то OP_BUY или 0
你能建议以下事情吗,账户上有N个EA,在一定条件下都可以同时开出一个订单,每个人在账户上检查的订单不超过1个,但有时我最终会有N个订单,我该怎么做?
联系他们,他们可能会猜到原因,并远程提出解决方案;)
你好,我想再次提出一个关于在最后一笔订单上设置止损的问题。
我想澄清的是,在测试器中,有时止损没有放在最后一个订单上。
到目前为止,这种情况还没有发生在前方的测试中。 但正如他们所说,为什么要等待?)
编码
你能建议以下事情吗,账户上有N个EA,在一定条件下都可以同时开出一个订单,每个人在账户上检查的订单不超过1个,但有时我最终会有N个订单,我该怎么做?
阅读文章
交易之间的停顿
错误146("交易流繁忙")以及如何处理阅读文章
交易之间的停顿
错误146("交易流繁忙")以及如何处理谢谢你!!!。
你确定这部分代码是问题的来源吗?从你所展示的内容来看,很难得出结论--有很多未知的变量,而且你无法看到开口本身。
要想自己找到原因,可以打印或显示带有注释的变量值。然后你将能够在任何时候看到它们的价值。
这是基于金先生的eOpenByTime专家顾问。我还添加了一个追踪止损,在周末关闭,在一周的某一天打开。在这种形式下,专家顾问的工作应该是正常的。
交易开盘是以下列方式进行的,我只添加了交易开盘一周的日子,但这里没有什么可搞砸的。
说实话,我不太明白为什么TimeCurrent与TimeCurrent+TimeTradeOpen相比,其中TimeTradeOpen是TimeTradeOpen="19:51 "类型的外部参数。(这实际上是我们需要的职位空缺时间。)我也不明白为什么这种比较会奏效。持续时间是指专家顾问将尝试开仓的时间。
以此类推,我在周五增加了一个平仓的机会。
到目前为止,一切都在运作。
然后,我想添加一个条件,在一个特定的时间和一个特定的日子看一个蜡烛图,如果蜡烛图是看涨的,就卖出,如果是看跌的,就买入。
以同样的方式,我复制了这3行字,它们以前一直在工作,但现在由于某些原因,它们不愿意了。
此后,开仓的代码如下。TimeTradeIf也有类似的格式 TimeTradeIf = "19:51",也是通过外部参数设置。
整个代码相当长,你需要插入吗?
你好,我想再次提出一个关于在最后一笔订单上设置止损的问题。
我想澄清的是,在测试器中,有时止损没有放在最后一个订单上。
到目前为止,这种情况还没有发生在前方的测试中。 但正如他们所说,为什么要等待?)
编码
找到了问题所在。代码是可以的。是作者要求不可能的事 ))
它是基于尊敬的金先生的eOpenByTime专家顾问。我还添加了一个追踪止损,在周末关闭,在一周的某一天打开。在这种形式下,EA的工作是应该的。
交易开盘是按以下方式进行的,只有交易开盘的那一周的日期是由我加上去的,但这里没有什么可搞砸的。
说实话,我不太明白为什么TimeCurrent与TimeCurrent+TimeTradeOpen相比,其中TimeTradeOpen是TimeTradeOpen="19:51 "类型的外部参数。(这实际上是我们需要的职位空缺时间。)我也不明白为什么这种比较会奏效。持续时间是指专家顾问将尝试开仓的时间。
以此类推,我在周五增加了一个平仓的机会。
到目前为止,一切都在运作。
然后,我想添加一个条件,在一个特定的时间和一个特定的日子看一个蜡烛图,如果蜡烛图是看涨的,就卖出,如果是看跌的,就买入。
以同样的方式,我复制了这3行字,它们以前一直在工作,但现在由于某些原因,它们不愿意了。
此后,开仓的代码如下。TimeTradeIf也有类似的格式 TimeTradeIf = "19:51",也是通过外部参数设置。
整个代码相当长,我应该粘贴它吗?
说实话,我已经忘记了问题是什么。在这段代码中,我看到只有空头头寸被检查,而且还规定了空头头寸的开仓。
说实话,我已经忘记了问题出在哪里。在这个代码部分,我看到只有空头头寸被检查,只有空头头寸被打开。
Sell变量是外部的,分别包含真或假,1或0。
金的是eOpenByTime。
逻辑,行动的算法,是有缺陷的。
如果他能放弃start()函数和变量,它们所承载的内容,那么我们可以提出一些建议。
Artem,这是正确的,Sell变量是外部的,并且分别带有真或假、1或0的值。
我看了金的,eOpenByTime。
逻辑,行动的算法,是有缺陷的。
如果他能展示start()函数和变量,它们所承载的内容,那么我们就能提出一些建议。
这个想法是这样的:如果一个蜡烛在某个DayOfWeekIf在某个TimeTradeIf的时间是看涨的,那么Sell = true(卖出),如果是看跌的,那么Sell = false(买入)。
应该是这样的,但在测试中,我只在出售时得到交易。
eOpenByTime允许在给定的时间打开交易,我在给定的工作日增加了 if (DayOfWeek()==DayOfWeekOpen, where DayOfWeekOpen = 1,2,3,4,5
我把代码分成两部分附上,没有别的办法,我已经把问题的条件强调了。没有它,一切都按部就班地进行,也就是说,我们设置了塞尔,并在一周中的正确时间打开交易。
只有拖网已被切断。