どなたか教えてもらえないでしょうか?

 
EA初心者です。
自作したインジケーターを使ってEAに条件として組み込みたいのですが値が取得できず困っています。

一応インジケーターの仕様は、移動平均線の傾きを計算しサブウインドウにヒストグラムとして表示するというものです。
そして、この値をEAで取得したいのですが、現在以下の2147483647.0という異常値とエラーが取得されてしまっています。
これを正しい値を取得するためにはどうすればいいかわかる方いれば教えてもらえないでしょうか?

補足説明として、バッファはEAもインジケーターも共に0を指定しています。インジケーターでパラメーターも特に設定していません。
自分で何度も見直したり、考えてもわかりませんでした。
どなたかお力をお借りできないでしょうか?
宜しくお願い致します。

USDJPY,H1: Current maAngle: 2147483647.0 | Time: 2006.01.11 05:25
USDJPY,H1: Error: Invalid maAngle value. Error Code: 0


===========================
EAのOnTick内に書いているコードです。

// MA Angle Histogramから角度を取得
   double maAngle = iCustom(NULL, 0, "MA Angle Histogram", 0, 0);

   if(maAngle == EMPTY_VALUE || maAngle == 2147483647.0)
     {
      Print("Error: Invalid maAngle value. Error Code: ", GetLastError());
     }
   else
     {
      Print("Current maAngle: ", maAngle, " | Time: ", TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES));
     }


// 有効な値を取得した場合、ログに出力
   Print("Current maAngle: ", maAngle, " | Time: ", TimeToStr(TimeCurrent()));

===============================================
ここから下がインジケーター側のコードです。

#property description "MA Angle Histogram"
#property strict

#property indicator_separate_window
#property indicator_minimum    -50
#property indicator_maximum    50
#property indicator_buffers    1
#property indicator_color1     DodgerBlue
#property indicator_width1     3       // ヒストグラムの太さを3に設定

//--- buffers
double AngleBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   string short_name;

//--- バッファの設定
   SetIndexBuffer(0, AngleBuffer);
   ArraySetAsSeries(AngleBuffer, true);  // 最新バーが最初に来るように設定
   SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 3); // ヒストグラムの幅を3に設定

// 名前の設定
   short_name="MA Angle (80)";
   IndicatorShortName(short_name);
   SetIndexLabel(0, short_name); // バッファの名前をセット

// レベルの設定
   SetLevelValue(0, 10);
   SetLevelValue(1, -10);
   SetLevelStyle(STYLE_DASH, 1, White); // 3つ目の引数で色を指定

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i, limit;
   double MA_Current, MA_Past;
   double deltaY, deltaX, angle;
   const int MA_Period = 80; // 固定値として定義

// バー数が十分でない場合は終了
   if(rates_total < MA_Period + 80)
     {
      Print("Not enough data for calculation.");
      return(0);
     }

// 初回計算時は全バーを処理、それ以降は更新バーのみを処理
   if(prev_calculated == 0)
      limit = rates_total - MA_Period;
   else
      limit = rates_total - prev_calculated;

// MAの角度を計算
   for(i = limit - 1; i >= 0; i--)
     {
      // 現在の80MAを取得
      MA_Current = iMA(NULL, 0, 80, 0, MODE_LWMA, PRICE_CLOSE, i + MA_Period);

      // 80本前の80MAを取得
      MA_Past = iMA(NULL, 0, 80, 0, MODE_LWMA, PRICE_CLOSE, i);

      // 無効な値チェック
      if(MA_Current == EMPTY_VALUE || MA_Past == EMPTY_VALUE)
        {
         Print("Invalid MA value at i=", i, " MA_Current=", MA_Current, " MA_Past=", MA_Past);
         AngleBuffer[i] = 0;  // 無効値の場合はゼロを格納
         continue;
        }

      // 高さと底辺を計算
      deltaY = MA_Current - MA_Past;
      deltaX = 80;

      // 角度を計算(度数に変換)
      angle = -MathArctan(deltaY / deltaX) * 180 / 3.14159;

      // 角度をヒストグラムに表示
      AngleBuffer[i] = angle * 15;

      // バッファ値を出力
      Print("Buffer value at i=", i, ": ", AngleBuffer[i], " MA_Current=", MA_Current, " MA_Past=", MA_Past);

     }

   return(rates_total);
  }
//+------------------------------------------------------------------+
 

昨夜試したプログラムとどこが違うのかよく分かりませんが、 全て正常に動作しています。


※説明とプログラムを一緒にしないでください。投稿後確認し、間違いがあれば右下の「編集 (edit)」で修正してください。

 
Shino Unada #:

昨夜試したプログラムとどこが違うのかよく分かりませんが、 全て正常に動作しています。


※説明とプログラムを一緒にしないでください。投稿後確認し、間違いがあれば右下の「編集 (edit)」で修正してください。


失礼致しました!ご確認頂いたようでありがとうございます!

解決することができました!

この度は助言をいただきましてありがとうございました!大変助かりました!本当にありがとうございます!