MQL5の初心者の質問です。プロは素通りしない。 - ページ 5

 

あるインジケータのバッファをチャート上に描画 せず、その値をインジケータの「データ ウィンドウ」に表示させるにはどうしたらいいですか?

そうしています。

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

int OnInit ()
{
  PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE);
}


が、それでもインジケータはバッファを描画します。

 
_o0O:

あるインジケータのバッファをチャート上に描画 せず、その値をインジケータの「データ ウィンドウ」に表示させるにはどうしたらいいですか?

そうしています。


が、それでもインジケータはバッファを描画します。

を取得し、これを実行します。

#property indicator_label1  "Buff"
#property indicator_type1   DRAW_NONE

は必要ありません。

そして不思議なことに、このバッファは#property indicator_plotsで指定する必要があります...。論理的には、#property indicator_buffers で指定されており、描画の必要がないため、そうなってはいけないのですが。


しかし、データウィンドウのバッファ名が正しく表示されない。PlotIndexSetString(0, PLOT_LABEL, "Buff") で指定しても解決しない。とにかく、助けてください。

 

こんにちは。

mql5の最初の一歩を踏み出したところです。RSI M5とRSI M15の指標を元にEAを生成して みました。両方のシグナルを同時にトリガーして、取引を成立させる方法を教えてください。0.5を設定すると、取引は全く実行されません。パラメータ 開放する信号のしきい値=90。

 
_o0O:

ということになる。

をする必要はありません。

不思議なことに、このバッファは#property indicator_plotsで指定する必要があります...。しかし、論理的には、#property indicator_buffersで指定されており、描画は必要ないため、そうすべきではないでしょう。


しかし、データウィンドウのバッファ名が正しく表示されない。PlotIndexSetString(0, PLOT_LABEL, "Buff") で指定しても解決しない。とにかく、助けてください。

助けって、どんな助け?

を指定すればよいのです。

#property indicator_label1  "Buff"

とすべて、バッファはデータウィンドウに 名前が付けられ、それは値を表示し、EAからこれらの値を取得することができ、値を描画しません(追加の情報を格納するために非常に便利で、バッファの行でグラフを乱雑にしない)。

 
_o0O:

ということになる。

をする必要はありません。

不思議なことに、このバッファは#property indicator_plotsで指定する必要があります...。論理的にはそうあるべきではありませんが、#property indicator_buffersで指定されており、描画する必要はないためです。


SZYですが、データウィンドウに間違ったバッファ名が表示され、PlotIndexSetString(0, PLOT_LABEL, "Buff") でバッファ名を指定してもダメでした...。とにかく、助けてください。

DRAV_NONE 型の代わりにclr_NONE 型の色を使用する必要があります。

以下はテストコードです。

#property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_width1  2
#property indicator_label1  "clrRed"
#property indicator_type2   DRAW_HISTOGRAM
#property indicator_color2  clrNONE
#property indicator_width2  2
#property indicator_label2  "clrNONE"

/****************indicator buffers****************/
double buf1[], buf2[];
/**************Custom indicator initialization function**************/
int OnInit()
{
    SetIndexBuffer(0, buf1, INDICATOR_DATA);
    SetIndexBuffer(1, buf2, INDICATOR_DATA);
   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[])
{
 int i, limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!
 for(i = 0; i < limit; i++)
  {
   if(i%2 > 0)
    buf1[i] = 1;
   else
    buf2[i] = 1;
  }
 
   return(rates_total);
}/*******************************************************************/
 
Alexey Viktorov:

DRAV_NONE 型を入れる必要はなく、clr_NONE 型の色を入れる。

以下はテストコードです。

を指定するだけです。

#property indicator_label1  "Buff"
 
_o0O:

を指定するだけです。

そんなに頭がいいなら、なぜ質問したんだ?

 
Alexey Viktorov:

そんなに頭がいいなら、なぜ質問したんだ?

賢い人は、質問しない人ではない......。

フォーラムに参加する人は誰でも自分の質問の答えにたどり着くことができますが、できるだけ早く答えを見つけなければ、このフォーラムの目的は一体何なのでしょうか?

私のやり方はもっとシンプルで簡潔なので、それを使ってください。

ZS 知らない人を「つつく」のはやめなさい、お利口さんね。

 
_o0O:

賢い人は、質問しない人ではない......。

フォーラムに参加する人は誰でも自分の質問の答えにたどり着くことが できますが、できるだけ早く答えを見つけなければ、このフォーラムの目的は一体何なのでしょうか?

私のやり方はもっとシンプルで簡潔なので、それを使ってください。

大間違いです。遠い、遠い。

 
Alexey Viktorov:

あ、大間違いです。遠い、遠い。

それゆえ、どんな質問でも歓迎するということになる。

ヘルプにそのようなニュアンスはありません。DRAW_NONE は #property でもPlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE) でも動かず、 PlotIndexSetString(0, PLOT_LABEL, "Buff") でも動かず、clrNONE を指定して目標を達成する論理とは一体何でしょうか。