KimIV的有用功能 - 页 10 1...34567891011121314151617...128 新评论 [删除] 2008.04.03 18:41 #91 谢谢你,KimIV! Igor Kim 2008.04.04 05:44 #92 DeleteOrders()函数。测试者版本。 函数DeleteOrders()旨在删除挂单BuyLimit, BuyStop, SellLimit 和 SellStop。DeleteOrders()函数是通用的,也就是说,它可以用来删除所有已经下达的挂单,以及符合使用函数参数设置的选择条件的特定订单。 sy- 仪器名称。由于只有当前的符号可以在测试器中进行交易,这个参数与测试器版本无关,只是为了与本功能的在线版本兼容而需要。在测试器中最好使用""或NULL的值。默认值""表示任何符号。op- 交易操作的类型,挂单的类型。五个值中有一个是可能的。-1,OP_BUYLIMIT,OP_BUYSTOP,OP_SELLLIMIT或OP_SELLSTOP。默认值-1表示任何订单。mn- MagicNumber,待定订单的识别号码。默认值-1-意味着任何魔力。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 13.06.2007 | //| Описание : Удаление ордеров. Версия функции для тестов на истории. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL - текущий символ) | //| op - операция ( -1 - любой ордер) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ void DeleteOrders(string sy="", int op=-1, int mn=-1) { int i, k=OrdersTotal(), ot; if (sy=="" || sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ot=OrderType(); if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) { if (OrderSymbol()==sy && (op<0 || ot==op)) { if (mn<0 || OrderMagicNumber()==mn) { OrderDelete(OrderTicket(), clDelete); } } } } } } Igor Kim 2008.04.04 08:24 #93 DeleteOrders()函数。在线版本。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 28.11.2006 | //| Описание : Удаление ордеров | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ( "" - любой символ, | //| NULL - текущий символ) | //| op - операция ( -1 - любой ордер) | //| mn - MagicNumber ( -1 - любой магик) | //+----------------------------------------------------------------------------+ void DeleteOrders(string sy="", int op=-1, int mn=-1) { bool fd; int err, i, it, k=OrdersTotal(), ot; if (sy=="0") sy=Symbol(); for (i=k-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ot=OrderType(); if (ot>1 && ot<6) { if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) { if (mn<0 || OrderMagicNumber()==mn) { for (it=1; it<=NumberOfTry; it++) { if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break; while (!IsTradeAllowed()) Sleep(5000); fd=OrderDelete(OrderTicket(), clDelete); if (fd) { if (UseSound) PlaySound(NameFileSound); break; } else { err=GetLastError(); Print("Error(",err,") delete order ",GetNameOP(ot), ": ",ErrorDescription(err),", try ",it); Sleep(1000*5); } } } } } } } } Igor Kim 2008.04.06 11:49 #94 如何使用DeleteOrders()函数的例子。 1.删除所有订单。 DeleteOrders(); 2.删除所有买入止损单。DeleteOrders(NULL, OP_BUYSTOP); 3.删除所有带有魔法123456的订单。 DeleteOrders(NULL, -1, 123456); ZY.在预告片中是一个有相同例子的工作脚本。 附加的文件: test_deleteorders.mq4 14 kb Victor Nikolaev 2008.04.06 12:00 #95 KimIV: 如何使用DeleteOrders()函数的例子。 按照这种速度,我们永远也到不了图书馆。我终究还是要去图书馆的。如果你邀请我。没有邀请,我是不会去的。 Igor Kim 2008.04.06 12:07 #96 每个人都有向左转的权利...嘻...我将对这个问题进行一番探讨Ilnar 在 "待定分形订单"的话题中问道,如何在分形上做待定订单? 我猜伊尔纳在分形价格水平方面遇到了一些困难。这就是为什么我建议使用我的函数。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Поиск ближайшего фрактала. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| mode - тип фрактала (MODE_LOWER|MODE_UPPER) | //+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)); } Print("FindNearFractal(): Фрактал не найден"); return(0); } 函数FindNearFractal()在给定的时间范围内,在指定的符号上搜索指定类型的最近的分形,并返回其价格水平。知道了分形位置的价格水平,就已经很容易在这个水平上设置一个订单。 Alexei Kharchenko 2008.04.06 12:45 #97 KimIV: int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; 问题...d 与0有什么关系?? Igor Kim 2008.04.06 12:57 #98 kharko: KimIV: int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; 问题...d 与0有什么关系?? 我不知道...在我的实践中,有一个案例是d=0。我不得不进行检查,使其等于零。从那时起,我就把这段代码拖到了我能去的任何地方。也许这是不必要的,但我认为太多总比太少好。 Igor Kim 2008.04.06 13:14 #99 Vinin: KimIV: DeleteOrders()的使用实例。 照这样下去,我们永远也到不了图书馆了。我们终究还是得去图书馆。如果你邀请我。没有邀请,我是不会去的。 维特克,有什么问题吗?当然,很快就会来挖花园了......你可以帮助... Victor Nikolaev 2008.04.06 13:18 #100 KimIV: 维宁。 KimIV: DeleteOrders()的使用实例。 照这样下去,我们永远也到不了图书馆了。我们终究还是得去图书馆。如果你邀请我。没有邀请,我是不会去的。 维特克,有什么问题吗?当然,很快就会来挖花园了......你可以帮助... 花园没有问题,虽然我的年龄不合适。也许我们可以找一个年轻的人来做这个工作。我们去浴场,吃点克瓦斯(你是过敏体质,我以前也是)。我们将看到年轻人如何工作。这不会是严重的。 1...34567891011121314151617...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你,KimIV!
DeleteOrders()函数。测试者版本。
函数DeleteOrders()旨在删除挂单BuyLimit, BuyStop, SellLimit 和 SellStop。DeleteOrders()函数是通用的,也就是说,它可以用来删除所有已经下达的挂单,以及符合使用函数参数设置的选择条件的特定订单。
sy- 仪器名称。由于只有当前的符号可以在测试器中进行交易,这个参数与测试器版本无关,只是为了与本功能的在线版本兼容而需要。在测试器中最好使用""或NULL的值。默认值""表示任何符号。
op- 交易操作的类型,挂单的类型。五个值中有一个是可能的。-1,OP_BUYLIMIT,OP_BUYSTOP,OP_SELLLIMIT或OP_SELLSTOP。默认值-1表示任何订单。
mn- MagicNumber,待定订单的识别号码。默认值-1-意味着任何魔力。
DeleteOrders()函数。在线版本。
如何使用DeleteOrders()函数的例子。
1.删除所有订单。
2.删除所有买入止损单。3.删除所有带有魔法123456的订单。
ZY.在预告片中是一个有相同例子的工作脚本。
如何使用DeleteOrders()函数的例子。
Ilnar 在 "待定分形订单"的话题中问道,如何在分形上做待定订单?
我猜伊尔纳在分形价格水平方面遇到了一些困难。这就是为什么我建议使用我的函数。
函数FindNearFractal()在给定的时间范围内,在指定的符号上搜索指定类型的最近的分形,并返回其价格水平。知道了分形位置的价格水平,就已经很容易在这个水平上设置一个订单。
DeleteOrders()的使用实例。
维特克,有什么问题吗?当然,很快就会来挖花园了......你可以帮助...
DeleteOrders()的使用实例。
维特克,有什么问题吗?当然,很快就会来挖花园了......你可以帮助...