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

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

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

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

1438閲覧

MQL4のコンパイルエラーについて

nisei2

総合スコア19

MQL4

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/08/31 00:12

編集2020/08/31 01:24

プログラム初心者です。
MQL4という言語を使用しています。
コンパイルエラーをなくしていってたのですがどうしても解決できないエラーがあるため助言をお願いします。

発生しているエラーメッセージ
'    ' - undeclared identifier NEW.mq4 59 2
'if' - semicolon expected NEW.mq4 59 8
2 errors, 0 warnings 3 1

該当のソースコード

MQL4

1#property copyright "Copyright 2020, MetaQuotes Software Corp." 2#property link "https://www.mql5.com" 3#property version "1.00" 4#property strict 5 6int OnInit() 7 { 8 return(INIT_SUCCEEDED); 9 } 10 11void OnDeinit(const int reason) 12 { 13 14 } 15 16void OnTick() 17 { 18 19 //前日足の4本値 20 double H1 = iHigh(NULL,0,1); 21 double L1 = iLow(NULL,0,1); 22 double O1 = iOpen(NULL,0,1); 23 double C1 = iClose(NULL,0,1); 24 25 //前々日足の四本値 26 double H2 = iHigh(NULL,0,2); 27 double L2 = iLow(NULL,0,2); 28 double O2 = iOpen(NULL,0,2); 29 double C2 = iClose(NULL,0,2); 30 31 //上昇トレンド 32 double kiriage = H1>H2 && L1>L2 && H2<C1; 33 34 //下降トレンド 35 double kirisage = H1<H2 && L1<L2 && L2>C1; 36 37 //買いの場合の利確 38 double rikakuB = H1-L1; 39 40 //売りの場合の利確 41 double rikakuS = L1-H1; 42 43 int mn = 10; 44 45 //陽線と陰線 46 //double yousen1 = iOpen(Symbol(),0,1) < iOpen(Symbol(),0,1); 47 //double yousen2 = iOpen(Symbol(),0,2) < iOpen(Symbol(),0,2); 48 //double insen1 = iOpen(Symbol(),0,1) > iOpen(Symbol(),0,1); 49 //double insen2 = iOpen(Symbol(),0,2) > iOpen(Symbol(),0,2); 50 if(kiriage && OrdersTotal() == 0)//買いの条件とポジション制限 51 { 52 int Ticket = OrderSend(NULL,OP_BUY,0.01,Ask,10,L1,Ask+rikakuB*Point,NULL,mn,1,Red);//購入 53 } 54 55      if(kirisage && OrdersTotal() == 0)//売りの条件とポジション制限 56 { 57 int Ticket = OrderSend(NULL,OP_SELL,0.01,Bid,10,H1,Bid+rikakuS*Point,NULL,mn,1,Blue);//売却 58 } 59 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードがMarkdownで書かれていない(```で囲まれていない)ので取り除かれていますが、エラーメッセージからすると、59行目のどこか(おそらく先頭付近)に、全角空白が4つ入っています。全角空白はインデント(字下げ)の目的では使えないので削除し、字下げが必要なら半角空白やタブなどで書いてください。

'    ' - undeclared identifier NEW.mq4 59 2

投稿2020/08/31 00:20

編集2020/08/31 00:21
Daregada

総合スコア11990

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

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

nisei2

2020/08/31 00:27

ありがとうございます。 とても助かりました。
Daregada

2020/08/31 00:30

解決してよかったですね。今後質問するときの練習として、質問文を再編集し、「該当のソースコード」以下に書いてあるソースコードの先頭に「```MQL4」だけの行を、末尾の}の直後に「```」だけの行を書いてください。
nisei2

2020/08/31 01:02

こういうことですか?
Daregada

2020/08/31 01:08

惜しい。記号は「'」(引用符)ではなくて、日本語キーボードならShift-@キーで入力できる「`」(バッククォート)です。 それから、終わりの記号「```」は「}」の行の直後に独立した行として書いてください。 これで、ソースコードの表示の見た目が大きく変わります。
nisei2

2020/08/31 01:25

ありがとうございます。 見た目がすっきりしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問