mql5语言的特点、微妙之处以及技巧 - 页 79 1...727374757677787980818283848586...247 新评论 fxsaber 2018.03.30 19:46 #781 Alain Verleyen: 我想根据格林尼治标准获得服务器的时间。这就是你运行该脚本时得到的结果。有一个特殊的两个值的输出:TimeGMT 和TimeServerGMT,所以你可以检查它们是否重合。 如果它们是相同的,你就没有错误。 Alain Verleyen 2018.03.30 19:49 #782 fxsaber: 当你运行该脚本时,你会得到这个结果。这里特别输出了两个值:TimeGMT和TimeServerGMT,这样你就可以检查它们是否匹配。 如果它们相吻合,就没有错误,否则就有错误。 明白了。 fxsaber 2018.03.31 09:29 #783 关于交易、自动交易系统和策略测试的论坛 图书馆:TypeToBytes fxsaber, 2018.03.31 09:24// Кроссплатформенный пример передачи произвольных данных через пользовательское событие #include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298 // Печать произвольных данных template <typename T> bool MyPrint( const T &Value ) { T Array[1]; Array[0] = Value; ArrayPrint(Array, _Digits, NULL, 0, WHOLE_ARRAY, ARRAYPRINT_HEADER | ARRAYPRINT_ALIGN); return(true); } void OnChartEvent( const int id, const long &lparam, const double&, const string &sparam ) { // Распечатали полученные данные if ((id == CHARTEVENT_CUSTOM) && (lparam ? MyPrint(DATA_STRING::FromString<MqlDateTime>(sparam)) // Получили MqlDateTime : !MyPrint(DATA_STRING::FromString<MqlTick>(sparam)))) // Получили MqlTick ExpertRemove(); // Вышли из примера } void OnInit() { MqlTick Tick; MqlDateTime DateTime; // Заполнили значения SymbolInfoTick(_Symbol, Tick); TimeCurrent(DateTime); // Передали EventChartCustom(0, 0, 0, 0, DATA_STRING::ToString(Tick)); // Передали MqlTick EventChartCustom(0, 0, 1, 0, DATA_STRING::ToString(DateTime)); // Передали MqlDateTime } Andrey Barinov 2018.03.31 14:08 #784 fxsaber: Sparam有一个长度限制。你是否考虑到了这一点? fxsaber 2018.03.31 16:08 #785 安德烈-巴里诺夫。Sparam有一个长度限制。 是的,128字节。 const bool Init = EventChartCustom(0, 0, 0, 0, NULL); void OnChartEvent( const int id, const long&, const double&, const string &sparam ) { static int PrevLength = -1; if (id == CHARTEVENT_CUSTOM) { const int Length = StringLen(sparam); bool Res = (Length != PrevLength); if (Res) { string Str; StringInit(Str, Length + 1, 1); Res = EventChartCustom(0, 0, 0, 0, Str); } if (!Res) { Print(PrevLength); ExpertRemove(); } PrevLength = Length; } } 你是否考虑到了这一点? 不,这是你可以从中看到的。sparam的例子是作为字符串存储的变体之一给出的。 你可以让代码变得更复杂(分块发送),但那时你会失去视觉清晰度。 Vitaly Muzichenko 2018.04.01 05:59 #786 fxsaber:如果没有一个具体的例子,恐怕就没有建设性的出路。它发出的图片是这样的。 Print( "TimeServer: ",TimeGMT()-TimeServerGMTOffset() ); Print( "TimeServerGMT: ",TimeServerGMT() ); Print( "TimeCurrent: ",TimeCurrent() ); Print( "TimeLocal: ",TimeLocal() ); Print( "TimeGMT: ",TimeGMT() ); Print( "TimeGMTOffset: ",TimeServerGMTOffset() ); Print( "" ); 这里是mt4安装程序的GMT+2 工作班次。 期待看到TimeServer=2018.04.01 05:54:26 附加的文件: tw4setup.zip 522 kb fxsaber 2018.04.01 07:19 #787 维塔利-穆齐琴科。它给出的图片是这样的。以防万一,请告诉我TradersWay-Demo服务器的名称。SZZ TradersWay-Demo. 它工作正常。 2018.04.01 08:36:08.858 TimeServerGMT EURUSDi,M1: TimeServerGMT() = 2018.03.30 19:59:59 你可能没有。 // Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю Vitaly Muzichenko 2018.04.01 08:05 #788 fxsaber:为了 以防万一,请告诉我交易服务器的名称。ZS TradersWay-Demo。 它工作正常。 你可能没有。 你可能没有。我可能没有任何终端,我从不在M15以下切换时间框架。 好的,我再研究一下。 fxsaber 2018.04.01 08:07 #789 维塔利-穆齐琴科。可能不会。我可能没有任何终端,我从不在M15以下切换时间段。这样做 datetime GetBarTime( const datetime time, const bool NextBar = false, string Symb = NULL, const ENUM_TIMEFRAMES TimeFrame = PERIOD_M15 ) Vitaly Muzichenko 2018.04.01 08:17 #790 fxsaber: 做到这一点。做了,没有显示任何废话。令人困惑的是,转变可能应该是-720 P.S.再次,我知道网站上写着轮班+2小时,但机器人不知道。 如果你在这样的图表上运行专家顾问,不太可能得到所需的输出结果:"学习当前的 时间服务器 TimeServer()" 我没有弄清楚,也许我做错了什么。 也许开发者应该在终端实现这个功能。 1...727374757677787980818283848586...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想根据格林尼治标准获得服务器的时间。
这就是你运行该脚本时得到的结果。有一个特殊的两个值的输出:TimeGMT 和TimeServerGMT,所以你可以检查它们是否重合。
如果它们是相同的,你就没有错误。
当你运行该脚本时,你会得到这个结果。这里特别输出了两个值:TimeGMT和TimeServerGMT,这样你就可以检查它们是否匹配。
如果它们相吻合,就没有错误,否则就有错误。
关于交易、自动交易系统和策略测试的论坛
图书馆:TypeToBytes
fxsaber, 2018.03.31 09:24
Sparam有一个长度限制。你是否考虑到了这一点?
Sparam有一个长度限制。
是的,128字节。
你是否考虑到了这一点?
不,这是你可以从中看到的。sparam的例子是作为字符串存储的变体之一给出的。
你可以让代码变得更复杂(分块发送),但那时你会失去视觉清晰度。
如果没有一个具体的例子,恐怕就没有建设性的出路。
它发出的图片是这样的。
这里是mt4安装程序的GMT+2 工作班次。
期待看到TimeServer=2018.04.01 05:54:26
它给出的图片是这样的。
以防万一,请告诉我TradersWay-Demo服务器的名称。
SZZ TradersWay-Demo.
它工作正常。
你可能没有。
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
为了 以防万一,请告诉我交易服务器的名称。
ZS TradersWay-Demo。
它工作正常。
你可能没有。
你可能没有。我可能没有任何终端,我从不在M15以下切换时间框架。
好的,我再研究一下。可能不会。我可能没有任何终端,我从不在M15以下切换时间段。
这样做
做到这一点。
做了,没有显示任何废话。令人困惑的是,转变可能应该是-720
P.S.再次,我知道网站上写着轮班+2小时,但机器人不知道。
如果你在这样的图表上运行专家顾问,不太可能得到所需的输出结果:"学习当前的 时间服务器 TimeServer()" 我没有弄清楚,也许我做错了什么。
也许开发者应该在终端实现这个功能。