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

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

新規登録して質問してみよう
ただいま回答率
85.48%
バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

MQL

MQL(Meta Quotes Language)は、Meta Trader4(MT4)で用いられるプログラミング用語です。MQLによりEAやインジケーターの作成が可能。C言語で書かれているため、C言語の知識があれば簡単に扱うことができます。

Q&A

解決済

1回答

734閲覧

サインツールを作成していますがエラー解除ができません

yasashii

総合スコア1

バイナリ

バイナリは、「0」と「1」だけで表現されている2進数のデータ形式。または、テキスト以外の情報でデータが記述されているファイルを指します。コンピューター内の処理は全て2進数で表記されています。

MQL

MQL(Meta Quotes Language)は、Meta Trader4(MT4)で用いられるプログラミング用語です。MQLによりEAやインジケーターの作成が可能。C言語で書かれているため、C言語の知識があれば簡単に扱うことができます。

0グッド

0クリップ

投稿2022/03/31 20:28

編集2022/04/01 06:14

エラー内容を検索して括弧の数や位置が間違ってるところまではわかるのですがどうしても間違っている場所がわかりません。
よろしくお願いします。

こちらがエラーメッセージになります。

'}' - unexpected end of program PDM.mq4 260 7
'{' - unbalanced parentheses PDM.mq4 97 1
OnCalculate function not found in custom indicator 1 1
3 errors, 0 warnings 4 1

`#property copyright "" #property version "1.00" #property strict #property indicator_chart_window //メインウィンドウに表示する #property indicator_buffers 4 //インジケータのバッファを2つ用意 #property indicator_color1 Red //1つ目のインジケータを赤色に設定 #property indicator_color2 Blue //2つ目のインジケータを青色に設定 #property indicator_color3 Yellow //判定 #property indicator_color4 Yellow //判定 #property indicator_width1 2 //1つ目のインジケータの太さを2に設定 #property indicator_width2 2 //2つ目のインジケータの太さを2に設定 #property indicator_width3 2 //3つ目のインジケータの太さを2に設定 #property indicator_width4 2 //4つ目のインジケータの太さを2に設定 //バッファー用意※バッファーは≪値を格納する箱≫ 的な認識でOK double ArrowUp[]; //上矢印用バッファー double ArrowDown[]; //下矢印用バッファー double maru[]; //マル double batu[]; //バツ int totalCnt = 0; //トレード回数 int winCnt = 0; //合計勝利回数 int loseCnt = 0; //合計敗北回数 double endPrice = 0; //終値の格納 bool isJudge = false; //次足判定制御用 bool upEntryFlag = false; //勝利判定フラグ bool downEntryFlag = false; //敗北判定フラグ //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit(){ //初期化関数---主に初期条件やチャート更新時に決めておく内容を書く項目 //下矢印 SetIndexBuffer(0,ArrowDown); //バッファを用意 SetIndexStyle(0,DRAW_ARROW); //矢印を出す SetIndexArrow(0,234); //矢印の種類設定 調べると各矢印形等の番号が出る SetIndexEmptyValue(0,0.0); SetIndexLabel(0,"arrow_Down");//ラベル(名前)を決める //上矢印 SetIndexBuffer(1,ArrowUp); //バッファを用意 SetIndexStyle(1,DRAW_ARROW); //矢印を出す SetIndexArrow(1,233); //矢印の種類設定 調べると各矢印形等の番号が出る SetIndexEmptyValue(1,0.0); SetIndexLabel(1,"arrow_Up"); //ラベル(名前)を決める //--- SetIndexBuffer(2,maru); //maruを紐付け SetIndexBuffer(3,batu); //batuを紐付け SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID); //インデックス2に矢印設定 SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID); //インデックス3に矢印設定 SetIndexArrow(2,161); //インデックス2にマル SetIndexArrow(3,251); //インデックス3にバツ return(INIT_SUCCEEDED); } void OnDeinit(const int reason) {ObjectsDeleteAll(); //オブジェクトを全て削除 } //+------------------------------------------------------------------+ //| 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 limit = rates_total - prev_calculated; int n = 2; //array out of range対処 if (limit > 1) {limit = rates_total - n - 1;} // <<アロー用forループ開始>>//////////////////////////////// for(int i=limit; i>=0; i--){//for開始 if(i+1 >= Bars-1){continue;} int Candle_Minutes = (int)TimeMinute(iTime(NULL,0,i));//分数を取得する関数 if(Period()==PERIOD_M1){ // ※1 表示している時間足が1分足の時 if(Candle_Minutes==00) // ※2 取得した分数が00分の時 //チャート更新時の勝率計算バグを防ぐ処理 if(limit ==Bars -1) { totalcnt =0; wincnt =0; losecnt =0; totalcnt =0; } { // >>> アローを出す条件記開始 //【RSI値取得】 /////////////////////////////////////////// double RsiCL =iRSI(NULL,0,7,PRICE_CLOSE,i); //現行足RSI // <<アロー条件定義>> ///////////////////////////////////// if(RsiCL>=70){ //条件① ArrowUp[i] =0; //0に返す ArrowDown[i]=High[i]+10*Point; //下矢印を高値に表示 downEntryFlag = true; //エントリー確定時にフラグを立てる endPrice = iClose(NULL,0,i) //エントリー確定時の終値を格納 } else if(RsiCL<=30){ //条件② ArrowUp[i]=Low[i]-10*Point; //上矢印を安値に表示 ArrowDown[i]=0; //0に返す upEntryFlag = true; //エントリー確定時にフラグを立てる endPrice = iClose(NULL,0,i) //エントリー確定時の終値を格納 //勝利判定 if(upEntryFlag) { //isJudgeがfalseの場合、一回処理を飛ばす(次足で判定サインを出したいため) if(isJudge) { //前足の終値よりも次足の終値の方が大きかった場合 if(endPrice < iClose(NULL,0,i-2)) { maru[i-2] = iLow(NULL,0,i-2)-10*Point; //マル印を安値の1pips下に出す upEntryFlag = false; winCnt++; } else { batu[i-2] = iLow(NULL,0,i-2)-10*Point; //バツ印を安値の1pips下に出す upEntryFlag =false; loseCnt++; } isJudge = false; } else { isJudge = true; } } if(downEntryFlag) { //isJudgeがfalseの場合、一回処理を飛ばす(次足で判定を出したい為) if(isJudge) {   //前足の終値よりも次足の終値の方が小さかった場合   if(endPrise > iClose(NULL,0,i-2)) { //マル印を高値の1pips上に出す maru[i-2] = iHigh(NULL,0,i-2)+10*Point; downEntryFlag = false; winCnt++; } else { //バツ印を高値の1pips上に出す batu[i-2] = iHigh(NULL,0,i-2)+10*Point; downEntryFlag = false; loseCnt++; } isJudge = false; } else { isJudge = true; } } } } WinRate(); //勝率計算の関数 //---return value of prev_calculated for next call return(rates_total); } { // } // else{ // ArrowDown[i]=0; //0に返す // ArrowUp[i] =0; //0に返す // } // } // }} // >>> アローを出す条件終了 // <<アロー用forループ終了>> ///////////////////////// //--- return value of prev_calculated for next call // return(rates_total); //} // 勝率計算関数     void WinRate()     {     //勝率オブジェクト作成     ObjectCreate("obj_judgeMonitor",OBJ_LABEL,0,0,0); //勝率計算のオブジェクト作成     ObjectSet("obj_judgeMonitor",OBJPROP_CORNER,CORNER_LEFT_UPPER);//左上に表示 ObjectSet("obj_judgeMonitor",OBJPROP_XDISTANCE,10);//X軸サイズ10 ObjectSet("obj_judgeMonitor",OBJPROP_YDISTANCE,20);//Y軸サイズ20 //勝率計算 totalCnt = winCnt + loseCnt; //トータル double rate = MathRound((double)winCnt / totalCnt * 100); //100%の割合を計算 ObjectSet("obj_judgeMonitor","判定;"+(string)totalCnt+"勝ち;"+(string)winCnt+"勝率;"+(string)rate+"%",11, "メイリオ", clrWhite);//勝率の表示 } } }

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

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

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

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

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

y_waiwai

2022/03/31 22:00

エラーメッセージを提示しよう
yasashii

2022/03/31 23:03

エラーメッセージ追加いたしました
guest

回答1

0

ベストアンサー

カッコの数があってない、というエラーです

投稿2022/04/01 04:18

y_waiwai

総合スコア87749

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問