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

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

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

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

解決済

MOL言語 MT4にて '[' - open parenthesis expected のエラーについてわかりません、よろしくお願いします。

Seko1523
Seko1523

総合スコア1

MQL4

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

1回答

0評価

0クリップ

428閲覧

投稿2022/05/26 00:20

初心者です。自分でも調べてみたのですがあと一つエラーが消せません。よろしくお願いします。

エラーメッセージは'[' - open parenthesis expected BB_Entry.mq4 122 22となっていて、
122行近辺は
//売りエントリー
if(BB_UP2 > iClose[2] && BB_UP1<=iClose[1]&&ADX_value<ADX_LINE&&Time_Entry == true&&Position_Count == 0)
{
Ticket = OrderSend(NULL,OP_SELL,Lots,Bid,slipPoint,songiriPoint,rikaku*Point,NULL,0,0,clrRed);

と書きました。122行目の22文字目はiClise[2]の[でしっかり閉じていると思うのですが、、、
分かる方がいましたら、教えてください。よろしくお願いします。

以下、全文です。
//+------------------------------------------------------------------+
//| BB_Entry.mq4 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int Ticket = 0;
input double Lots = 0.1;
input int slip = 10;
input int songiri = 50;
input int rikaku = 50;
input int BB_per = 20;
input int BB_dev = 2;
input int ADX_per = 14;
input double ADX_LINE = 20.0;

int Summer_5ji = 22;
int Summer_9ji = 2;
int Winter_5ji = 23;
int Winter_9ji = 3;

//サマータイム関数
bool SummerTime(){
bool ret = false;

datetime summerStart; //サマータイム開始日
datetime summerEnd; //サマータイム終了日
datetime tc = TimeCurrent();

//サマータイム開始日を3/14の前の日曜日に設定
summerStart = StringToTime(IntegerToString(Year()) + ".03.14");
summerStart = summerStart - TimeDayOfWeek(summerStart) * 24 * 60 * 60;

//サマータイム終了日を11/7の前の日曜日に設定
summerEnd = StringToTime(IntegerToString(Year()) + ".11.07");
summerEnd = summerEnd - TimeDayOfWeek(summerEnd) *24 * 60 * 60;

//現在の時刻がサマータイム開始日と終了日の間であればtrueを返す
if(tc > summerStart && tc < summerEnd) ret = true;
return ret;
}

//ポジションチェック関数
int OpendOrderTotal(){

int count = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderCloseTime() == 0){
if(OrderType() == OP_BUY || OrderType() == OP_SELL){
count++;}
}
}
return count;}

//トレンドが無い時間か聞く関数
int Time_Entry (int Summer_5ji,int Summer_9ji,int Winter_5ji,int Winter_9ji,bool SummerTime)
{
bool ret = false;
if(SummerTime == true)
{
if(Summer_5ji < Hour() || Hour() < Summer_9ji) ret =true;
}
else
{
if(Winter_5ji < Hour() || Hour() < Winter_9ji) ret = true;
}

return ret ;
}

int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---

double BB_UP1 = iBands(NULL,0,BB_per,BB_dev,0,PRICE_CLOSE,MODE_UPPER,1);
double BB_UP2 = iBands(NULL,0,BB_per,BB_dev,0,PRICE_CLOSE,MODE_UPPER,2);
double BB_LO1 = iBands(NULL,0,BB_per,BB_dev,0,PRICE_CLOSE,MODE_LOWER,1);
double BB_LO2 = iBands(NULL,0,BB_per,BB_dev,0,PRICE_CLOSE,MODE_LOWER,2);
double ADX_value = iADX(NULL,0,ADX_per,PRICE_CLOSE,MODE_MAIN,1);
bool SummerTime = SummerTime();
//datetime ima = TimeCurrent();
int Position_Count = OpendOrderTotal();
bool Time_Entry = Time_Entry(Summer_5ji,Summer_9ji,Winter_5ji,Winter_9ji,SummerTime);

//売りエントリー
if(BB_UP2 > iClose[2] && BB_UP1<=iClose[1]&&ADX_value<ADX_LINE&&Time_Entry == true&&Position_Count == 0)
{
Ticket = OrderSend(NULL,OP_SELL,Lots,Bid,slipPoint,songiriPoint,rikaku*Point,NULL,0,0,clrRed);
}

//買いエントリー

if(BB_LO2<iClose[2]&&BB_LO1>=iClose[1]
&&
ADX_value < ADX_LINE
&&
Time_Entry == true
&&
Position_Count == 0)
{
Ticket = OrderSend(NULL,OP_BUY,Lots,Ask,slipPoint,songiriPoint,rikaku*Point,NULL,0,0,clrBlue);
}
}
//+------------------------------------------------------------------+

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MQL4

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