私たちのファンページに参加してください
時計 - MetaTrader 5のためのライブラリ
- ビュー:
- 3839
- 評価:
- パブリッシュ済み:
- 2018.03.16 11:23
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
このライブラリ(Clock.mqh)はアナログ時計をグラフィッカルリソースとして作成します。
特徴
下記のソースコードはライブラリの使用を示します。
// MQL4&5-コード // チャートにアナログ時計を作成するクロスプラットフォームエキスパートアドバイザーの例 #property strict #include <fxsaber\Clock.mqh> // https://www.mql5.com/ja/code/19388 const string ObjName = __FILE__; // 時計を表示するBitmapオブジェクトの名前 const string ResourceName = "::" + ObjName; // 時計が形成されるリソースの名前 // 対応するINIファイルの設定から時計を作成する CLOCK Clock("Clocks\\Clock01\\Clock01.INI", ResourceName); void OnINIt() { // 時計を表示するグラフィックオブジェクトの作成 ObjectCreate(0, ObjName, OBJ_BITMAP_LABEL、0、0、0); // 時計が位置するリソースの名前 ObjectSetString(0, ObjName, OBJPROP_BMPFILE、0, ResourceName); // オブジェクトを選択してマウスでドラッグする可能性を追加する ObjectSetInteger(0, ObjName, OBJPROP_SELECTABLE、true); // 第2のタイマを有効にして時計を更新する EventSetTimer(1); } void OnTimer() { // 時計での現在時刻の設定 Clock.SetTime(TimeLocal()); // チャートを更新して変更を表示する ChartRedraw(); }
リフレッシュ後、チャートに次のクロックが表示されます。
指標
添付されたクロスプラットフォームのClock.mq5 指標を使うと、時計はすぐに使用することができます。
この指標はスキンのインタラクティブな変更を実装しています。キーボードのUP/DOWNキーを使用して、クロックバージョン(ZIPアーカイブを展開)を切り替えます。
特徴
- ラスター(ベクトルではない)クロック
- 長針はスムーズにされずに動きます。
- このライブラリはMetaTrader 4/5で使用できます。
時計の形成法
時計のオリジナルはフラッシュ時計(swfファイルはZIPで入手できます)を検索することによってWebから取得されます。これは、文字盤、針などの必要なグラフィック表現を含むため便利です。他のソースも使用できます。たとえば、すぐに使えるベクタファイルを見つけたり、自分で描画することができます。
INIファイル(例を参照)は、時計形成パラメータをレイヤーごとに設定します。以下の設定は、任意のテキストエディタで編集できます。
ImageName = ClockFace.bmp BoundX = 0 // bmp画像(層)内のゼロ点のX座標 BoundY = 0 // bmp画像(層)内のゼロ点のY座標 X = 0 // 層で形成される画像内のゼロ点のX座標 Y = 0 // 層で形成される画像内のゼロ点のY座標 Rotate = 0 // 回転速度 A = 100% // 使用されるアルファチャネルの値 R = 100% // 使用される赤チャネルの値 G = 100% // 使用される緑チャネルの値 B = 100% // 使用される青チャネルの値
層は、リスト内の記述の位置が低いほど、前に記述された層よりも高くなります。層数は特に限定されていません。
この画像構築方法では、時計だけでなく、静的/動的オブジェクトを形成するためにライブラリを使用することが可能です。時計のダイナミクスを提供するために必要なのは、回転を設定することだけでした。ただし、他のタイプの移動(シフト、スケーリングなど)はわずか数行でコードに追加することができます。添付されたソースコードは、画像を記述する際にこの方法を実装する方法の例を示しています。
時計に関しては、層ごとに操作することで、(フラッシュクロックで行われているように)針の影と照明を実現することができました。
文字盤を透明にしたい場合は、対応するINIファイルのアルファチャンネルを100%未満に設定する必要があります。
発表の時点で、マーケットにはアナログ時計はありませんでした。コードベースにはこの変種がありました。
このライブラリの新機能は、回転に使用されるLAYER :: Rotateです。おそらく、この機能は時計に似た動的なグラフィカルリソースに基づいたサードパーティのソリューションの作成につながるでしょう。
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/19388