その他の定数

CLR_NONE 定数は、色が存在しないことを概説するために使用され、指標のグラフィックオブジェクトグラフィックシリーズはプロットされません。この定数はウェブカラー定数リストには含まれていませんが、カラー引数が必要なところならどこにでも適用することが出来ます。

INVALID_HANDLE 定数はハンドラのチェックに使用されます(FileOpen() 及び FileFindFirst() を参照)。

定数

説明

CHARTS_MAX

端末内に同時に開けるチャートの最大数。

100

clrNONE

無色。

-1

EMPTY_VALUE

指標バファ—の空値。

DBL_MAX

INVALID_HANDLE

不正なハンドル。

-1

IS_DEBUG_MODE

MQ5 プログラムをデバグモードで動作するフラグ。

デバグモードではゼロ以外、それ以外はゼロ

IS_PROFILE_MODE

MQ5 プログラムをプロファイルモードで動作するフラグ。

プロファイルモードではゼロ以外、それ以外はゼロ

NULL

すべの型でゼロ。

0

WHOLE_ARRAY

配列の最後までに残っている要素の数を表します。配列全体が処理されます。

-1

WRONG_VALUE

定数は任意の列挙型に暗黙的にキャストされることが出来ます。

-1

EMPTY_VALUE 定数は、通常、チャートには示されていない指標値に相当します。例えば、内蔵された 20時間軸の指標標準偏差では、履歴内の最初の19のバーは、チャートに示されていません。この指標ハンドルを iStdDev() 関数で作成し、指標値の配列を CopyBuffer(), でコピーした場合、値は EMPTY_VALUE に等しくなります。

指標がチャートに表示されてはいけない場合、カスタム指標に独自の空値を指定することが出来ます。この際、PlotIndexSetDouble() 関数を PLOT_EMPTY_VALUE 修飾子と使用します。

NULL 定数は、基本データ型の変数やオブジェクトの構造やクラスのポインタに割り当てることが出来ます。文字列変数への NULL の割り当てはこの変数の完全な初期化解除を意味します。

WRONG_VALUE 定数は、不正の列挙の値を返す時に必要です。例えば、戻り値がこの列挙の値であることを知らせる必要がある場合です。例として、名称で指定されたオブジェクトの線のスタイルを返す CheckLineStyle() をみてみましょう。ObjectGetInteger() によるスタイルチェックの結果が true の場合、ENUM_LINE_STYLE からの値が返されます。その他の場合 WRONG_VALUE が返されます。

void OnStart()
 {
  if(CheckLineStyle("MyChartObject")==WRONG_VALUE)
    printf("Error line style getting.");
 }
//+------------------------------------------------------------------+
//| 名称で指定されたオブジェクトの線のスタイルを返す                                |
//+------------------------------------------------------------------+
ENUM_LINE_STYLE CheckLineStyle(string name)
 {
  long style;
//---
  if(ObjectGetInteger(0,name,OBJPROP_STYLE,0,style))
    return((ENUM_LINE_STYLE)style);
  else
    return(WRONG_VALUE);
 }

 

WHOLE_ARRAY 定数は、処理された配列の要素数を指定することを必要とする関数を対象としています。

指定された位置から配列の最後までの全ての値が処理されなければならないことを指定する場合は、WHOLE_ARRAY 値を指定する必要があります。

IS_PROFILE_MODE 定数は、プロファイルモードでデータが正しく収集されるようにプログラムの動作を変更することが出来ます。プロファイリングは個々のプログラムフラグメント(通常、関数を含む)の実行時間を測定し、ならびに呼び出しの数を計算することが出来ます。この例のように、プロファイリングモードで実行時間を決定するためにはSleep() 関数の呼び出しは無効にすることが出来ます。

//--- Sleep はプロファイリング結果に大影響(変化)を与えることがある
if(!IS_PROFILE_MODE) Sleep(100); // プロファイリングモードで Sleep() を無効にする

IS_PROFILE_MODE は従来のモードではゼロに設定される定数値で、コンパイル時にコンパイラによって設定されます。プロファイリングモードでプログラムを起動すると、特別なコンパイルが行われ、IS_PROFILE_MODE はゼロ以外の値に置き換えられます。

IS_DEBUG_MODE 定数はデバッグモードでの MQL5 プログラムの動作をわずかに変更する必要がある場合に役立ちます。例えば、デバッグモードでは、端末ログに追加のデバッグ情報を表示したり、チャートに追加のグラフィックオブジェクトを作成する必要があります。

次の例は、ラベルオブジェクトを作成し、スクリプトの実行モードに応じてその記述や色を設定します。MetaEditor でスクリプトをデバッグモードで実行するには、F5 を押します。端末でブラウザウィンドウからスクリプトを実行すると、オブジェクトラベルの色とテキストが異なります。

例:

//+------------------------------------------------------------------+
//|                                             Check_DEBUG_MODE.mq5 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                       https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link     "https://www.metaquotes.net"
//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数                                          |
//+------------------------------------------------------------------+
void OnStart()
 {
//---
  string label_name="invisible_label";
  if(ObjectFind(0,label_name)<0)
    {
    Print("Object",label_name,"not found. Error code = ",GetLastError());
    //--- ラベルを作成する
    ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);
    //--- X 座標を設定する
    ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
    //--- Y 座標を設定する
    ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
    ResetLastError();
    if(IS_DEBUG_MODE) // デバグモード
       {
        //--- スクリプト実行モードについてのメッセージを表示する
        ObjectSetString(0,label_name,OBJPROP_TEXT,"DEBUG MODE");
        //--- テキストの色を赤にする
        if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrRed))
          Print("Unable to set the color. Error",GetLastError());
       }
    else             // 操作モード
       {
        ObjectSetString(0,label_name,OBJPROP_TEXT,"RELEASE MODE");
        //--- テキストの色を不可視にする
        if(!ObjectSetInteger(0,label_name,OBJPROP_COLOR,CLR_NONE))
          Print("Unable to set the color. Error ",GetLastError());
       }
    ChartRedraw();
    DebugBreak();   // デバッグモードにでは、ここで終了する
    }
 }

クリプトメソッド

ENUM_CRYPT_METHOD 列挙は、データ変換方法を指定するために使用され CryptEncode() 及び CryptDecode() 関数で使用されます。

ENUM_CRYPT_METHOD

定数

説明

CRYPT_BASE64

BASE64

CRYPT_AES128

128ビット(16バイト)キーでの AES 暗号化。

CRYPT_AES256

256 ビット(32 バイト)キーでの AES 暗号化。

CRYPT_DES

56ビット(7バイト)キーでの DES 暗号化。

CRYPT_HASH_SHA1

SHA1 HASH の計算。

CRYPT_HASH_SHA256

SHA256 HASH の計算。

CRYPT_HASH_MD5

MD5 HASH の計算。

CRYPT_ARCH_ZIP

ZIP アーカイブ。

参照

参照

DebugBreakMQL5 プログラム実行プロパティCryptEncode()CryptDecode()