MQL4での足し算の方法を教えてください

2023/05/13 18:24
144

どなたかお解りになる方、教えてください。
下記のようなコードで、答えが「2」になる様にしたいのですが、答えが「1」にしかなりません。数字を文字列としか判断してないためでしょうか?どうしたらいいのか全く分からず途方に暮れていますので、お力添え頂ければ嬉しいです。

#property strict
#property indicator_chart_window
string EURGBP_Symbol = “EURGBP”; //通貨ペア
string EURUSD_Symbol = “EURUSD”; //通貨ペア

int OnInit()
{
IndicatorDigits(Digits);
return(INIT_SUCCEEDED);
}

int deinit()
{
ObjectDelete(“signals”);
return(0);
}

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[])

{

double EURGBP_0,EURGBP_1,EURUSD_0,EURUSD_1;
int limit = Bars-IndicatorCounted();
for(int i = limit - 1; i >= 0; i–)

{
EURGBP_0 = iMA(EURGBP_Symbol,0,20,0,0,0,0);
EURGBP_1 = iMA(EURGBP_Symbol,0,20,0,0,0,1);
EURUSD_0 = iMA(EURUSD_Symbol,0,20,0,0,0,0);
EURUSD_1 = iMA(EURUSD_Symbol,0,20,0,0,0,1);

{
int EUR = 0;
int EUR2 = 0;
int X =0;

if(EURGBP_0 > EURGBP_1) //上昇の時は1
{
EUR = 1;
}

else
if(
(EURUSD_0 > EURUSD_1)//上昇の時は1
)
{
EUR2 = 1;
}

   X = EUR+EUR2;
 
   ObjectCreate("signals",OBJ_LABEL,0,0,0); 
   ObjectSet("signals",OBJPROP_CORNER,0);
   ObjectSet("signals",OBJPROP_XDISTANCE,0);   
   ObjectSet("signals",OBJPROP_YDISTANCE,0); 
   ObjectSetText("signals",IntegerToString(X),20,"Meiryo UI Bold", Blue); 

}

}

return(0);
}

コメント

GogoJungle
2023/05/16 21:00

誠に恐れ入りますが、個別のMQL言語のご質問につきましては、お答えいたしかねます。

弊社エンジニアより
コード内部の iMA()関数 が気になりました。
関数の最後に引数が0,1と固定されているため
現在のローソク足と1つ前のローソク足の値を返しております。

そのためEURGBP_0, EURGBP_1, EURUSD_0, EURUSD_1
すべて同じ値で処理されているかと存じます。

iMA()関数の最後の引数をループ変数 “i” を使用することで解決する可能性がございます。
詳細に関しましてはロジックなどにも依存しますため、回答は控えさせていただきます。

何卒宜しくお願い申し上げます。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。