KimIV的有用功能 - 页 7 1234567891011121314...128 新评论 Igor Kim 2008.03.25 05:48 #61 好吧,既然没有问题,我们继续......。 ModifyOrder()函数。 函数ModifyOrder 是为了改变一个预选订单的一个或多个价格水平。在这里,挂单被理解为限价 单或止损 单,以及市场买入 或卖出 单,即一个头寸。使用ModifyOrder 函数,你可以修改仓位的StopLoss 和TakeProfit 两个价格水平,而对于挂单,OpenPrice 的设置价格也可以改变。修改后的价格水平被作为参数传递给ModifyOrder 函数。如果任何一个参数为负数,相应的价格水平将不会被改变。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Модификация одного предварительно выбранного ордера. | //+----------------------------------------------------------------------------+ //| Параметры: | //| pp - цена установки ордера | //| sl - ценовой уровень стопа | //| tp - ценовой уровень тейка | //| cl - цвет значка модификации | //+----------------------------------------------------------------------------+ void ModifyOrder(double pp=-1, double sl=0, double tp=0, color cl=CLR_NONE) { bool fm; double op, pa, pb, os, ot; int dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it; if (pp<=0) pp=OrderOpenPrice(); if (sl<0 ) sl=OrderStopLoss(); if (tp<0 ) tp=OrderTakeProfit(); pp=NormalizeDouble(pp, dg); sl=NormalizeDouble(sl, dg); tp=NormalizeDouble(tp, dg); op=NormalizeDouble(OrderOpenPrice() , dg); os=NormalizeDouble(OrderStopLoss() , dg); ot=NormalizeDouble(OrderTakeProfit(), dg); if (pp!=op || sl!=os || tp!=ot) { for (it=1; it<=NumberOfTry; it++) { if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break; while (!IsTradeAllowed()) Sleep(5000); RefreshRates(); fm=OrderModify(OrderTicket(), pp, sl, tp, 0, cl); if (fm) { if (UseSound) PlaySound(NameFileSound); break; } else { er=GetLastError(); pa=MarketInfo(OrderSymbol(), MODE_ASK); pb=MarketInfo(OrderSymbol(), MODE_BID); Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it); Print("Ask=",pa," Bid=",pb," sy=",OrderSymbol(), " op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp); Sleep(1000*10); } } } } Igor Kim 2008.03.25 08:59 #62 如何使用ModifyOrder()函数的例子。我决定举出以前被问过很多次的最开始的例子。这是在市场 订单执行 方面的开仓行为市场观察。它是指我们不能同时下达以市场价格开仓的订单,并将挂单附在上面。在Market Watch 上的这种开仓应该分两个阶段进行:首先,我们开一个头寸,然后给它附加一个挂单,即我们设置StopLoss 和TakeProfit 价格水平。1.买入当前符号的0.1手并设定30点的止损。int ti=OpenPosition(NULL, OP_BUY, 0.1); if (OrderSelect(ti, SELECT_BY_TICKET)) ModifyOrder(-1, Ask-30*Point, -1, clModifyBuy);2.卖出当前工具的0.15手,设置SL=45,TP=99int ti=OpenPosition(NULL, OP_SELL, 0.15); if (OrderSelect(ti, SELECT_BY_TICKET)) ModifyOrder(-1, Bid+45*Point, Bid-99*Point, clModifySell); 预告片中包括一个带有实例的工作脚本。 附加的文件: test_modifyorder.mq4 13 kb lukyanov 2008.03.25 12:03 #63 伊戈尔,你是否有一个关闭订单的功能(包括只关闭和CloseBy)? Igor Kim 2008.03.25 15:26 #64 Lukyanov: 伊戈尔,你是否有关闭订单的功能(包括只关闭和关闭)? Close在那里,CloseBy不在。 lukyanov 2008.03.25 15:43 #65 按字母顺序关闭应该在ModifyOrder之前;-) Igor Kim 2008.03.25 16:15 #66 Lukyanov: 按字母顺序关闭应该在ModifyOrder之前;-) 是的,这是正确的...首先是打开,然后是修改,最后是关闭;-) kombat 2008.03.25 16:28 #67 有道理...;) 你是否认为就 "传输功能 "这一主题做一个小小的、单一的帖子,是厚颜无耻的行为? 到目前为止,对我来说,这是一个黑暗的逻辑-意识形态森林...... (不,不是的......)。 Igor Kim 2008.03.25 17:00 #68 kombat писал (а): 你是否认为就 "传输功能 "这一主题进行一点单帖教育是厚颜无耻的? 不,我不会。就我的职能而言,任何问题在任何时候都可以接受。我将尝试回答所有的问题... kombat 2008.03.25 17:11 #69 谢谢你... 当然也不着急......不着急。 市场不会离我们而去......:))) Igor Kim 2008.03.25 17:32 #70 kombat писал (а): 谢谢你... 当然也不着急......不着急。 市场不会离我们而去......:))) 我实际上是在期待你的问题。具体问题,直接指出你在使用我的功能方面需要澄清的问题。 1234567891011121314...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好吧,既然没有问题,我们继续......。
ModifyOrder()函数。
函数ModifyOrder 是为了改变一个预选订单的一个或多个价格水平。在这里,挂单被理解为限价 单或止损 单,以及市场买入 或卖出 单,即一个头寸。使用ModifyOrder 函数,你可以修改仓位的StopLoss 和TakeProfit 两个价格水平,而对于挂单,OpenPrice 的设置价格也可以改变。修改后的价格水平被作为参数传递给ModifyOrder 函数。如果任何一个参数为负数,相应的价格水平将不会被改变。
如何使用ModifyOrder()函数的例子。
我决定举出以前被问过很多次的最开始的例子。这是在市场 订单执行 方面的开仓行为市场观察。它是指我们不能同时下达以市场价格开仓的订单,并将挂单附在上面。在Market Watch 上的这种开仓应该分两个阶段进行:首先,我们开一个头寸,然后给它附加一个挂单,即我们设置StopLoss 和TakeProfit 价格水平。
1.买入当前符号的0.1手并设定30点的止损。
2.卖出当前工具的0.15手,设置SL=45,TP=99
预告片中包括一个带有实例的工作脚本。伊戈尔,你是否有关闭订单的功能(包括只关闭和关闭)?
按字母顺序关闭应该在ModifyOrder之前;-)
有道理...;)
你是否认为就 "传输功能 "这一主题做一个小小的、单一的帖子,是厚颜无耻的行为?
到目前为止,对我来说,这是一个黑暗的逻辑-意识形态森林......
(不,不是的......)。
你是否认为就 "传输功能 "这一主题进行一点单帖教育是厚颜无耻的?
谢谢你...
当然也不着急......不着急。
市场不会离我们而去......:)))
谢谢你...
当然也不着急......不着急。
市场不会离我们而去......:)))