【MQL4定数】ギャンラインのトレンド方向の定数(ENUM_GANN_DIRECTION​)

【辞書】MQLリファレンス

ギャンラインのトレンド方向の定数

ギャンラインのトレンド方向の定数は、ギャンラインのトレンド方向を設定するときに使われます。

トレンド方向とは、上昇トレンドか下降トレンドかのどちらかです。

設定するには、ObjectSetInteger関数で設定します。

簡単に関数の説明です。

  • ObjectSetInteger関数:オブジェクトの状態を設定する

 

それぞれ、OBJPROP_DIRECTIONの設定値として、ギャンラインのトレンド方向の定数が使われます。

 

ギャンラインのトレンド方向の定数(ENUM_GANN_DIRECTION)

定数説明
GANN_UP_TREND上昇トレンドに設定
GANN_DOWN_TREND下降トレンドに設定

 

ギャンラインのトレンド方向の定数の使い方

主に、ObjectSetInteger関数で使用されます。

それぞれ、OBJPROP_DIRECTIONの設定値として、ギャンラインのトレンドの方向を設定します。

上記の定数を入力しましょう。

すると、その定数に対応したトレンド方向が設定されます。

例えば、以下のように使用します。

  //ObjectSetInteger関数
  //ギャンラインを上昇トレンドに設定する
   bool objectSetInteger = ObjectSetInteger(ChartID(), "自動売買を作ろう!", OBJPROP_DIRECTION, GANN_UP_TREND);

 

返り値はbool型です。

成功すればtrue、失敗すればfalseが返ってきます。

 

サンプルプログラム

以下は、ギャンラインを作成し、トレンド方向を設定するサンプルプログラムです。

//+------------------------------------------------------------------+
//| スクリプト:ギャンラインのトレンド方向設定サンプル
//+------------------------------------------------------------------+
void OnStart()
{
   string objName = "GannLine_Sample";

   //--- 既に同名オブジェクトがあれば削除
   if(ObjectFind(0, objName) >= 0)
      ObjectDelete(0, objName);

   //--- ギャンラインを作成する
   datetime time1 = iTime(Symbol(), Period(), 50);
   double   price1 = iLow(Symbol(), Period(), 50);
   datetime time2 = iTime(Symbol(), Period(), 0);

   bool created = ObjectCreate(0, objName, OBJ_GANNLINE, 0, time1, price1, time2, 0);

   if(!created)
   {
      Print("ギャンラインの作成に失敗しました。エラー: ", GetLastError());
      return;
   }

   //--- ギャンラインのスケールを設定
   ObjectSetDouble(0, objName, OBJPROP_SCALE, 1.0);

   //--- トレンド方向を上昇トレンドに設定する
   bool result = ObjectSetInteger(0, objName, OBJPROP_DIRECTION, GANN_UP_TREND);

   if(result)
      Print("トレンド方向を上昇トレンド(GANN_UP_TREND)に設定しました。");
   else
      Print("トレンド方向の設定に失敗しました。エラー: ", GetLastError());

   //--- 下降トレンドに変更する場合
   // ObjectSetInteger(0, objName, OBJPROP_DIRECTION, GANN_DOWN_TREND);

   //--- 線の色を設定
   ObjectSetInteger(0, objName, OBJPROP_COLOR, clrBlue);

   //--- チャートを再描画
   ChartRedraw(0);

   Print("ギャンラインのサンプルプログラムが完了しました。");
}

 

上記のサンプルでは、ObjectCreate関数でギャンラインを作成した後、ObjectSetInteger関数でOBJPROP_DIRECTIONにGANN_UP_TRENDを設定しています。

GANN_DOWN_TRENDに変更すれば、下降トレンドのギャンラインになります。

 

【補足】ギャンラインのトレンド方向の定数の列挙型(ENUM_GANN_DIRECTION)

ギャンラインのトレンド方向の定数は、ENUM_GANN_DIRECTIONという列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_GANN_DIRECTION gannDirection = GANN_UP_TREND;

上記のようにプログラムすると、gannDirection変数に GANN_UP_TRENDの数値が代入されます。