MT4用TimeTradeServerアナログ。 - ページ 5

 
fxsaber:

図面からどのように再現するのですか?

図がそれを雄弁に物語っていると思います。

  1. EURUSDがあります。
  2. 1分間の履歴があります。
  3. サーバータイムとGMTタイムがあります。
  4. TC名をご指定いただきました。
  5. 両者の差は2のはずだが、実際は0である。
他に必要なものはありますか?教えてください、そうします。
 
fxsaber:

そのような変化をさせれば、突っ走ることができる。夏と冬の定義は、まだできていない、誰かがやるだろう。

まず、「マイナス2」ではなく、「プラス2」であること。では、私の場合はどうかというと、ぴったりです。

次に、グリニッジ標準時から4時間のオフセットを持つサーバーの場合、2時間ではなく4時間とするのがよいでしょうか。そうすれば、関数は必要なく、最初に知っている数字を使うだけで、正しい答えが得られる。)))

 
Ihor Herasko:

他に必要なものはありますか?教えてください、提供します。

ターミナルからデモを開くことで接続できる取引サーバーのコードと名前です。

 
Ihor Herasko:

まず、「マイナス2」ではなく、「プラス2」です。では、私の場合はどうかというと、ぴったりです。

次に、グリニッジ標準時から4時間ずれているサーバーの場合、2時間ではなく4時間にすることをお勧めしますか?そうすれば、関数は必要なく、最初に知っている数字を使うだけで、正しい答えが得られる。)))

私が発言していないことを私の発言と決めつけて、それが間違っていると言ったのです。また、それをジョークにしようとしたんですね。

 
Dmitry Fedoseev:

OrderSend()関数が「マーケットが閉じている」というエラーに出くわしたので(そういうものがある)、すべての取引の試みを停止して、マーケットが開いたことを意味する価格の変化を待ちます。

このアイデアは確かに役立つかもしれない、私は不必要なエラーを出さずに市場が閉まる時間を知りたい。考えないといけない。

 
Maxim Kuznetsov:
EURUSDの最後の(23:59)分ではなく、金の夜に注目すべきです。ゴールドはアムステルダム、通貨はサーバーの時間によって厳格に取引されます。ここから、サーバーのGMTオフセットを見つける

とんでもない秘密を教えましょう、毎日が23:59に終わるとは限らないのです :-)そして、何時に終わるか事前にわからないかもしれません。例えば、休日前の日や金曜日など。

 
fxsaber:

そのような変化をさせれば、突っ走ることができる。夏と冬の定義はやっていない、誰かがやってくれるだろう。

インストールしたままアップデートしないようなシステムでは、うまくいきません :-)例えば、RFでは冬から夏への時間変化がまだ残っています。そんなシステムに出会ってしまった...。

 
fxsaber:

ターミナルからデモを開くと接続できる取引サーバーのコードと名前です。

コード: https://www.mql5.com/ru/forum/327616/page3#comment_14093858

ログイン:12752745

サーバー:yk2mkat

サーバー:Alpari-Demo

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.02
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
fxsaber:

私が発言していないことを私の発言と決めつけ、それが間違いだと言ったのです。とジョークを飛ばしてみたりして。

書いた のはあなたではありませんか?

冗談じゃないんですよ。提出されたコードでは、0が2に変更されています。まさに、実時間とサーバーが計算した時間にズレが生じてしまうんです。だから、必要なズレを見て、0ではなく必要なオフセットを入れるというこのやり方には驚きました。ここには笑うところがないんです。

TimeTradeServer аналог для МТ4
TimeTradeServer аналог для МТ4
  • 2019.12.03
  • www.mql5.com
Интересует решение этой функции под МТ4 TimeTradeServer...
 
Ihor Herasko:

コード: https://www.mql5.com/ru/forum/327616/page3#comment_14093858

ログイン:12752745

アカウント:YK2MKAT

サーバー:Alpari-Demo

イホル・ヘラスコ

書いた のはあなたではありませんか?

冗談について - 冗談ではありません。送信されたコードは、0から2に変更されました。サーバーの実時間と推定時間の差分を取得しました。だから、必要なズレを見て、0ではなく必要なオフセットを入れるというこのやり方には驚きました。笑うところがないんです。

チェックコード

#property strict

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

datetime GetBarTime( const datetime time, const bool NextBar = false, string Symb = NULL, const ENUM_TIMEFRAMES TimeFrame = PERIOD_M1 )
{
  if (Symb == NULL)
    Symb = _Symbol;
    
  return(iTime(Symb, TimeFrame, iBarShift(Symb, TimeFrame, time) - (NextBar ? 1 : 0)));
}

datetime GetTimeDayOfWeek( const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeCurrent() / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

// https://www.mql5.com/ru/forum/327616/page4#comment_14098877
// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
int TimeServerGMTOffset( const bool SummerTime = false )
{
  const datetime Sunday = GetTimeDayOfWeek();
  
  return(((int)MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR) - SummerTime - 2) * HOUR);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
// Работает для FOREX-символов, когда M1-история доступна за ближайшую неделю
datetime TimeServerGMT( void )
{
  return(TimeCurrent() + TimeServerGMTOffset());
}

#define  PRINT(A) Print(#A + " = " + (string)(A))

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
void OnStart()
{  
  PRINT(TimeGMT());
  PRINT(TimeServerGMT());  
}


アルパリと同じGMTを持つマシンでの結果。

2019.12.03 19:28:09.048 Test5-3 EURUSD,M1: TimeServerGMT() = 2019.12.03 17:28:12
2019.12.03 19:28:09.048 Test5-3 EURUSD,M1: TimeGMT() = 2019.12.03 17:28:09


チェック済み

AccountServer() = AMPGlobalUSA-Demo

正しいのです。