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

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

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

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

Q&A

1回答

1000閲覧

【初心者】MQL4コンパイルエラー 5箇所を解決したいです

Ryo1203

総合スコア0

MQL4

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

0グッド

1クリップ

投稿2023/02/27 14:59

実現したいこと

・コンパイルエラーを解決して、自作インジケーターを使用したい

前提

MQL4で初めてコードを書いた初心者です。
一通りコードを書いて、コンパイルしたのですが、コンパイルエラーが5箇所表示されました。
ネットで調べて、該当しそうな対処方法を行いましたが、コンパイルエラー表示が消えません。

発生している問題・エラーメッセージ

')' - unexpected end of program Ichimoku_Cross.mq4 54 96 '{' - unbalanced parentheses Ichimoku_Cross.mq4 38 13 OnCalculate function not found in custom indicator 1 1 'Shift' - function not defined Ichimoku_Cross.mq4 31 25 'Shift' - function not defined Ichimoku_Cross.mq4 32 25

該当のソースコード

MQL4

1//+------------------------------------------------------------------+ 2//| Ichimoku_Cross.mq4 | 3//| WordBox | 4//| | 5//+------------------------------------------------------------------+ 6#property indicator_chart_window 7#property indicator_buffers 2 8#property indicator_color1 DodgerBlue 9#property indicator_color2 Red 10 11input int ArrowUpColor = DodgerBlue; 12input int ArrowDnColor = Red; 13 14double ichimoku_tenkan[ ]; 15double ichimoku_kijun[ ]; 16double ichimoku_senkouA[ ]; 17double ichimoku_senkouB[ ]; 18double ichimoku_chikou[ ]; 19 20double arrowUpBuffer[ ]; 21double arrowDnBuffer[ ]; 22 23int init() { 24 SetIndexBuffer(0, arrowUpBuffer, INDICATOR_DATA); 25 SetIndexBuffer(1, arrowDnBuffer, INDICATOR_DATA); 26 SetIndexStyle(0, DRAW_ARROW, EMPTY, 3); 27 SetIndexArrow(0, 233); 28 SetIndexStyle(1, DRAW_ARROW, EMPTY, 3); 29 SetIndexArrow(1, 234); 30 IndicatorShortName("Ichimoku with Arrows"); 31 SetIndexDrawBegin(0, Shift()+2); 32 SetIndexDrawBegin(1, Shift()+2); 33 SetIndexEmptyValue(0, 0.0); 34 SetIndexEmptyValue(1, 0.0); 35 return(0); 36} 37 38int start() { 39 int limit = Bars - IndicatorCounted(); 40 for(int i = limit; i >= 0; i--) { 41 ichimoku_tenkan[i] = iCustom(_Symbol, 0, "Ichimoku", 9, 26, 52, 1, 1, i); 42 ichimoku_kijun[i] = iCustom(_Symbol, 0, "Ichimoku", 9, 26, 52, 1, 1, i); 43 ichimoku_senkouA[i] = iCustom(_Symbol, 0, "Ichimoku", 9, 26, 52, 1, 1, i); 44 ichimoku_senkouB[i] = iCustom(_Symbol, 0, "Ichimoku", 9, 26, 52, 1, 2, i); 45 ichimoku_chikou[i] = iCustom(_Symbol, 0, "Ichimoku", 9, 26, 52, 1, 3, i); 46 47 if(ichimoku_chikou[i] > iClose(NULL, 0, i) && ichimoku_chikou[i-1] <= iClose(NULL, 0, i-1) && ichimoku_tenkan[i] < ichimoku_kijun[i] && ichimoku_tenkan[i-1] >= ichimoku_kijun[i-1]) { 48 arrowUpBuffer[i] = iHigh(NULL, 0, i); 49 arrowDnBuffer[i] = 0.0; 50 SetIndexArrow(0, 233); 51 SetIndexBuffer(0, arrowUpBuffer); 52 PlotIndexSetString(0, PLOT_ARROW, "<---"); 53 PlotIndexSetInteger(0, PLOT_ARROW, ArrowUpColor); 54 } else if(ichimoku_chikou[i] < iClose(NULL, 0, i) && ichimoku_chikou[i-1] >= iClose(NULL,) 55 56

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

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

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

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

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

YT0014

2023/02/28 01:36

>ネットで調べて、該当しそうな対処方法を行いました 行った対処方法を、質問文を編集して、ご提示ください。
guest

回答1

0

3か月以上経っても回答がないので、MQL4は私も経験が非常に浅いのですが、回答を試みました。

とりあえず、コンパイルエラーを消して質問主様の示す条件で矢印が表示されるようにしてみました。

但し、
SetIndexDrawBegin(0, Shift()+2);
SetIndexDrawBegin(1, Shift()+2);
という部分が何を意図しておられるか分からないので、飛ばしました(この部分について、どなたか分かる方がいらっしゃれば回答して頂ければありがたく思います)。

MQL4

1//+------------------------------------------------------------------+ 2//| Ichimoku_Cross.mq4 | 3//| WordBox | 4//| | 5//+------------------------------------------------------------------+ 6#property strict 7#property indicator_chart_window 8#property indicator_buffers 2 9#property indicator_color1 DodgerBlue 10#property indicator_color2 Red 11 12//input int ArrowUpColor = DodgerBlue; 13//input int ArrowDnColor = Red; 14 15//double ichimoku_tenkan[ ]; 16//double ichimoku_kijun[ ]; 17//double ichimoku_senkouA[ ]; 18//double ichimoku_senkouB[ ]; 19//double ichimoku_chikou[ ]; 20 21double arrowUpBuffer[ ]; 22double arrowDnBuffer[ ]; 23 24int init() { 25 SetIndexBuffer(0, arrowUpBuffer, INDICATOR_DATA); 26 SetIndexBuffer(1, arrowDnBuffer, INDICATOR_DATA); 27 SetIndexStyle(0, DRAW_ARROW, EMPTY, 1); 28 SetIndexArrow(0, 233); 29 SetIndexStyle(1, DRAW_ARROW, EMPTY, 1); 30 SetIndexArrow(1, 234); 31 IndicatorShortName("Ichimoku with Arrows"); 32// SetIndexDrawBegin(0, Shift()+2); // この部分は理解していない。 33// SetIndexDrawBegin(1, Shift()+2); // この部分は理解していない。 34 SetIndexEmptyValue(0, 0.0); 35 SetIndexEmptyValue(1, 0.0); 36 return(0); 37} 38int start(){ 39 int limit = Bars - IndicatorCounted(); 40 for(int i = limit; i >= 0; i--) { 41 double ichimoku_tenkan = iCustom(NULL,0,"Ichimoku",9,26,52,0,i); 42 double ichimoku_tenkan_1 = iCustom(NULL,0,"Ichimoku",9,26,52,0,i-1); 43 double ichimoku_kijun = iCustom(NULL,0,"Ichimoku",9,26,52,1,i); 44 double ichimoku_kijun_1 = iCustom(NULL,0,"Ichimoku",9,26,52,1,i-1); 45 double ichimoku_senkou_A = iCustom(NULL,0,"Ichimoku",9,26,52,2,i); 46 double ichimoku_senkou_B = iCustom(NULL,0,"Ichimoku",9,26,52,3,i); 47 double ichimoku_chikou = iIchimoku(NULL,0,9,26,52,MODE_CHIKOUSPAN,i); //遅行スパンはiCustomを用いるとバグになる。 48 double ichimoku_chikou_1 = iIchimoku(NULL,0,9,26,52,MODE_CHIKOUSPAN,i-1);//遅行スパンはiCustomを用いるとバグになる。 49 50// if(ichimoku_chikou[i] > iClose(NULL, 0, i) && ichimoku_chikou[i-1] <= iClose(NULL, 0, i-1) && ichimoku_tenkan[i] < ichimoku_kijun[i] && ichimoku_tenkan[i-1] >= ichimoku_kijun[i-1]) { 51// arrowUpBuffer[i] = iHigh(NULL, 0, i); 52// arrowDnBuffer[i] = 0.0; 53 54 if(ichimoku_chikou > iClose(NULL, 0, i) && ichimoku_chikou_1 <= iClose(NULL, 0, i-1) && ichimoku_tenkan < ichimoku_kijun && ichimoku_tenkan_1 >= ichimoku_kijun_1){ 55 arrowUpBuffer[i] = iLow(NULL, 0, i) - Point*100; 56// SetIndexArrow(0, 233); 57// SetIndexBuffer(0, arrowUpBuffer); 58// PlotIndexSetString(0, PLOT_LABEL, "<---"); 59// PlotIndexSetInteger(0, PLOT_ARROW, ArrowUpColor); 60 } else if(ichimoku_chikou < iClose(NULL, 0, i) && ichimoku_chikou_1 >= iClose(NULL, 0, i-1) && ichimoku_tenkan > ichimoku_kijun && ichimoku_tenkan_1 <= ichimoku_kijun_1 ) { 61 arrowDnBuffer[i] = iHigh(NULL, 0, i) + Point*100; 62 } 63 } 64 return(0); 65} 66

投稿2023/06/19 04:28

Kaz_H

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問