boolPlotIndexSetInteger(
int plot_index, // индекс графического стиля int prop_id, // идентификатор свойства int prop_value // устанавливаемое значение
);
と、こんなことをしました。
boolPlotIndexSetInteger(
int 2, // индекс графического стиля int PLOT_LINE_COLOR, // идентификатор свойства int 0, // модификатор свойства int clrGreen // устанавливаемое значение
)
/--- для каждого цветового индекса зададим новый цвет случайным образом
for(int plot_color_ind=0;plot_color_ind<plot_colors;plot_color_ind++)
{
//--- получим случайное числоint number=MathRand();
//--- получим индекс в массиве col[] как остаток от целочисленного деленияint i=number%size;
//--- установим цвет для каждого индекса как свойство PLOT_LINE_COLORPlotIndexSetInteger(0, // номер графического стиляPLOT_LINE_COLOR, // идентификатор свойства
plot_color_ind, // индекс цвета, куда запишем цвет
cols[i]); // новый цвет
なんでそんな大げさなんだ?表示するバッファを先に割り当て、次に補助バッファを割り当てることに何か問題があるのでしょうか?
アルゴリズムの特殊性として、補助バッファは 常に固定数で、表示するバッファの数は変動する。前の記事から、全部正しく指定する方法についてお答えください。
DRAW_HISTOGRAM2 では、3 つのバッファが指定され、最初に 2 つの値バッファ、次に色バッファという順序が必須である。しかし、DRAW_HISTOGRAM と DRAW_HISTOGRAM2 には、DRAW_HISTOGRAM がゼロからバッファの値まで描画するのに対し、DRAW_HISTOGRAM2 はある バッファの値から別のバッファの値まで描画するという違いがあります。
https://www.mql5.com/ru/docs/customind/indicators_examples/draw_histogram2 の DRAW_HISTOGRAM2 の記述から。
"DRAW_HISTOGRAM2の構築に必要なバッファの数は2です。"
では、3つ目のバッファーはどこから来るのでしょうか?また、同じリンクの例では、バッファは2つしかありませんが、通常のDRAW_HISTOGRAと同じように色をインターリーブできるかどうかは指定されていないのですね。アルゴリズムの特殊性として、補助バッファは 常に固定数で、マップドバッファの数は変化する。前の記事から、全部正しく指定する方法についてお答えください。
https://www.mql5.com/ru/docs/customind/indicators_examples/draw_histogram2 の DRAW_HISTOGRAM2 の記述から。
"DRAW_HISTOGRAM2の構築に必要なバッファの数は2です。"
では、3つ目のバッファーはどこから来るのでしょうか?また、同じリンクの例では、バッファは2つしかありませんが、通常のDRAW_HISTOGRAと同じように色をインターリーブできるかどうかは指定されていないのですね。はい、私の注意不足で申し訳ありません。DRAW_COLOR_HISTOGRAM2 と DRAW_COLOR_HISTOGRAM を意味します。
アルゴリズムの特殊性で、補助バッファは 常に固定数で、表示バッファは異なる数である。これだけのことを正しく指定するにはどうしたらいいのか、前の記事からの質問に答えてください。
こんな風に自分をバカにしたのは初めてです。意欲があれば、実験してみてください。
PlotIndexSetInteger()で 色を正しく設定するにはどうしたらいいですか?
を設定すると
#property indicator_color3 clrRed,clrGreen
を使用すると、色は正しく設定されます。
PlotIndexSetInteger(2,PLOT_LINE_COLOR,0,clrRed);
PlotIndexSetInteger(2,PLOT_LINE_COLOR,1,clrGreen);
とすると、線の最初の色は赤ですが、2番目(以降)はなぜか緑ではなく黒(デフォルト)になっています。
PlotIndexSetInteger()で 色を正しく設定するにはどうしたらいいですか?
を指定すると
#property indicator_color3 clrRed,clrGreen
を使用すると、色は正しく設定されます。
PlotIndexSetInteger(2,PLOT_LINE_COLOR,0,clrRed);
PlotIndexSetInteger(2,PLOT_LINE_COLOR,1,clrGreen);
とすると、線の最初の色は赤になりますが、2番目の色はなぜか緑ではなく黒(デフォルト)になってしまいます。
なぜモディファイアを入れたのか?
なぜモディファイアを入れたのか?
どれを、どこに?MQL5のドキュメントの 例を見て、同じようにやってみました。書いてみて、どう正しいのか?
どれを、どこに?MQL5のドキュメントの 例を見て、同じようにやってみました。書いてみて、どう正しいのか?
どれを、どこに?MQL5のドキュメントの 例を見て、同じようにやってみました。正しいやり方は?
調べました
と、こんなことをしました。
とドキュメントに書かれています。
インジケータ・バッファの初期化に関するすべてのコードを表示します。
こんな感じ
調べました
と、こんなことをしました。
そして、そこには、ドキュメントにこう書かれています。
これは、ベースメントインジケーターのレベル、フィボレベルと同様の何かの異なる色が割り当てられている場合、修飾する必要があることを意味します。まさに私の場合。
マニュアルにあるDRAW_COLOR_HISTOGRAM2の例の一部を紹介します。
ここでは plot_colors = 8, cols[] - さまざまな色を持つ配列。しかし、端末は最初の1色以外を知覚しません。