初学者的问题 MQL5 MT5 MetaTrader 5 - 页 642 1...635636637638639640641642643644645646647648649...1503 新评论 Maxim Kuznetsov 2016.10.12 21:04 #6411 paylesss:谢谢!重新启动电脑有帮助!真可惜,我在这里坐了一上午))现在更相关的是终端的构建,最好能记住你做了什么,使 全局变量失效。如果有可能重复这种情况,那就太好了。 Vladislav Andruschenko 2016.10.13 06:09 #6412 Kirill Andreev:写了一个猫头鹰,但由于某些原因,尾随止损没有发挥作用......可能的原因是什么? 为了让它工作,你需要把它放在OnTick中 Kirill Andreev 2016.10.13 16:21 #6413 Vladislav Andruschenko: 必须把它放在OnTick中才能发挥作用。 谢谢,我会试一试的!!!。 mila.com 2016.10.13 19:43 #6414 你好。 请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个? int i; total = OrdersTotal(); for(i = 0; i < total; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } } Aleksey Vyazmikin 2016.10.13 22:40 #6415 mila.com:你好。 请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个? int i; total = OrdersTotal(); for(i = 0; i < total-1; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } } Artyom Trishkin 2016.10.14 04:22 #6416 -Aleks-: int i; total = OrdersTotal(); for(i = 0; i < total-1; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } }你确定你已经展示了一个可靠的方法来错过列表中的最后一个位置吗?如果你实事求是地进行交易,你不担心排序会突然变成依赖性吗?不过,IMHO,我们在这里需要两个周期--在第一个周期中,我们按开盘时间 寻找最新鲜的位置,在第二个周期中,我们修改所有的位置,除了在第一个周期中找到的票。 Alexey Viktorov 2016.10.14 05:46 #6417 mila.com:你好。 请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个? 我愿意这样做。/********************Script program start function********************/ void OnStart() { int i, t1, t2, clTicket, total = OrdersTotal(); datetime d1, d2; double v1, v2, clVolume; for(i = total-1; i > 0; i--) { if(OrderSelect(i, SELECT_BY_POS)) { t1 = OrderTicket(); d1 = OrderOpenTime(); v1 = OrderLots(); } else continue; if(OrderSelect(i-1, SELECT_BY_POS)) { t2 = OrderTicket(); d2 = OrderOpenTime(); v2 = OrderLots(); } else continue; clTicket = d1 > d2 ? t1 : t2; clVolume = d1 > d2 ? v1 : v2; if(!OrderClose(clTicket, clVolume, OrderClosePrice(), 100)) // закрывает независимо от типа ордера OP_BUY или OP_SELL Print("фигня кака-та"); } }/********************************************************************/ 我没有勾选它,我无法决定当我关闭下一个订单时,我的订单列表中是否会有一个 "缺口"。如果有人能够解释这种 "差距 "出现的可能性,我将不胜感激......为了保险起见,我们还插入了其他内容;如果有一个缺口,一个订单将被直接跳过。在我看来是这样。 [删除] 2016.10.14 05:56 #6418 Alexey Viktorov:我愿意这样做。不幸的是,这还没有经过测试,我无法弄清楚在下一个订单关闭后,订单列表中是否有一个 "洞"。如果有人能够解释这种 "差距 "出现的可能性,我将不胜感激......作为一种保险,插入了另一个继续;如果有一个缺口,它将简单地跳过一个订单。在我看来是这样的。最初,这个问题是关于跳过 最后一个订单。而这正是你的起点。你必须这样做。for(int i = total-2; i >= 0; i--)那么删除后就不会有空隙,最近的订单会被跳过。 Alexey Viktorov 2016.10.14 06:25 #6419 Alexey Kozitsyn:原来的问题是跳过 最后一个订单。这是你开始的地方。你必须这样做。那么删除后就不会有跳过,最近的订单会被跳过。不是名单上的最后一位,但按时间来说是 "最年轻 "的一位。虽然我也是一样不顾一切。问题是关于修改的,我正在写接近...而如果你简单地修改它,订单列表中就不会有漏洞......你只是可能需要添加变量并为 它们赋值,而且必须检查参数以避免错误#1。好吧,米拉可以自己处理。 Artyom Trishkin 2016.10.14 06:30 #6420 Alexey Kozitsyn:原来的问题是跳过 最后一个订单。这是你开始的地方。你必须这样做。for(int i = total-2; i >= 0; i--)那么删除后就不会有跳转,最近的订单会被跳过。你怎么能确定 不会出现排序依赖,而错过错误的顺序呢?再次,为了可靠地 准确找到最后一个订单,必须通过 其 开盘时间 来识别,而不是通过其在列表中的位置。 1...635636637638639640641642643644645646647648649...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢!重新启动电脑有帮助!真可惜,我在这里坐了一上午))
现在更相关的是终端的构建,最好能记住你做了什么,使 全局变量失效。如果有可能重复这种情况,那就太好了。
写了一个猫头鹰,但由于某些原因,尾随止损没有发挥作用......可能的原因是什么?
必须把它放在OnTick中才能发挥作用。
你好。
请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个?
int i; total = OrdersTotal(); for(i = 0; i < total; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } }
你好。
请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个?
int i; total = OrdersTotal(); for(i = 0; i < total-1; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } }
int i; total = OrdersTotal(); for(i = 0; i < total-1; i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderLots() == _Lots) { if (OrderType()==OP_BUY) { if (OrderOpenPrice()!=OrderStopLoss()) { ModifyOrder(-1,OrderOpenPrice() , -1); } } } }
你确定你已经展示了一个可靠的方法来错过列表中的最后一个位置吗?
如果你实事求是地进行交易,你不担心排序会突然变成依赖性吗?
不过,IMHO,我们在这里需要两个周期--在第一个周期中,我们按开盘时间 寻找最新鲜的位置,在第二个周期中,我们修改所有的位置,除了在第一个周期中找到的票。
你好。
请帮助,我想修改所有的位置,除了最后一个,即 "最年轻 "的位置。我在哪里加或减一个?
我愿意这样做。
我没有勾选它,我无法决定当我关闭下一个订单时,我的订单列表中是否会有一个 "缺口"。
如果有人能够解释这种 "差距 "出现的可能性,我将不胜感激......
为了保险起见,我们还插入了其他内容;如果有一个缺口,一个订单将被直接跳过。在我看来是这样。
我愿意这样做。
不幸的是,这还没有经过测试,我无法弄清楚在下一个订单关闭后,订单列表中是否有一个 "洞"。
如果有人能够解释这种 "差距 "出现的可能性,我将不胜感激......
作为一种保险,插入了另一个继续;如果有一个缺口,它将简单地跳过一个订单。在我看来是这样的。
最初,这个问题是关于跳过 最后一个订单。而这正是你的起点。
你必须这样做。
那么删除后就不会有空隙,最近的订单会被跳过。
原来的问题是跳过 最后一个订单。这是你开始的地方。
你必须这样做。
那么删除后就不会有跳过,最近的订单会被跳过。
不是名单上的最后一位,但按时间来说是 "最年轻 "的一位。
虽然我也是一样不顾一切。问题是关于修改的,我正在写接近...而如果你简单地修改它,订单列表中就不会有漏洞......你只是可能需要添加变量并为 它们赋值,而且必须检查参数以避免错误#1。好吧,米拉可以自己处理。
原来的问题是跳过 最后一个订单。这是你开始的地方。
你必须这样做。
那么删除后就不会有跳转,最近的订单会被跳过。
你怎么能确定 不会出现排序依赖,而错过错误的顺序呢?
再次,为了可靠地 准确找到最后一个订单,必须通过 其 开盘时间 来识别,而不是通过其在列表中的位置。