mql5言語の特徴、微妙なニュアンスとテクニック - ページ 79 1...727374757677787980818283848586...247 新しいコメント fxsaber 2018.03.30 17:46 #781 Alain Verleyen: サーバーの時刻をGMTで取得したいのですが、どうすればよいですか?スクリプトを実行すると、このようになります。TimeGMTと TimeServerGMTという2つの値の特別な出力があるので、それらが一致するかどうかを確認することができます。 同じであれば、エラーはありません。 Alain Verleyen 2018.03.30 17:49 #782 fxsaber: スクリプトを実行すると、このようになります。そこでは、TimeGMTとTimeServerGMTという2つの値が特別に出力され、それらが一致するかどうかを確認することができます。 一致すればエラーはなく、そうでなければ間違いとなる。 了解です。 fxsaber 2018.03.31 07: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 12:08 #784 fxsaber スパークルは長さ制限があります。それを考慮したのでしょうか? fxsaber 2018.03.31 14:08 #785 アンドレイ・バリノフスパークルは長さ制限があります。 はい、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 03:59 #786 fxsaber具体的な事例がないと、建設的な解決策にはならないのではと思うのですが、いかがでしょうか。こんな感じの絵を出しています。 Print( "TimeServer: ",TimeGMT()-TimeServerGMTOffset() ); Print( "TimeServerGMT: ",TimeServerGMT() ); Print( "TimeCurrent: ",TimeCurrent() ); Print( "TimeLocal: ",TimeLocal() ); Print( "TimeGMT: ",TimeGMT() ); Print( "TimeGMTOffset: ",TimeServerGMTOffset() ); Print( "" ); そして、GMT+2 勤務のmt4インストーラーがこちら。 TimeServer=2018.04.01 05:54:26を 期待していました。 ファイル: tw4setup.zip 522 kb fxsaber 2018.04.01 05: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 06:05 #788 fxsaber念の ため、取引サーバーの名前を教えてください。ZS TradersWay-Demo。 正常に動作しています。 持っていないかもしれません。 たぶん、ないと思います。私はおそらくどの端末でも持っていない。私はM15以下のタイムフレームを切り替えたことはない。 OK、もう少し調べてみます。 fxsaber 2018.04.01 06: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 06:17 #790 fxsaber: これをやってください。やってみたが、デタラメは表示されなかった。紛らわしいのは、シフトがおそらく -720 であるべきだということです。 P.S. 繰り返しになりますが、シフト+2時間はホームページに書いてあるのですが、ロボットはそれを知らないのです。 このようなチャートでExpert Advisorを実行すると、必要な出力結果である「現在の 時刻サーバーの TimeServer() を学ぶ」が得られない可能性が高いです。もしかしたら、私のやり方が悪いのかもしれませんね。 開発者はターミナルに機能を実装すべきなのかもしれません。 1...727374757677787980818283848586...247 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
サーバーの時刻をGMTで取得したいのですが、どうすればよいですか?
スクリプトを実行すると、このようになります。TimeGMTと TimeServerGMTという2つの値の特別な出力があるので、それらが一致するかどうかを確認することができます。
同じであれば、エラーはありません。
スクリプトを実行すると、このようになります。そこでは、TimeGMTとTimeServerGMTという2つの値が特別に出力され、それらが一致するかどうかを確認することができます。
一致すればエラーはなく、そうでなければ間違いとなる。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
ライブラリ: TypeToBytes
fxsaber さん 2018.03.31 09:24
スパークルは長さ制限があります。それを考慮したのでしょうか?
スパークルは長さ制限があります。
はい、128バイトです。
そのあたりは考慮されているのでしょうか?
いや、そこから見えてくるものがあるんです。文字列を保存する方法の一つとして、sparamの例が挙げられている。
コードをより複雑にする(チャンクで送る)ことはできますが、その場合、視覚的な分かりやすさが失われます。
具体的な事例がないと、建設的な解決策にはならないのではと思うのですが、いかがでしょうか。
こんな感じの絵を出しています。
そして、GMT+2 勤務のmt4インストーラーがこちら。
TimeServer=2018.04.01 05:54:26を 期待していました。
このような絵が出ます。
念の ため、TradersWay-Demoのサーバー名を教えてください。
SZZ TradersWay-Demo。
正常に動作しています。
持っていないかもしれません。
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
念の ため、取引サーバーの名前を教えてください。
ZS TradersWay-Demo。
正常に動作しています。
持っていないかもしれません。
たぶん、ないと思います。私はおそらくどの端末でも持っていない。私はM15以下のタイムフレームを切り替えたことはない。
OK、もう少し調べてみます。たぶん、ないと思います。私はおそらくどのターミナルでも持っていない、私はM15以下のタイムフレームを切り替えることはありません。
この方法で行う
これをやってください。
やってみたが、デタラメは表示されなかった。紛らわしいのは、シフトがおそらく -720 であるべきだということです。
P.S. 繰り返しになりますが、シフト+2時間はホームページに書いてあるのですが、ロボットはそれを知らないのです。
このようなチャートでExpert Advisorを実行すると、必要な出力結果である「現在の 時刻サーバーの TimeServer() を学ぶ」が得られない可能性が高いです。もしかしたら、私のやり方が悪いのかもしれませんね。
開発者はターミナルに機能を実装すべきなのかもしれません。