for (int index=0; index<OrdersTotal(); index++) // Цикл по терминалу. В кач-ве переменной цикла будет index для наглядности
{
if (OrderSelect(index, SELECT_BY_POS) && OrderMagicNumber()==Magic) // Если выбран ордер и магик равен магику советника
{
if (OrderTipe()==OP_BUY) // Если нам нужен ордер Бай
{
//............... Тут код обработки выбранного орд
}
}
}
if (OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime()==0) // Если выбран ордер по тикету и время его закрытия равно нулю
{
if (OrderTipe()==OP_BUY) // Если нам нужен ордер Бай
{
//............... Тут код обработки выбранного ордера
}
}
在这里,它是
顾问的工作。他开启了交易
我还是很纠结,不明白,我不明白唯一的序列号是怎么来的,例子中的一切都不一样。
如果我没有弄错的话,我不是创造它的人,比如说
既然你删除了PM中的问题,没有等到答案--我就把它扔在这里。
让我们这样来分析一下。
订单位置或订单号,取决于第二个参数。
(订单位置或编号,从何而来???)
"取决于第二个参数" - 这是否意味着它取决于 "选择"?
订单的位置是它在您终端的订单阵列中的位置。这正是我们在循环中寻找的位置。
顺序搜索。
如果我们搜索的是SELECT_BY_POS,下一个参数默认为MODE_TRADES,你可以省略它。专家顾问将搜索尚未关闭的头寸,即在市场上。
如果我们需要搜索已经关闭的订单,那么我们必须在SELECT_BY_POS后面添加以下参数:MODE_HISTORY。然后,专家顾问将只搜索平仓和删除或触发的订单列表。
(如果我没有弄错的话,这些是已经设置好的订单,对吗?"0 "是上面的第一个,
"1 "是列表中的第二个,以此类推)。
正是这个位置,订单在终端订单阵列中的位置,可以说是它的索引--非常的索引
...而它们在数组中的位置是从数组的零单元开始的,尽管顺序号是从1开始的。即,第一阶位于阵列的零格,第二阶位于第一格,第三阶位于第二格,等等......
现在来看看这张票。票,是一个订单的唯一编号,由你的经纪公司分配。根据这个数字,我们可以清楚地确定这个非常的顺序或位置。然而,我们确实有一些保留意见。该票据应保存在EA的某个地方(一个变量或一个数组),这样你就能准确地知道你需要哪个订单有这个票据。为此,我使用我自己的EA的订单簿功能,在这里我不仅存储了可以使用标准函数获得的订单数据,而且还在其中存储了例如菲波位,我在开仓后立即计算,然后将它们输入我的订单簿。然后,我根据开仓时间和取款情况轻松选择一个仓位,并根据我在订单阵列中为该仓位保存的Fibo水平移动止损水平 ...我还可以从那里得到我需要的订单票,并在以后用标准函数使用它。
这里有必要将订单关闭的时间与零进行比较。因为在针对票据的选择过程中,MODE_TRADES和MODE_HISTORY被忽略,不被使用,我们必须看到订单关闭的时间,以确定它是否被关闭,并从未结头寸列表中选择。如果它还在市场上,其收盘时间也将为零。
如果你想看一个已关闭的订单的数据,并且你必须通过票据来选择它,关闭时间应该与零进行比较,如果是这样,该订单已经关闭。
选择的数据来源。当选择 参数等于SELECT_BY_POS时,它被使用。它可以是以下数值之一。
MODE_TRADES (默认) - 订单在未结订单 和待定订单 中选择,
这些是当前的订单
MODE_HISTORY - 订单在已关闭和已删除的订单中选择。
,这是从已完成的订单列表中,就像从日志列表中一样,对吗?
这是正确的。
它返回尚未关闭的订单的当前利润。
如果该订单已经被关闭,它将返回该订单的利润或损失。一个,选定。
不考虑掉期、佣金等因素......。为了将它们考虑在内,我们需要创建自己的函数。
=============================================================================
我希望你能搞清楚......。:)顾问的工作。这是开幕式的交易。
谢谢!!!! 知道交易平台有病,显然。
有必要用EA来平滑指数移动平均线的波动(这里的值是:High[iHighest(NULL, 0, MODE_HIGH, 30, 1)] - Low[iLowest(NULL, 0, MODE_LOW, 30, 1)] )。据我所知,这不能由标准的iMA完成,我需要为此写一个函数?谁能帮我写一下代码?
阵列中的iMAOnArray
大家好....,有一个问题......谁能帮帮我......?
我正在交易一个基于马丁格尔原则的EA......我决定在其中也加入一个止损......为了计算损失,我使用了以下公式
出现了一个关于检测按下的键的问题。有必要对按下的事实进行跟踪,例如,如果K被按下,那么我们就执行一些行动。在这里( http://msdn.microsoft.com/en-us/library/ms646293%28v=VS.85%29.aspx )发现了int GetAsyncKeyState(int vKey)函数,原则上是我需要的。但有一个问题:只有当MetaTrader窗口处于活动状态时,才应定义按下的事实。我在我的专家顾问中使用以下简单的代码来检查。
我在写这篇文章时正在听警报:)。请帮助我克服这个问题=)恐怖啊!!!朋友们,我迷失了...:)
有两个嵌套的循环。当我通过break退出内循环时,我应该在哪里退出--在外循环的开始还是结束?
到外支架的关闭支架还是到打开支架?
恐怖啊!!!朋友们,我迷失了...:)
有两个嵌套的循环。当通过break退出内循环时,我应该在哪里退出--在外循环的开始还是结束?
对外部的关闭支架,还是对开启支架?
在工作室的代码。
事实上,就在内循环的结束括号后面
请输入代码。
事实上,就在内循环的结束括号后面
难道没有人知道如何为系列((((,做一个固定的停止。
这里有很多专业人员,工作可能没有那么难。