Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
这没有什么区别。我怀疑有区别,因为当我设置订单和仓位时,我给他们的仓位我自己的 "评论",给订单我自己的。因此,当一个订单移动到一个位置时,它继承了订单的评论。
然后当我们通过评论检查位置时,出现了混乱......评论是不同的。 我修复了这个。
在你的代码中,我完全没有发现或理解在SELL_LIMIT 触发的条件下是如何平仓的。 公平。
似乎我们已经检查了所有的头寸是否可以被关闭,并且为它设置了标志。
但在CloseAllPositions() 中。
缺少一些东西。
没有检查关闭所有头寸的情况 -SELL_LIMIT 已经触发。
也许这个同样的m_account.Equity()>= m_account.Balance()+15是以其他方式实现的?
也可能是因为我对平均数在我的语境中的含义解释得不正确。
我已经在上面提到过-- 挂单 与此无关。一个挂单不能有利润。从 "在所有 "这个词来看。除非你把这一点说清楚,否则你就无法继续前进。
补充:我展示了两种情况的解决方案的例子。
我已经在上面指出了-- 挂单 与此完全无关。一个挂单不能有利润。从 "在所有 "这个词来看。除非你把这一点说清楚,否则你无法进一步发展。
弗拉基米尔。当然,一个挂单不可能有利润。当然,我们说的是未结头寸的利润。
只是区别在于这些头寸的开仓方式。 我们需要对它们采取不同的平仓方式。
如果第二个头寸是由一个聪明的SELL_STOP订单建立的,那么其中一个必须被关闭,就是那个有更大利润的头寸。 这对你来说已经成功了,而且很有效。
如果第二个头寸是由SELL_LIMIT订单打开的,那么它们都应该由Equity(m_account.Equity()>= m_account.Balance()+15) 关闭,除非其中一个 的 SL 首先被触发。
已添加。
我已经展示了两种情况下的解决方案实例。
在第二个条件下,一切似乎都很好。但由于某些原因,我的第二个条件是打开第二个位置,并立即关闭它,接近0 -1,2。
也许我在一个错误的地方指定了总利润?
InpProfitTarget = 15; 如果在这里,它不工作。
弗拉基米尔。当然,一个挂单不能有利润。我们谈论的是利润,当然是关于开放的头寸。
只是这些仓位的开仓方式不同。 我们需要对它们采用不同的平仓方式。
如果第二个头寸是由一个聪明的SELL_STOP订单建立的,那么其中一个必须被关闭,就是那个有更大利润的头寸。 这对你来说已经成功了,而且很有效。
如果第二个头寸是由SELL_LIMIT订单打开的,那么它们都应该由Equity(m_account.Equity()>= m_account.Balance()+15) 关闭,除非其中一个 的 SL 首先被触发。
对不起。
我展示了两个案例的解决方案的例子。
接下来请你自己做一些事情。
对不起。
我展示了两个案例的解决方案的例子。
从这里开始,请你自己做一些事情。
谢谢你的帮助,弗拉基米尔,我正在努力。
2.我们有两个以上的头寸--如果它们的总利润大于指定的一个,我们就关闭所有的头寸。
但我不需要它,我需要两个或更多的头寸,其中第二个头寸是在触发SELL_LIMIT 的情况下打开 的。
无论如何,感谢你的耐心和努力。当然,我会用自己的方式来解决,我会吃苦耐劳,解决它)))。
或者给我一个提示,让我去哪里挖。
你应该总是在文件中寻找
秩序时间(ORDER_TIME_GTC
该订单将保持在队列中,直到它被撤回。
你应该总是在文件中寻找
秩序时间(ORDER_TIME_GTC
该订单将保持在队列中,直到它被撤回。
谢谢你,这一定是它
晚上好!
有1个空缺职位。
专家顾问使用PositionClose()方法关闭一个头寸。
结果被打印出来 ResultRetcode= 10009。代码描述:在0.00时完成
在代码下面,有一个检查if(PositionSelect(_Symbol)),它成功了。
也就是说,在执行PositionClose()和未平仓头寸消失之间有一段时间,在此期间,程序设法进行错误的退出。
如何正确解决这种情况?
为什么我每次在测试后都要重新启动终端来运行一个新的测试?
我删除了所有对象。我关闭了文件。以下是我停止测试时的日志。
但下次就不会再启动了--我必须关闭终端,然后再打开它。建设2361。