新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1856 1...184918501851185218531854185518561857185818591860186118621863...1953 新评论 Порт-моне тв 2022.01.09 22:38 #18551 一句话的建议。我在一个问题上犯了难。 iOpen 如何算作卖出或买入? double DayOpenone = NormalizeDouble(iOpen(Symbol(), PERIOD_D1, 0), Digits); double DayOpentwo = NormalizeDouble(iOpen(Symbol(), PERIOD_D1, 1), Digits); 问题是,将今天的开盘价与昨天的开盘价相比较,似乎会造成价差错位,然后在代码中出现进一步的问题。 由于iOpen 的价格在某些日子里不正确,所以要么只有买入,要么只有卖出。 Artyom Trishkin 2022.01.10 05:56 #18552 Порт-моне тв iOpen 如何算作卖出或买入? 问题是,将今天的开盘价与昨天的开盘价相比较,似乎会导致价差错位,然后我在代码中遇到问题。 我可以只进行买入或卖出交易,因为iOpen 的价格在某些日子不正确。 该图表以买入价为基础 Sergey Dymov 2022.01.14 17:03 #18553 各位,请指教。 我正在编写一个多币种的EA,除了开单,一切都按计划进行。请告诉我问题出在哪里。 if((USDTP<=0)&&(JPYTP>=3)&&(z_USDJPY!=2)) { Alert("Продавай USDJPY. USD=", USDTP, ", JPY=", JPYTP); z_USDJPY=2; // text_massage="Продавай USDJPY"; SendNotification(text_massage); RefreshRates(); Ask1=MarketInfo("USDJPY",MODE_ASK); Bid1=MarketInfo("USDJPY",MODE_BID); Point1=MarketInfo("USDJPY",MODE_POINT); OrderSend("USDJPY", OP_BUY, 0.1, Bid1, 3, NormalizeDouble((Ask1+StopLoss*Point1),2), NormalizeDouble((Ask1-TakeProfit*Point1),2), NULL, 0, 0, 0); } 我没有得到任何错误,我只是没有打开订单 Andrei Sokolov 2022.01.14 18:22 #18554 Sergey Dymov 一个多币种的EA,除了开单,一切都按计划进行。请告诉我问题出在哪里。 我没有得到任何错误,它只是没有打开订单 订单发送 返回的值 返回交易服务器分配给订单的票号,如果失败则返回-1。 要获得 错误信息,你需要调用GetLastError()。 甚至编译器也告诉你,Ordersend应该被检查。 购买是通过Ask完成的。但它可能对Bid也有效,如果滑点至少与价差相等,这可能会使发现这个错误的难度增加。 Mihail Matkovskij 2022.01.14 19:19 #18555 一个多币种的EA,除了开单,一切都按计划进行。我正在寻找错误信息。 if((USDTP<=0)&&(JPYTP>=3)&&(z_USDJPY!=2)) { Alert("Продавай USDJPY. USD=", USDTP, ", JPY=", JPYTP); z_USDJPY=2; // text_massage="Продавай USDJPY"; SendNotification(text_massage); RefreshRates(); Ask1=MarketInfo("USDJPY",MODE_ASK); Bid1=MarketInfo("USDJPY",MODE_BID); Point1=MarketInfo("USDJPY",MODE_POINT); OrderSend("USDJPY", OP_BUY, 0.1, Bid1, 3, NormalizeDouble((Ask1+StopLoss*Point1),2), NormalizeDouble((Ask1-TakeProfit*Point1),2), NULL, 0, 0, 0); } 它没有给出任何错误,只是没有打开一个订单。 你注意到错误在哪里了吗? if((USDTP<=0)&&(JPYTP>=3)&&(z_USDJPY!=2)) { Alert("Продавай USDJPY. USD=", USDTP, ", JPY=", JPYTP); z_USDJPY=2; // text_massage="Продавай USDJPY"; SendNotification(text_massage); RefreshRates(); Ask1=MarketInfo("USDJPY",MODE_ASK); Bid1=MarketInfo("USDJPY",MODE_BID); Point1=MarketInfo("USDJPY",MODE_POINT); int nDigits = (int)MarketInfo("USDJPY", MODE_DIGITS); OrderSend("USDJPY", OP_SELL, 0.1, NormalizeDouble(Bid1, nDigits), 3, NormalizeDouble((Ask1-StopLoss*Point1), nDigits), NormalizeDouble((Ask1+TakeProfit*Point1), nDigits), NULL, magic, 0, 0); } https://docs.mql4.com/ru/trading/ordersend Примечание 当开立市场订单(OP_SELL或OP_BUY)时,只有最新的Bid(卖出)或Ask(买入)价格可以作为开盘价。如果对某一金融工具进行操作,与当前工具不同,那么要获得该工具的最新报价,应该使用MarketInfo()函数,并加入MODE_BID或MODE_ASK参数。 你不能使用一个估计的或非正常化的价格。如果要求的开盘价不在价格流中,或者要求的价格没有 按照小数点后的位数 规范化,将产生错误129(ERR_INVALID_PRICE)。如果要求的开盘价严重过时,无论滑点参数的值如何,都会产生一个错误138(ERR_REQUOTE)。另一方面,如果要求的价格已经过期,但仍然存在于价格流中,那么订单将以当前价格开仓,而且只有当前价格在价格+滑点范围内。 ... 为机器人设置一个独特的魔法也是可取的。 OrderSend - Торговые функции - Справочник MQL4 docs.mql4.com OrderSend - Торговые функции - Справочник MQL4 Andrei Sokolov 2022.01.14 20:08 #18556 Mihail Matkovskij #: 开盘价不在价格流中,或者要求的价格没有按照小数点后的数字进行规范化,那么 。 据我所知,Ask和Bid已经正常化。类似的问题已经提出,而且没有矛盾。 止损和盈利的魔力和数字可能是合适的,但作者的意图不得而知。 Mihail Matkovskij 2022.01.14 21:00 #18557 Andrey Sokolov #:据我所知,Ask和Bid已经正常化。类似的问题已经提出,而且没有矛盾。也许提到魔术师和止损和盈利的数字是合适的,但我不知道作者的想法是什么。 据我所知,文件中没有提到这一点。所以,你最好采取预防措施。它不会使情况变得更糟。 关于SL和TP,它们被计算出来 了。因此,他们肯定 应该根据数位值进行规范化处理。 Mykhailo Turovskyi 2022.01.14 22:12 #18558 朋友们好。 Mykhailo Turovskyi 2022.01.14 22:15 #18559 你能告诉我,如果故事上的利润是用蓝色圈出的,这是否包括佣金和交换? Порт-моне тв 2022.01.14 23:11 #18560 下午好。 我如何获得 第二个和后续订单的开盘时间,因为OpenOrderTime()只给出了第一个时间,同时我如何获得第二个和后续订单的开盘价,因为OpenOrderPrice()的类似功能也给出了第一个订单的价格? 1...184918501851185218531854185518561857185818591860186118621863...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一句话的建议。我在一个问题上犯了难。
iOpen 如何算作卖出或买入?
问题是,将今天的开盘价与昨天的开盘价相比较,似乎会造成价差错位,然后在代码中出现进一步的问题。 由于iOpen 的价格在某些日子里不正确,所以要么只有买入,要么只有卖出。
问题是,将今天的开盘价与昨天的开盘价相比较,似乎会导致价差错位,然后我在代码中遇到问题。 我可以只进行买入或卖出交易,因为iOpen 的价格在某些日子不正确。
该图表以买入价为基础
各位,请指教。
我正在编写一个多币种的EA,除了开单,一切都按计划进行。请告诉我问题出在哪里。
我没有得到任何错误,我只是没有打开订单
我没有得到任何错误,它只是没有打开订单
返回的值
返回交易服务器分配给订单的票号,如果失败则返回-1。 要获得 错误信息,你需要调用GetLastError()。
甚至编译器也告诉你,Ordersend应该被检查。
购买是通过Ask完成的。但它可能对Bid也有效,如果滑点至少与价差相等,这可能会使发现这个错误的难度增加。
一个多币种的EA,除了开单,一切都按计划进行。我正在寻找错误信息。
它没有给出任何错误,只是没有打开一个订单。
你注意到错误在哪里了吗?
https://docs.mql4.com/ru/trading/ordersend
Примечание
当开立市场订单(OP_SELL或OP_BUY)时,只有最新的Bid(卖出)或Ask(买入)价格可以作为开盘价。如果对某一金融工具进行操作,与当前工具不同,那么要获得该工具的最新报价,应该使用MarketInfo()函数,并加入MODE_BID或MODE_ASK参数。
你不能使用一个估计的或非正常化的价格。如果要求的开盘价不在价格流中,或者要求的价格没有 按照小数点后的位数 规范化,将产生错误129(ERR_INVALID_PRICE)。如果要求的开盘价严重过时,无论滑点参数的值如何,都会产生一个错误138(ERR_REQUOTE)。另一方面,如果要求的价格已经过期,但仍然存在于价格流中,那么订单将以当前价格开仓,而且只有当前价格在价格+滑点范围内。
...
为机器人设置一个独特的魔法也是可取的。
据我所知,Ask和Bid已经正常化。类似的问题已经提出,而且没有矛盾。
止损和盈利的魔力和数字可能是合适的,但作者的意图不得而知。
据我所知,Ask和Bid已经正常化。类似的问题已经提出,而且没有矛盾。
也许提到魔术师和止损和盈利的数字是合适的,但我不知道作者的想法是什么。
据我所知,文件中没有提到这一点。所以,你最好采取预防措施。它不会使情况变得更糟。
关于SL和TP,它们被计算出来 了。因此,他们肯定 应该根据数位值进行规范化处理。
朋友们好。
下午好。
我如何获得 第二个和后续订单的开盘时间,因为OpenOrderTime()只给出了第一个时间,同时我如何获得第二个和后续订单的开盘价,因为OpenOrderPrice()的类似功能也给出了第一个订单的价格?