質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

解決済

2回答

1578閲覧

【EA(MQL4)のコンパイルエラーを解決したい】

m-nm0n

総合スコア15

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2022/08/03 13:33

【EA(MQL4)のエラーを解決したい】

EAのコーディング中に、
以下の部分でエラーが出ました。

【コード】

MQL4

1//ボリンジャーバンドの値を取得 2double BB2UP = iBands(NULL,0,BB_KIKAN,2,0,PRICE_CLOSE,MODE_UPPER,0); //2σの上側 3double BB2LO = iBands(NULL,0,BB_KIKAN,2,0,PRICE_CLOSE,MODE_LOWER,0); //2σの下側 4 5double SMA20 = iMA(NULL,0,BB_KIKAN,0,MODE_SMA,PRICE_CLOSE,0); //中央のSMA 6 7input int plus_alpha_percentage = 10; //超過割合(%) 8double BEBB2 = BB2LO - (SMA20 - BB2LO) * plus_alpha_percentage / 100; //買い基準ライン 9double AVBB2 = BB2UP + (BB2UP - SMA20) * plus_alpha_percentage / 100; //売り基準ライン 10 11double return_width_up = (BB2LO-BEBB2)/2; //買いライン 12double return_width_down = (AVBB2-BB2UP)/2; //売りライン

【エラー内容】

MQL4

1' SMA20' - undeclared identifier 2result of expression not used 3'AVBB2' - undeclared identifier

どれだけ調べても解決できませんでした。
どうか、ご教授頂けますと本当に助かります。

よろしくお願い致しますm(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu-ima

2022/08/03 18:10

宣言/定義する前に参照/使用しているのではないですか? コードの全体を見ないと、提示されているコードだけでは判断できません。
guest

回答2

0

補足、
インプット変数も元のパラメーター設定と思われる状態に
してみました。 同じく、正常に動作しています。

投稿2022/08/11 23:21

Ruby

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

私がテストした限り、エラーは出ずに正常に機能しています。
ただし、期間は14を設定しただけで、他は全く同じです。

多分、変数が正しく設定されていないのでは、?
実際のコードは、以下の通りです。

input int BB_KIKAN = 14; //期間
input int plus_alpha_percentage = 10; //超過割合(%)

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping

//---
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[])
{
//---
double BB2UP = iBands(NULL,0, BB_KIKAN,2,0,PRICE_CLOSE,MODE_UPPER,0); //2σの上側
double BB2LO = iBands(NULL,0, BB_KIKAN,2,0,PRICE_CLOSE,MODE_LOWER,0); //2σの下側

double SMA20 = iMA(NULL,0, BB_KIKAN,0,MODE_SMA,PRICE_CLOSE,0); //中央のSMA

double BEBB2 = BB2LO - (SMA20 - BB2LO) * plus_alpha_percentage / 100; //買い基準ライン
double AVBB2 = BB2UP + (BB2UP - SMA20) * plus_alpha_percentage / 100; //売り基準ライン

double return_width_up = (BB2LO-BEBB2)/2; //買いライン
double return_width_down = (AVBB2-BB2UP)/2; //売りライン

//--- return value of prev_calculated for next call
Comment( DoubleToString( BEBB2, 3) + " " + DoubleToString( AVBB2, 3));

return(rates_total);
}

投稿2022/08/11 23:19

Ruby

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問