mql5语言的特点、微妙之处以及技巧 - 页 195 1...188189190191192193194195196197198199200201202...247 新评论 fxsaber 2020.12.22 09:15 #1941 // Возвращает скорректированный ORDER_REASON. ENUM_ORDER_REASON GetOrderReason( const ulong Ticket ) { ENUM_ORDER_REASON Reason = ORDER_REASON_CLIENT; if (HistorySelectOrder(Ticket)) // https://www.mql5.com/ru/forum/170952/page186#comment_18099882 { Reason = HistoryOrderGetInteger(Ticket, ORDER_REASON); if ((HistoryOrderGetInteger(Ticket, ORDER_TYPE) <= ORDER_TYPE_SELL) && (Reason != ORDER_REASON_SL) && (Reason != ORDER_REASON_TP)) { string PartComment = HistoryOrderGetString(Ticket, ORDER_COMMENT); if (StringLen(PartComment) > 3) { PartComment = ::StringSubstr(PartComment, 0, 3); if (PartComment == "[tp") Reason = ORDER_REASON_TP; else if (PartComment == "[sl") Reason = ORDER_REASON_SL; } } } return(Reason); } amrali 2020.12.23 20:25 #1942 fxsaber : 曾经有人提出一种方法 来确定服务器时间的GMT偏移。它并不总是完全有效。 下面,似乎是确切的版本。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int TimeServerGMTOffset() { return (int)(TimeGMT()-TimeTradeServer()); } //+------------------------------------------------------------------+ fxsaber 2021.01.13 13:17 #1943 交易历史记录中可能充满了状态为REJECTED的市场订单。一般来说,这些是目标。 有些服务器对这种收到拒绝的市场订单有一个特殊的功能:状态不同--取消。 fxsaber 2021.01.15 15:08 #1944 这是一个错误,还是在时间上的字符串转换 的错误? Print((datetime)"12:34"); // Результат: 2021.01.15 12:34:00. Ожидалось: 1970.01.01 12:34:00. // Выкручивание. Print(((datetime)"12:34") % (24 * 3600)); // Результат: 1970.01.01 12:34:00. fxsaber 2021.01.15 15:40 #1945 这块在编译时变成了一个常量吗? StrDate = StringSubstr(StrDate, StringLen(StrDate) - StringLen("00:00:00 - 00:00:00")); Alexey Viktorov 2021.01.15 15:42 #1946 fxsaber: 这是一个错误,还是字符串 到时间转换 的一个芯片? 这就是一直以来的情况。但我的做法会有一点不同......。 Print(((datetime)"12:34") % PeriodSeconds(PERIOD_D1); // Результат: 1970.01.01 12:34:00. 而如果你这次只是打印出来,你所要做的就是 Print(TimeToString(TimeCurrent(), TIME_SECONDS)); //Результат //2021.01.15 18:46:12.938 00 (EURRUB_TOD,H1) 18:31:18 fxsaber 2021.01.15 15:46 #1947 Alexey Viktorov:这种情况一直存在。 那么,一个有趣的后果是。 Print((datetime)""); // Текущая дата. 简洁而令人惊讶。因为编译器不会把看起来是常数的东西转换为常数。 Alexey Viktorov 2021.01.15 15:49 #1948 fxsaber:那么,一个有趣的后果是。简洁而令人惊讶。因为编译器不会把看起来是常数的东西转换成常数。空字符串是否为当前日期? ps;令人惊讶的是......的确是当前的日期,但时间是1:00 Aleksey Mavrin 2021.01.15 15:53 #1949 fxsaber:那么,一个有趣的后果是。简洁而令人惊讶。因为编译器不会转换看起来是常数的东西。 它是用TimeCurrent 还是TimeLocal来代替?) 我记得在某些语言中,创建一个日期类型会自动用系统时间初始化它。 Документация по MQL5: Дата и время / TimeCurrent www.mql5.com TimeCurrent - Дата и время - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 fxsaber 2021.01.15 16:00 #1950 Alexey Viktorov:确实是当前日期,但时间是凌晨1点。 没有建议,不知道这一小时是从哪里来的(对我来说也一样)。可能取决于时区。 这已经没有什么意思了。 Print((datetime)"00:00"); // Текущая дата. 1...188189190191192193194195196197198199200201202...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
曾经有人提出一种方法 来确定服务器时间的GMT偏移。它并不总是完全有效。
下面,似乎是确切的版本。
交易历史记录中可能充满了状态为REJECTED的市场订单。一般来说,这些是目标。
有些服务器对这种收到拒绝的市场订单有一个特殊的功能:状态不同--取消。
这是一个错误,还是字符串 到时间转换 的一个芯片?
这就是一直以来的情况。但我的做法会有一点不同......。
而如果你这次只是打印出来,你所要做的就是
这种情况一直存在。
那么,一个有趣的后果是。
简洁而令人惊讶。因为编译器不会把看起来是常数的东西转换为常数。
那么,一个有趣的后果是。
简洁而令人惊讶。因为编译器不会把看起来是常数的东西转换成常数。
空字符串是否为当前日期?
ps;令人惊讶的是......的确是当前的日期,但时间是1:00那么,一个有趣的后果是。
简洁而令人惊讶。因为编译器不会转换看起来是常数的东西。
它是用TimeCurrent 还是TimeLocal来代替?)
我记得在某些语言中,创建一个日期类型会自动用系统时间初始化它。
确实是当前日期,但时间是凌晨1点。
没有建议,不知道这一小时是从哪里来的(对我来说也一样)。可能取决于时区。
这已经没有什么意思了。