初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1413 1...140614071408140914101411141214131414141514161417141814191420...1503 新评论 gyperion 2022.07.12 04:23 #14121 您好。请帮我解决 mt5 中的一个问题。 2016 年以后的货币对历史报价无法加载。经纪商 - Gerchik。 已尝试: 1 - 通过策略测试器下载历史记录。 2 - 通过工具终端。它愚蠢地只显示截至 2016 年的历史。 3 - 从 mt5 服务器的正常加载对中复制历史记录。没有用,重启程序后会删除这些文件,历史记录也只显示到 2016 年。 4 - 经纪人的技术支持说运行没有字母 Z 结尾的货币对,但他们有所有以 Z 结尾的货币对 - EURUSDz、AUDCADz。 我猜问题出在经纪商和他们的服务器上,但为什么它会删除复制的历史记录呢?有人能告诉我如何正常上传历史记录吗? Aleksey Vyazmikin 2022.07.12 09:31 #14122 gyperion #:您好。请帮我解决 mt5 中的一个问题。 2016 年之后的货币对历史报价无法加载。经纪商 - Gerchik。已尝试: 1 - 通过策略测试器下载历史记录。 2 - 通过工具终端。它愚蠢地只显示了截至 2016 年的历史。3 - 从 mt5 服务器的正常加载对中复制历史记录。没有用,重启程序后会删除这些文件,而且历史记录也只显示到 2016 年。4 - 经纪人的技术支持说运行没有字母 Z 结尾的货币对,但他们有所有以 Z 结尾的货币对 - EURUSDz, AUDCADz。我猜问题出在经纪商和他们的服务器上,但为什么它甚至删除了复制的历史记录?有人能告诉我如何正常上传历史记录吗? 所以,也许他们没有历史记录,因为他们自己不是一个非常老的厨房? gyperion 2022.07.13 04:26 #14123 Aleksey Vyazmikin #:也许它们没有历史,因为它们本身就不是一个非常古老的厨房? 俄罗斯有哪些非传统厨房?这其实并不重要。问题是,即使没有历史,如何上传? Alexey Viktorov 2022.07.13 06:03 #14124 gyperion #: 俄罗斯有什么不可以做的?这并不重要。问题是,即使他们 没有故事,你如何下载故事? 即使你没有钱,你能借给我吗? Nauris Zukas 2022.07.13 06:32 #14125 gyperion #: 俄罗斯有什么不可以做的?这并不重要。问题是如何上传历史,即使他们没有历史? 通过自定义字符创建您的历史。 Importing High Quality Tick Data to MetaTrader 5 2021.11.28www.mql5.com In order to vet a potential trading strategy, it is imperative to ensure that the results obtained f r om optimizations and strategy tests are a true reflection of the performance of your EA gyperion 2022.07.13 08:58 #14126 Nauris Zukas #:通过自定义角色来创造你的故事。 嗯,部分成功了,但重要的是成功了。我会继续努力的。谢谢您的帮助,先生,我已经试过所有方法了。 [删除] 2022.07.18 12:02 #14127 大家好,我想写我的第一个交易机器人(Expert Advisor)。它在回溯测试中运行完美,测试结果也很可观。但是有很多事情需要考虑:账户类型、符号属性、与其他 EA 的干扰等。 我为此设置了四个变量: bool isHedging; bool isFIFO; ulong positionTicket; double positionVolume; 前两个变量在 init 方法中设置: if ((bool)AccountInfoInteger(ACCOUNT_HEDGE_ALLOWED)) isHedging = true; else isHedging = false; if ((bool)AccountInfoInteger(ACCOUNT_FIFO_CLOSE)) isFIFO = true; else isFIFO = false; 如果我想开立 头寸,我会首先检查这是否会导致先进先出(FIFO)问题(即,如果我想开立多头头寸,我会检查是否已经有相同交易量的多头头寸或相应符号的空头头寸,否则止损(StopLoss)和止盈(TakeProfit)可能无法正常工作,这是我听说的)。最后,我使用 OrderSend 方法并设置是否成功: positionVolume = tradeResult.volume; positionTicket = tradeResult.deal; 在执行 StopLoss 或 TakeProfit 后,我通过 OnTradeTransaction 方法检查 positionTicket 变量是否与 transaction.position 匹配,以确认我(内部)的 EA 仓位是否已关闭。 如果我想关闭净额结算账户头寸,我只需关闭多头头寸和相同交易量的空头交易。 如果要关闭对冲账户头寸,则使用 trade.PositionClose(positionTicket, slippage) 关闭头寸; 如果我想关闭一个先进先出对冲账户头寸,我会关闭与头寸方向(多头/空头)和交易量相匹配的相应符号的最旧头寸,根据上述先进先出账户的进入条件,这应该是我自己的头寸。 现在我确信我忽略了一些基本问题。我如何确保在上述关闭(内部)EA 仓位时,净额结算账户上的 StopLoss 和 TakeProfit 也被关闭?是否有更优雅、更有效的方法使 EA 符合 FIFO?在非FIFO对冲账户中,如果我只在EA中用MarketOrder开仓,不对其进行编辑,然后想平仓,那么tradeResule.deal值是否始终保持不变,这样我也可以用trade.PositionClose(positionTicket, slippage)平仓而不用担心,其中positionTicket是保存的tradeResult.deal值? 几天来我一直在寻找答案,但还没有找到可以解决我所有问题的答案。希望有人能帮我。 轻松快捷开发 MetaTrader 程序的函数库(第 二十一部分):交易类 轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件 Carl Schreiber 2022.07.18 14:24 #14128 Benjamin Fotteler #:现在我确信我忽略了一些基本问题。我如何确保在如上所述关闭(内部)EA 头寸时,净额结算账户上的 StopLoss 和 TakeProfit 也被关闭?是否有更优雅、更有效的方法使 EA 符合 FIFO?对于非FIFO对冲账户,如果我只在EA中用MarketOrder开仓,不对其进行编辑,然后想平仓,那么tradeResule.deal值是否始终保持不变,这样我也可以放心地用trade.PositionClose(positionTicket, slippage)平仓,其中positionTicket是保存的tradeResult.deal值?几天来我一直在寻找答案,但还没有找到可以解决我所有问题的答案。希望有人能帮我。 在净额结算账户中,每个符号只有一个仓位。如果 EA 只交易一个符号,这可以在 PositionTotal() 中读取 - 或者更简单,PositionSelect() 要么是错误的(=none),要么也被选中继续交易。 Documentation on MQL5: Trade Functions / PositionSelect www.mql5.com PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5 [删除] 2022.07.18 16:51 #14129 没错。感谢您的提示。但我该怎么做呢?例如,如果另一个 EA 在同一符号 上运行,开仓 0.5 手,止损 100 点,我的 EA 开仓 "EA 内部仓位 "0.5 手,止损 150 点,即把现有仓位增加到 1 手,然后我关闭 "EA 内部仓位",即把现有仓位减少到 0.5 手。剩下的 0.5 手止损是 100 点还是 150 点?在这种情况下,是否无法在净额结算模式下通过 SendRequest 为 "我的 "0.5 手设置独立止损? 我的意思是,我不想简单地改变其他 EA 精心设计的止损,但也不想简单地放弃自己的止损。除了在没有敞口头寸的情况下以净额结算模式开立 "EA 内部头寸 "外,还有其他有效的办法解决我的 "问题 "吗? Carl Schreiber 2022.07.18 17:09 #14130 Benjamin Fotteler 符号 上运行,开仓 0.5 手,止损 100 点,我的 EA 开仓 "EA 内部仓位 "0.5 手,止损 150 点,即把现有仓位增加到 1 手,然后我关闭 "EA 内部仓位",即把现有仓位减少到 0.5 手。剩下的 0.5 手止损是 100 点还是 150 点?在这种情况下,是否无法在净额结算模式下通过 SendRequest 为 "我的 "0.5 手设置独立止损? 我的意思是,我不想简单地改变其他 EA 精心设计的止损,但我也不想简单地放弃自己的止损。除了只在没有未结头寸的情况下以净额结算模式开立 "EA 内部头寸 "外,还有其他有效的办法解决我的 "问题 "吗? 如果在一个净额结算账户(!)中,第一个 EA(例如欧元兑美元)买入 0.01 手(买入),第二个 EA 卖出 0.05 手(卖出),那么现在账户上只有一个 0.04 手的卖出头寸。票据号码暂时与此无关。如果欧元兑美元唯一仓位的第二个订单设置了新的 SL 和 TP,则第一个订单的 SL 和 TP 将被覆盖。 如果指定,只有一个仓位有一个 SL 和一个 TP。 1...140614071408140914101411141214131414141514161417141814191420...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
您好。请帮我解决 mt5 中的一个问题。
2016 年以后的货币对历史报价无法加载。经纪商 - Gerchik。
已尝试:
1 - 通过策略测试器下载历史记录。
2 - 通过工具终端。它愚蠢地只显示截至 2016 年的历史。
3 - 从 mt5 服务器的正常加载对中复制历史记录。没有用,重启程序后会删除这些文件,历史记录也只显示到 2016 年。
4 - 经纪人的技术支持说运行没有字母 Z 结尾的货币对,但他们有所有以 Z 结尾的货币对 - EURUSDz、AUDCADz。
我猜问题出在经纪商和他们的服务器上,但为什么它会删除复制的历史记录呢?有人能告诉我如何正常上传历史记录吗?
您好。请帮我解决 mt5 中的一个问题。
2016 年之后的货币对历史报价无法加载。经纪商 - Gerchik。
已尝试:
1 - 通过策略测试器下载历史记录。
2 - 通过工具终端。它愚蠢地只显示了截至 2016 年的历史。
3 - 从 mt5 服务器的正常加载对中复制历史记录。没有用,重启程序后会删除这些文件,而且历史记录也只显示到 2016 年。
4 - 经纪人的技术支持说运行没有字母 Z 结尾的货币对,但他们有所有以 Z 结尾的货币对 - EURUSDz, AUDCADz。
我猜问题出在经纪商和他们的服务器上,但为什么它甚至删除了复制的历史记录?有人能告诉我如何正常上传历史记录吗?
所以,也许他们没有历史记录,因为他们自己不是一个非常老的厨房?
也许它们没有历史,因为它们本身就不是一个非常古老的厨房?
俄罗斯有什么不可以做的?这并不重要。问题是,即使他们 没有故事,你如何下载故事?
即使你没有钱,你能借给我吗?
俄罗斯有什么不可以做的?这并不重要。问题是如何上传历史,即使他们没有历史?
通过自定义字符创建您的历史。
通过自定义角色来创造你的故事。
大家好,我想写我的第一个交易机器人(Expert Advisor)。它在回溯测试中运行完美,测试结果也很可观。但是有很多事情需要考虑:账户类型、符号属性、与其他 EA 的干扰等。
我为此设置了四个变量:
前两个变量在 init 方法中设置:
如果我想开立 头寸,我会首先检查这是否会导致先进先出(FIFO)问题(即,如果我想开立多头头寸,我会检查是否已经有相同交易量的多头头寸或相应符号的空头头寸,否则止损(StopLoss)和止盈(TakeProfit)可能无法正常工作,这是我听说的)。最后,我使用 OrderSend 方法并设置是否成功:
在执行 StopLoss 或 TakeProfit 后,我通过 OnTradeTransaction 方法检查 positionTicket 变量是否与 transaction.position 匹配,以确认我(内部)的 EA 仓位是否已关闭。
如果我想关闭净额结算账户头寸,我只需关闭多头头寸和相同交易量的空头交易。
如果要关闭对冲账户头寸,则使用 trade.PositionClose(positionTicket, slippage) 关闭头寸;
如果我想关闭一个先进先出对冲账户头寸,我会关闭与头寸方向(多头/空头)和交易量相匹配的相应符号的最旧头寸,根据上述先进先出账户的进入条件,这应该是我自己的头寸。
现在我确信我忽略了一些基本问题。我如何确保在上述关闭(内部)EA 仓位时,净额结算账户上的 StopLoss 和 TakeProfit 也被关闭?是否有更优雅、更有效的方法使 EA 符合 FIFO?在非FIFO对冲账户中,如果我只在EA中用MarketOrder开仓,不对其进行编辑,然后想平仓,那么tradeResule.deal值是否始终保持不变,这样我也可以用trade.PositionClose(positionTicket, slippage)平仓而不用担心,其中positionTicket是保存的tradeResult.deal值?
几天来我一直在寻找答案,但还没有找到可以解决我所有问题的答案。希望有人能帮我。
现在我确信我忽略了一些基本问题。我如何确保在如上所述关闭(内部)EA 头寸时,净额结算账户上的 StopLoss 和 TakeProfit 也被关闭?是否有更优雅、更有效的方法使 EA 符合 FIFO?对于非FIFO对冲账户,如果我只在EA中用MarketOrder开仓,不对其进行编辑,然后想平仓,那么tradeResule.deal值是否始终保持不变,这样我也可以放心地用trade.PositionClose(positionTicket, slippage)平仓,其中positionTicket是保存的tradeResult.deal值?
几天来我一直在寻找答案,但还没有找到可以解决我所有问题的答案。希望有人能帮我。
在净额结算账户中,每个符号只有一个仓位。如果 EA 只交易一个符号,这可以在 PositionTotal() 中读取 - 或者更简单,PositionSelect() 要么是错误的(=none),要么也被选中继续交易。
没错。感谢您的提示。但我该怎么做呢?例如,如果另一个 EA 在同一符号 上运行,开仓 0.5 手,止损 100 点,我的 EA 开仓 "EA 内部仓位 "0.5 手,止损 150 点,即把现有仓位增加到 1 手,然后我关闭 "EA 内部仓位",即把现有仓位减少到 0.5 手。剩下的 0.5 手止损是 100 点还是 150 点?在这种情况下,是否无法在净额结算模式下通过 SendRequest 为 "我的 "0.5 手设置独立止损?
我的意思是,我不想简单地改变其他 EA 精心设计的止损,但也不想简单地放弃自己的止损。除了在没有敞口头寸的情况下以净额结算模式开立 "EA 内部头寸 "外,还有其他有效的办法解决我的 "问题 "吗?
我的意思是,我不想简单地改变其他 EA 精心设计的止损,但我也不想简单地放弃自己的止损。除了只在没有未结头寸的情况下以净额结算模式开立 "EA 内部头寸 "外,还有其他有效的办法解决我的 "问题 "吗?
如果在一个净额结算账户(!)中,第一个 EA(例如欧元兑美元)买入 0.01 手(买入),第二个 EA 卖出 0.05 手(卖出),那么现在账户上只有一个 0.04 手的卖出头寸。票据号码暂时与此无关。如果欧元兑美元唯一仓位的第二个订单设置了新的 SL 和 TP,则第一个订单的 SL 和 TP 将被覆盖。
如果指定,只有一个仓位有一个 SL 和一个 TP。