mql5言語の特徴、微妙なニュアンスとテクニック - ページ 194

 

こんにちは、エキスパートからのヘルプです。

ドキュメントから

グローバル変数

"グローバル変数の初期化は、プログラムがクライアント端末のメモリにロードされた後、最初のInit イベントが処理される前に一度だけ実行されます。クラスのオブジェクトであるグローバル変数については、初期化時に適切なコンストラクタが呼び出されます。"

しかし、実際には、チャートの期間を変更すると、インジケータのグローバルオブジェクトクラスのコンストラクタが呼び出されます。

インジケータ起動後、コンストラクタを一回だけ呼び出すようにするには?

 
Gudgeon:

しかし、実際には、チャートの期間を変更すると、インジケータ内のオブジェクトクラスのコンストラクタが呼び出されるのです。

インジケータ起動後、コンストラクタを一回だけ呼び出すようにするには?

インジケーターのTF変更 - プログラムの新しいコピーの開始。

 
fxsaber:

インジケーターのTFを変更する - プログラムの新しいコピーを実行する。

ありがとうございました。

意外とドキュメントを見てもわからないものですね。

Expert AdvisorsではすべてOKです。

 
プログラムのコンパイルにかかる時間は、以下のように調べることができます。
LastModifyEX5() - __DATETIME__
 
fxsaber:
プログラムのコンパイルにかかる時間は、次のようにして知ることができます。
LastModifyEX5()とは何ですか?ホームページで見つけられない。
 
Alexey Viktorov:
で、このLastModifyEX5()って何?ホームページで見つけられない。

これはWinAPIを通して自分で書く必要があります。ここでは、実装は二の次です。

 

趣味の仲間たちよ!

特定のTFの特定のインジケータの可視性をプログラムで設定するにはどうすればよいですか?

他のTFについては、さらに5つの指標がある可能性があることを考慮。

説明文の検索、ごく簡単に言えばヘルプの検索ですが、説明文の検索では解決するための仕組みが全く出て きません。


オブジェクトの可視性を設定する方法は知っています。

 
リミッターは、ORDER_TIME_SETUP_MSCを 変更することができる。部分実行の場合、このプロパティは、最初の(おそらく最後)部分実行の時間に等しくなる。
 
テスターでは、このコンディションは常にトリガーされます。
int OnInit()
{
  MqlTick Tick;
  
  return(SymbolInfoTick(_Symbol, Tick) && (TimeCurrent() != Tick.time));
}
テスターのバグなのか、機能なのか、判断に迷うところです。
 

かつて、サーバー時刻のGMTオフセットを決定する方法が提案された。必ずしも正確に動作するわけではありません。

以下は正確なバージョンと思われます。

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
int TimeServerGMTOffset( void )
{
  MqlCalendarValue Value[1];
  
  CalendarValueHistoryByEvent(840030016, Value, D'2020.12.03', D'2020.12.06');
  
  return((13 - ((Value[0].time / 3600) % 24)) * 3600);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
datetime TimeServerGMT( void )
{
  return(TimeTradeServer() + TimeServerGMTOffset());
}


トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql4言語の特徴、複雑な仕組みとコツ

fxsaber さん 2018.03.29 14:32

アプリケーション

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

void OnStart()
{  
  PRINT(TimeGMT());
  PRINT(TimeServerGMT());  
}
理由: