無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ビュー:
52
評価:
(3)
パブリッシュ済み:
\MQL5\Include\Tools\Custom\ \MQL5\Expert\Test\DateTimeMsc\
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

最近、CopyTicksRange()の機能を集中的にテストし始めたところ、ミリ秒単位の時間を扱う際にいくつか不都合な問題が発生した:

  1. CDateTimeはMqlTimeStructから派生したもので、含まれているincrementとdecrementメソッドを使って簡単に異なる時間単位を編集することができるからだ。
  2. 同時に、ミリ秒(1970年1月1日からの秒数をulong形式で1000倍したもの)をスムーズに前後に変換する方法が必要だった。

ここで、例えばミリ秒という数字は非常に曖昧な数字であり、正確な日付についてはあまりわからないという難点にぶつかった。しかし、CDateTimeやTimeStructを使えば、時間の単位はすべて簡単に変えられるが、フォーマットがそれらを引き裂き、結果も非常に曖昧になる。このCDateTimeMscクラスはこの問題を解決するために作られた。

#include <Tools\DateTime.mqh>

struct CDateTimeMsc: public CDateTime
  {
public:
   int               msc;               // additional variable for msc storage
   datetime          check_datetime;    // 便利な観測のためには、少しのオーバーヘッドが必要である。

   //--- CDateTimeMscのメソッド

   ulong             MscTime(void) {return(ulong(double(CDateTime::DateTime()) * 1000) + msc);}
   void              MscTime(ulong a_msc_time);  // 入力 (datetime*1000)
   void              Msc(int value);
   //bool IsNumInt(const int num);
   void              MscDec(int delta = 1);
   void              MscInc(int delta = 1);
   void              SecTime(int a_int_time);
   ulong             SecTime(void);
   void              UpdateDateTime();   // オブザベーション変数を更新 check_datetime
   void              DateTime(datetime a_datetime) {CDateTime::DateTime(a_datetime); UpdateDateTime();}
   datetime          DateTime(void) {return(CDateTime::DateTime());}

  };

新しいメソッドは古い構造体の継承の下に挿入された。

このクラスは実際には構造体であり(構造体/クラスを参照)、ミリ秒を扱うこともできる。

さらに、インクリメント・メソッドとデクリメント・メソッドがmscプロパティに拡張された。

「check_datetime」という追加の変数が本当に必要なのかどうかという議論もあるだろう。これはある種のオーバーヘッドを生み出すからだ(人によっては、これは非常に重要なことだ)。しかし、通常、CDateTimeオブジェクトはあまり使われず、時、分、秒、日などの時間単位を変更する必要がある重要な場所で少数使われるだけだと私は仮定しました。また、増減のたびに不必要に呼び出されるUpDateTime()メソッドにも少し疑問があった。

しかし、全体としては、ハンドリングの要素が主眼だった。


テスト
正確な日付を知りたい場合、datetime変数を追加して時刻を問い合わせる必要はなくなり、変数 "check_datetime "を監視下に置くだけで済むようになった。


オブスツー

ミリ秒の時刻は自動的にdatetimeフォーマットに変換された。


MetaQuotes Ltdによってドイツ語から翻訳されました。
元の記事: https://www.mql5.com/de/code/48156

日中トリプル・パフォーマンス 日中トリプル・パフォーマンス

3つのクロスを設定し、指定された時間(これも設定可能)から始まる毎日のパーセンテージ・パフォーマンスを監視する。

Strong Historical Levels Strong Historical Levels

過去の強いS/Rsレベル

Caculater Margin Caculater Margin

EA Toolsのマージンロット、そのサイズを変更するには?

Open Range BreakOut Indicator for MetaTrader 5 Open Range BreakOut Indicator for MetaTrader 5

オープン・レンジ・ブレイクアウト(ORB)インディケータは、取引セッショ ンの開始レンジからの価格ブレイクアウトを識別し、追跡する 強力なテクニカル分析ツールです。このインディケータは、取引セッションの最初の数分間に形成された高値と 安値が、その日の残りの時間を通して重要な支持線と抵抗線になることが 多いという概念に基づいています。 このインディケータは、ユーザー定義の時間帯に基づ いて始値レンジを自動的に計算し、複数の目標株価をプロットし、潜在的な 取引機会を視覚的・音声的にアラートします。このインジケータは、トレーダーが高確率のブレイクアウト・トレードや再 テスト・シナリオを識別できるように設計されています。