伟大而可怕的MT4永远(或如何制定过渡策略) - 页 19 1...121314151617181920212223242526...31 新评论 Alexey Viktorov 2021.05.09 09:28 #181 fxsaber:MT4和MT5的术语是一样的。这么多年来,大家都知道背水一战,来到...睡眠。因为它非常复杂。论坛上提出的很多交易API的功能,开发者并不清楚,或者没有发表意见。没有人批评MT5。我已经通过实例向你展示了在解决基本任务时出现的一些问题。 为什么它们是一样的?你仍然没有回答我的问题。 关于交易、自动交易系统和交易策略测试的论坛 伟大而可怕的MT4永恒(或如何有效地确定迁移策略) Alexey Viktorov, 2021.05.09 09:15 ......如果我从另一台电脑连接到我的账户并下了几笔订单......MQL4会开什么? 没有人批评MT5。我用实例展示了解决初级问题的一些问题。 你只需要正确处理OrderSend()函数的结果,你不能脱离mql4的简单性。你有你自己的目标,捕捉微秒,而不是交易......一个DT有问题,你把这些问题当作MT的错误。在MQ账户上显示仓位逆转,然后开发者就会注意到它。我在Robo的演示上运行了你的代码,看不到任何回溯。 你的一些错误报告确实值得尊重,但有些......对不起,这样的胡言乱语,我无言以对。 这就是全部......胜利日快乐。和平。劳动。5月。 fxsaber 2021.05.09 10:17 #182 Alexey Viktorov:为什么它们是一样的?你仍然没有回答这个问题。 再一次,MT4/5的条件是一样的。在脚本执行结束时,你需要在一个空账户中拥有100个未结头寸。允许在脚本运行期间关闭任何终端的一些位置。这种 "干预 "是必要的,只是为了避免愚蠢的决定。 for (int i = 0; i < 100; i += OrderSend(Request, Result)) ; OrderSend()函数的结果必须被正确处理,但你不能脱离mql4的简单性。你有你自己的目标,捕捉微秒,而不是交易......一个DTZ有问题,你把这些问题当作MT的错误。在MQ账户上显示仓位逆转,然后开发者就会注意到它。我在Robo的演示上运行了你的代码,看不到任何回溯。 你的一些错误报告确实值得尊重,但有些......对不起,这样的胡言乱语,它缺乏得体的言语。 你没有注意到问题并不意味着没有任何问题。就调试而言,MQ演示是一个令人厌恶的地方。有一种执行类型,OrderSend只在开仓时对市场订单返回true。实际上,在ECN账户上没有这样的情况。真实--接受市场订单。接下来会发生什么是需要监测的。只有厨房DC使用不同的(如MQ-Demo)执行方案。 这就是全部......胜利日快乐。和平。劳动。5月。 同样,也是如此。 Igor Makanu 2021.05.09 11:36 #183 fxsaber:我需要在MT5上写一个脚本,在一个空账户上开100个头寸。在MT4上是这样解决的。void OnStart() { while (OrdersTotal() < 100) OrderSend(_Symbol, OP_BUY, 0.1, Ask, 0, 0, 0); Print(OrdersTotal()); }谁有关于MT5的解决方案? 我收到了我在MT5上写过的最短的代码。 MqlTradeRequest BuyRequest = {0}; //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { static bool run = false; if(run) return; BuyRequest.action = TRADE_ACTION_DEAL; BuyRequest.type = ORDER_TYPE_BUY; BuyRequest.symbol = _Symbol; BuyRequest.volume = 0.1; BuyRequest.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); BuyRequest.type_filling = GetFilling(); MqlTradeResult result; run = OrderSend(BuyRequest, result); } //+------------------------------------------------------------------+ //| Trade function | //+------------------------------------------------------------------+ void OnTrade() { MqlTradeResult result; while(PositionsTotal() < 10 && SymbolInfoDouble(_Symbol, SYMBOL_ASK, BuyRequest.price) && OrderSend(BuyRequest, result)) {} } //+------------------------------------------------------------------+ ENUM_ORDER_TYPE_FILLING GetFilling(const uint Type = ORDER_FILLING_FOK) { const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE); const int FillingMode = (int)::SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE); return((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN) || ((FillingMode & (Type + 1)) != Type + 1)) ? (((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ? ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) : (ENUM_ORDER_TYPE_FILLING)Type); } //+------------------------------------------------------------------+ 没有GetFilling()--在加密货币上不起作用(() 但是,即使有了这个代码,也有11个职位开放。 fxsaber 2021.05.09 13:15 #184 Igor Makanu:这是我在MT5上能写的最短的代码。 为了简洁起见,我可以做SB。 但即使在这个代码中,我也有11个职位空缺。 因为代码中的逻辑是这样的。 Igor Makanu 2021.05.09 14:02 #185 fxsaber:为了简洁起见,你可以使用SB因为代码中的逻辑是这样的。 即使像这样,用PositionsTotal()也不能解决这个问题。 void OnTrade() { if(PositionsTotal() >= 10) return; MqlTradeResult result; BuyRequest.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); OrderSend(BuyRequest, result); } 当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开 解决这个问题的唯一方法是,从MqlTradeResult结果中记住票据订单,并等待未平仓头寸的出现;然后,指定数量的头寸 将被打开。 Alexey Viktorov 2021.05.09 14:17 #186 Igor Makanu:PositionsTotal()即使这样也无法解决。当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开没有太多的选择,只能从MqlTradeResult的结果中记住票据订单,并等待开仓的出现。 然后,指定数量的头寸 将肯定会被打开。 所以就等着吧!!!。因为mql4在等待,而你并不反感它。而在MQL5中,你已经决定,你可以直接发送一个请求,并假定它必须被执行............。 fxsaber 2021.05.09 14:50 #187 Igor Makanu:PositionsTotal()即使这样也无法解决。当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开除了从MqlTradeResult结果中记住票据订单并等待开仓之外,没有什么可做的;那么指定数量的仓位 将被确定打开。 请注意,这不是一个脚本/服务,而是一个EA。但是,即使有了EA,要解决这样一个简单的两行任务也要花费很多精力。 fxsaber 2021.05.09 14:51 #188 Alexey Viktorov:毕竟,mql4在等待,而你并不反感它。而在MQL5中,你已经决定,你可以直接发送一个请求,并假定它必须被执行............。 有几个人在这里说过,没有什么困难。然而,他们并没有提供一个解决方案。 Alexey Viktorov 2021.05.09 16:07 #189 fxsaber:有几个人在这里表示,没有什么困难。然而,他们并没有提供一个解决方案。 我也不会提供一个,原因很简单。我不想教......编码员(不是你),但如果有必要,我会不假思索地解决这个问题。而所有的原因都是一样的,在很长一段时间里,代码一直出现在CodeBase中,完全来自Tumblr。所有其他的人都沉默不语... Andrey Khatimlianskii 2021.05.09 16:18 #190 Alexey Viktorov:我也不会提供,原因很简单。我不想教......编码员(这与你无关),但如果有必要,我将不假思索地解决问题。所有的原因都是一样的,长期以来,代码完全来自于Tumblr的CodeBase。其余的人都沉默不语... 用舌头说话不像用麻袋说话。你应该教我。我,请。 有一个问题,而且不仅仅是在这个经纪人那里。 问题不在于等待特定订单的执行(那是另一个问题),而在于当订单被执行 时,它暂时从所有的列表(开仓、平仓、交易、头寸)中消失了。 当然,我们可以使用另一个拐杖。但我们希望找到一个人性化的解决方案。而这正是fxsaber公开工作的内容,听着路过的祝福者的叫声。 1...121314151617181920212223242526...31 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MT4和MT5的术语是一样的。
这么多年来,大家都知道背水一战,来到...睡眠。因为它非常复杂。论坛上提出的很多交易API的功能,开发者并不清楚,或者没有发表意见。
没有人批评MT5。我已经通过实例向你展示了在解决基本任务时出现的一些问题。
为什么它们是一样的?你仍然没有回答我的问题。
关于交易、自动交易系统和交易策略测试的论坛
伟大而可怕的MT4永恒(或如何有效地确定迁移策略)
Alexey Viktorov, 2021.05.09 09:15
......如果我从另一台电脑连接到我的账户并下了几笔订单......MQL4会开什么?
你只需要正确处理OrderSend()函数的结果,你不能脱离mql4的简单性。你有你自己的目标,捕捉微秒,而不是交易......一个DT有问题,你把这些问题当作MT的错误。在MQ账户上显示仓位逆转,然后开发者就会注意到它。我在Robo的演示上运行了你的代码,看不到任何回溯。
你的一些错误报告确实值得尊重,但有些......对不起,这样的胡言乱语,我无言以对。
这就是全部......胜利日快乐。和平。劳动。5月。
为什么它们是一样的?你仍然没有回答这个问题。
再一次,MT4/5的条件是一样的。在脚本执行结束时,你需要在一个空账户中拥有100个未结头寸。允许在脚本运行期间关闭任何终端的一些位置。这种 "干预 "是必要的,只是为了避免愚蠢的决定。
OrderSend()函数的结果必须被正确处理,但你不能脱离mql4的简单性。你有你自己的目标,捕捉微秒,而不是交易......一个DTZ有问题,你把这些问题当作MT的错误。在MQ账户上显示仓位逆转,然后开发者就会注意到它。我在Robo的演示上运行了你的代码,看不到任何回溯。
你的一些错误报告确实值得尊重,但有些......对不起,这样的胡言乱语,它缺乏得体的言语。
你没有注意到问题并不意味着没有任何问题。就调试而言,MQ演示是一个令人厌恶的地方。有一种执行类型,OrderSend只在开仓时对市场订单返回true。实际上,在ECN账户上没有这样的情况。真实--接受市场订单。接下来会发生什么是需要监测的。只有厨房DC使用不同的(如MQ-Demo)执行方案。
这就是全部......胜利日快乐。和平。劳动。5月。
同样,也是如此。
我需要在MT5上写一个脚本,在一个空账户上开100个头寸。
在MT4上是这样解决的。
谁有关于MT5的解决方案?
我收到了我在MT5上写过的最短的代码。
没有GetFilling()--在加密货币上不起作用(()
但是,即使有了这个代码,也有11个职位开放。
这是我在MT5上能写的最短的代码。
为了简洁起见,我可以做SB。
但即使在这个代码中,我也有11个职位空缺。
因为代码中的逻辑是这样的。
为了简洁起见,你可以使用SB
因为代码中的逻辑是这样的。
即使像这样,用PositionsTotal()也不能解决这个问题。
当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开
解决这个问题的唯一方法是,从MqlTradeResult结果中记住票据订单,并等待未平仓头寸的出现;然后,指定数量的头寸 将被打开。
PositionsTotal()即使这样也无法解决。
当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开
没有太多的选择,只能从MqlTradeResult的结果中记住票据订单,并等待开仓的出现。 然后,指定数量的头寸 将肯定会被打开。
所以就等着吧!!!。因为mql4在等待,而你并不反感它。而在MQL5中,你已经决定,你可以直接发送一个请求,并假定它必须被执行............。
PositionsTotal()即使这样也无法解决。
当有10个位置时,它就会打开,当有甚至13个位置时,它就会打开
除了从MqlTradeResult结果中记住票据订单并等待开仓之外,没有什么可做的;那么指定数量的仓位 将被确定打开。
请注意,这不是一个脚本/服务,而是一个EA。但是,即使有了EA,要解决这样一个简单的两行任务也要花费很多精力。
毕竟,mql4在等待,而你并不反感它。而在MQL5中,你已经决定,你可以直接发送一个请求,并假定它必须被执行............。
有几个人在这里说过,没有什么困难。然而,他们并没有提供一个解决方案。
有几个人在这里表示,没有什么困难。然而,他们并没有提供一个解决方案。
我也不会提供一个,原因很简单。我不想教......编码员(不是你),但如果有必要,我会不假思索地解决这个问题。而所有的原因都是一样的,在很长一段时间里,代码一直出现在CodeBase中,完全来自Tumblr。所有其他的人都沉默不语...
我也不会提供,原因很简单。我不想教......编码员(这与你无关),但如果有必要,我将不假思索地解决问题。所有的原因都是一样的,长期以来,代码完全来自于Tumblr的CodeBase。其余的人都沉默不语...
用舌头说话不像用麻袋说话。你应该教我。我,请。
有一个问题,而且不仅仅是在这个经纪人那里。
问题不在于等待特定订单的执行(那是另一个问题),而在于当订单被执行 时,它暂时从所有的列表(开仓、平仓、交易、头寸)中消失了。
当然,我们可以使用另一个拐杖。但我们希望找到一个人性化的解决方案。而这正是fxsaber公开工作的内容,听着路过的祝福者的叫声。