任意の本数を引けるチャネルラインCode

下方向に任意の本数の平行線を描画できるようにコードを書き直します。ここでは、関数に「平行線の本数」を指定するパラメータを追加し、その本数だけ下方向に平行線を描画するようにします。

以下のコードでは、中央ラインを基準にして、指定された本数分の平行線を下方向に引くようになっています。

//+------------------------------------------------------------------+
//| 任意の本数だけ下方向に平行ラインを引く関数                       |
//+------------------------------------------------------------------+
void CreateLowerParallelLines(string name, datetime time1, double price1, datetime time2, double price2, double distance, int lineCount) {
   // 中央ラインを作成
   string centerLineName = name + "_Center";
   if (!ObjectCreate(0, centerLineName, OBJ_TREND, 0, time1, price1, time2, price2)) {
      Print("中央ライン作成失敗: ", GetLastError());
      return;
   }
   ObjectSetInteger(0, centerLineName, OBJPROP_COLOR, clrGreen);
   ObjectSetInteger(0, centerLineName, OBJPROP_WIDTH, 2);

   // 下方向に任意の本数の平行ラインを作成
   for (int i = 1; i <= lineCount; i++) {
      string lowerLineName = name + "_Lower_" + IntegerToString(i);
      if (!ObjectCreate(0, lowerLineName, OBJ_TREND, 0, time1, price1 - (distance * i), time2, price2 - (distance * i))) {
         Print("下ライン " + IntegerToString(i) + " 作成失敗: ", GetLastError());
         return;
      }
      ObjectSetInteger(0, lowerLineName, OBJPROP_COLOR, clrRed);
      ObjectSetInteger(0, lowerLineName, OBJPROP_WIDTH, 1);
   }

   Print("下方向に", lineCount, "本の平行ライン作成成功");
}

//+------------------------------------------------------------------+
//| 下方向の平行ラインテスト                                        |
//+------------------------------------------------------------------+
void OnStart() {
   // 開始と終了の座標を指定(例: 日時と価格)
   datetime time1 = iTime(NULL, 0, 20);
   double price1 = iClose(NULL, 0, 20);
   datetime time2 = iTime(NULL, 0, 0);
   double price2 = iClose(NULL, 0, 0);

   // ライン間の間隔(価格差)
   double distance = 0.001;

   // 描画する平行ラインの本数
   int lineCount = 5; // 任意の本数を指定

   // 下方向の平行ラインを作成
   CreateLowerParallelLines("MyChannel", time1, price1, time2, price2, distance, lineCount);
}

コードのポイント

  1. CreateLowerParallelLines関数:
  • パラメータにlineCountを追加し、指定された本数だけ平行ラインを描画します。
  • distanceで設定された間隔を基に、下方向に平行ラインを1本ずつ追加していきます。
  1. 中央ラインの作成:
  • 中央ラインは基準ラインとして描画し、これを基にして下方向の平行線を作成します。
  1. 平行ラインの数を指定:
  • lineCountを任意の数に設定することで、必要な本数だけ平行ラインを作成可能です。

このコードで、任意の本数の平行ラインが下方向に描画されます。

タイトルとURLをコピーしました