- 1 1. PlotIndexSetIntegerとは何か
- 2 よくある失敗(重要)
- 3 注意点(実務)
- 4 2. 基本構文とパラメータ一覧
- 5 よくある失敗(重要)
- 6 注意点(実務)
- 7 3. 実務で使う設定パターン(コピペOK)
- 8 重要まとめ(構造理解)
- 9 実務的な注意点
- 10 よくある失敗(総括)
- 11 4. 表示されない・反映されない時のデバッグ方法
- 12 重要まとめ
- 13 実務アドバイス
- 14 5. 応用テクニック(色分岐・複雑描画・パフォーマンス最適化)
- 15 よくある失敗(応用編)
- 16 重要まとめ
- 17 実務アドバイス
- 18 6. 初心者が混乱しやすいポイント総まとめと実装チェックリスト
- 19 最終まとめ
- 20 FAQ(検索ニーズ対応)
1. PlotIndexSetIntegerとは何か
PlotIndexSetIntegerは、MQL5でインジケーターの「見た目(描画)」を制御する関数です。
具体的には、ラインの色・太さ・表示スタイル・矢印などを設定できます。
結論として、以下の役割に集約されます。
- データの「表示方法」を決める
- インジケーターの見た目を制御する
- Buffer(値)と描画(見た目)を分離する
初心者が最も混乱するポイントはここで、「値は入っているのに表示されない」問題の原因の多くが、この関数の未設定または誤設定です。
1.1 PlotIndexSetIntegerの基本概要
MQL5のインジケーターは、内部的に以下の2層構造で動作します。
- データ層(Buffer):価格や計算結果を格納
- 表示層(Plot):そのデータをどう描画するか
PlotIndexSetIntegerは、この「表示層」を制御します。
例えば以下のような設定が可能です。
- ラインの色を赤にする
- 線の太さを変更する
- ヒストグラム表示にする
- 矢印を表示する
実際のコード例:
#property indicator_plots 1
int OnInit()
{
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrRed); // 赤色に設定
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2); // 太さ2
return(INIT_SUCCEEDED);
}
このように、plot_index(表示対象)に対して、property(設定項目)を指定し、value(値)を設定するという構造です。
1.2 何に使うのか(ユースケース)
PlotIndexSetIntegerは、以下のような場面で必ず使います。
① ラインの見た目を変える
- 色変更(例:上昇=青、下降=赤)
- 太さ変更(視認性向上)
② 描画スタイルを変更する
- ライン → ヒストグラム
- ドット表示
- ステップ表示
③ シグナル表示(重要)
- 売買シグナルを矢印で表示
- 特定条件で色を変える
④ 表示制御
- 一時的に非表示
- 複数ラインの切り替え
実務では特に、シグナル系インジケーター(矢印表示)で必須になります。
1.3 SetIndexBufferとの違い
初心者が最もつまずくのがここです。
結論:
- SetIndexBuffer → データを格納する
- PlotIndexSetInteger → 表示方法を決める
この2つは役割が完全に分かれています。
例:
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer); // データを紐付け
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlue); // 表示設定
return(INIT_SUCCEEDED);
}
このように、
- Bufferがない → データがない(何も描画できない)
- Plot設定がない → 見た目が正しく出ない
という関係になります。
よくある失敗(重要)
■ ① データはあるのに表示されない
原因:
- PlotIndexSetInteger未設定
- DRAW_TYPE未指定
■ ② 色が変わらない
原因:
- property指定ミス(例:PLOT_COLORではなくPLOT_LINE_COLOR)
- 複数プロットでindex違い
■ ③ そもそも何を設定しているか理解していない
原因:
- BufferとPlotの役割を混同
注意点(実務)
- 設定は基本的に OnInitで行う
- plot_indexは 0から順番に対応
- propertyは ENUM_PLOT_PROPERTY_INTEGERに限定
特に、OnCalculateで毎回設定するとパフォーマンスが悪化する可能性があるため注意が必要です。
2. 基本構文とパラメータ一覧
PlotIndexSetIntegerは、構文自体は非常にシンプルですが、パラメータの意味を正確に理解しないと意図通りに動きません。
この章では「そのまま使えるレベル」で整理します。
2.1 基本構文
bool PlotIndexSetInteger(
int plot_index,
int property,
int value
);
戻り値:
- true:成功
- false:失敗(設定できていない)
2.2 各パラメータの意味
■ plot_index(対象プロット番号)
- どのライン(表示)に対して設定するか
- 0から始まる
例:
- 0 → 1本目のライン
- 1 → 2本目のライン
注意:
#property indicator_plotsの数と対応- 間違えると「何も変わらない」状態になる
■ property(設定項目)
- 何を変更するかを指定する
ENUM_PLOT_PROPERTY_INTEGERに定義されている
例:
- PLOT_LINE_COLOR → 色
- PLOT_LINE_WIDTH → 太さ
- PLOT_DRAW_TYPE → 描画タイプ
注意:
- 間違えるとコンパイルは通るが反映されないことがある
■ value(設定値)
- propertyに対する具体的な値
例:
- 色 → clrRed
- 太さ → 2
- 描画タイプ → DRAW_LINE
2.3 よく使うプロパティ一覧(重要)
実務で使うものはほぼ固定です。まずは以下だけ覚えれば十分です。
■ ライン系
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlue);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2);
PlotIndexSetInteger(0, PLOT_LINE_STYLE, STYLE_SOLID);
用途:
- 視認性調整
- 複数ラインの区別
■ 描画タイプ(最重要)
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
主な種類:
- DRAW_LINE → 通常の線
- DRAW_HISTOGRAM → 棒グラフ
- DRAW_ARROW → 矢印表示
注意:
- これを設定しないと何も表示されないケースがある
■ 矢印設定(シグナル系)
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
補足:
- 233は矢印の種類(Wingdingsフォント)
- 値を変えると形状が変わる
■ 表示制御
PlotIndexSetInteger(0, PLOT_SHOW_DATA, true);
用途:
- データウィンドウ表示のON/OFF
2.4 最小構成のサンプル(そのまま使える)
#property indicator_plots 1
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrGreen);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2);
return(INIT_SUCCEEDED);
}
よくある失敗(重要)
■ ① plot_indexのズレ
- indicator_plotsと一致していない
- 0と1を間違える
👉 症状:何も変わらない
■ ② propertyの選択ミス
- PLOT_LINE_COLORとPLOT_COLORの混同
- DRAW系とSTYLE系の混同
👉 症状:設定が反映されない
■ ③ DRAW_TYPE未設定
👉 症状:
- Bufferに値があるのに何も表示されない
■ ④ valueの型ミス
例:
- 色なのに整数を入れる
- DRAW_TYPEに無効値
👉 症状:意図しない表示
注意点(実務)
- 設定はOnInitで一度だけ行う
- 複数ラインの場合はindexごとに明示的に設定
- プロパティは「組み合わせ」で意味を持つ(単体では不十分な場合あり)
特に重要なのは、
👉 「DRAW_TYPEがベース、その上に色・太さを乗せる」構造
3. 実務で使う設定パターン(コピペOK)
この章では、実際の開発でそのまま使えるレベルの定型パターンを紹介します。
PlotIndexSetIntegerは「単発設定」ではなく、組み合わせで意味を持つため、ここを理解すると実装スピードが大きく向上します。
3.1 シンプルなライン表示(最も基本)
最も基本となるパターンです。まずはこれを確実に動かせるようにします。
#property indicator_plots 1
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlue);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2);
return(INIT_SUCCEEDED);
}
用途:
- 移動平均
- RSIライン
- 任意の数値プロット
■ つまずきポイント
- DRAW_LINEを指定しない → 表示されないことがある
- bufferに値を入れていない → 当然何も出ない
3.2 ヒストグラム表示(ボリューム・差分系)
#property indicator_plots 1
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_HISTOGRAM);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrGreen);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 3);
return(INIT_SUCCEEDED);
}
用途:
- MACD
- ボリューム
- 差分ロジック
■ 注意点
- 太さが重要(細いと見えない)
- プラス・マイナスで色分けしたい場合は別処理が必要
3.3 矢印表示(売買シグナル)
実務で最も使用頻度が高いパターンです。
#property indicator_plots 1
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233); // 上矢印
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrRed);
return(INIT_SUCCEEDED);
}
用途:
- エントリーシグナル
- ブレイクアウト通知
■ つまずきポイント(重要)
- PLOT_ARROWを設定しない → 矢印が出ない
- bufferに価格を入れない → 位置が表示されない
3.4 複数ライン(2本以上)
複数プロットは初心者が最も崩れやすい部分です。
#property indicator_plots 2
double buffer1[];
double buffer2[];
int OnInit()
{
SetIndexBuffer(0, buffer1);
SetIndexBuffer(1, buffer2);
// 1本目
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlue);
// 2本目
PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(1, PLOT_LINE_COLOR, clrRed);
return(INIT_SUCCEEDED);
}
■ つまずきポイント
- indexズレ(0と1を混同)
- bufferとplotの対応ミス
👉 「buffer番号=plot番号」ではないケースもあるため注意
3.5 条件による色変更(実務応用)
色を動的に変えたい場合は、カラーインデックス方式を使います。
#property indicator_plots 1
double buffer[];
int colors[];
int OnInit()
{
SetIndexBuffer(0, buffer);
SetIndexBuffer(1, colors, INDICATOR_COLOR_INDEX);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_COLOR_LINE);
PlotIndexSetInteger(0, PLOT_COLOR_INDEXES, 2);
return(INIT_SUCCEEDED);
}
■ ポイント
- DRAW_COLOR_LINEを使う
- 色は配列で管理する
- PLOT_COLOR_INDEXESを設定
■ よくある失敗
- 通常のDRAW_LINEのまま → 色が変わらない
- カラーバッファ未設定 → エラー or 無視
重要まとめ(構造理解)
PlotIndexSetIntegerは以下の構造で理解すると安定します。
① DRAW_TYPEで描画の種類を決める
② 必須プロパティを設定する
③ 補助プロパティ(色・太さ)を乗せる
実務的な注意点
- 初期設定は必ずOnInitでまとめる
- 表示が出ないときは「DRAW_TYPE→Buffer→値」の順で確認
- 複雑な表示は「一度シンプルに戻してから再構築」する
よくある失敗(総括)
- 「とりあえず設定している」状態 → 再現性がない
- BufferとPlotの役割を混同
- コピペして動かない原因が理解できていない
4. 表示されない・反映されない時のデバッグ方法
PlotIndexSetInteger周りの不具合は、原因がほぼパターン化されています。
この章では、実務で使える「原因切り分けフロー」と「具体的な対処法」を整理します。
4.1 最短で特定するチェック手順(重要)
表示されない場合は、以下の順番で確認します。
■ チェックフロー
- Bufferに値が入っているか
- SetIndexBufferが正しく設定されているか
- DRAW_TYPEが設定されているか
- PlotIndexSetIntegerのindexが正しいか
- 描画条件(EMPTY_VALUEなど)に引っかかっていないか
👉 この順番で確認すれば、ほぼ100%原因を特定できます。
4.2 ケース別トラブルシュート
■ ケース①:何も表示されない
原因候補:
- bufferに値が入っていない
- DRAW_TYPE未設定
- EMPTY_VALUEを入れている
■ 確認コード
Print(buffer[0]);
👉 値が出ていなければ、ロジック側の問題
■ 対処
- OnCalculateで値を必ず代入する
- DRAW_LINEなどを明示設定
■ ケース②:色や太さが反映されない
原因候補:
- propertyの指定ミス
- 複数プロットでindexがズレている
■ 例(よくあるミス)
PlotIndexSetInteger(1, PLOT_LINE_COLOR, clrRed); // ← 実際は0番
■ 対処
- plot_indexを見直す
- indicator_plotsと一致させる
■ ケース③:矢印が表示されない
原因候補:
- PLOT_ARROW未設定
- bufferに価格が入っていない
■ 対処コード
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
■ 注意
- bufferには「表示したい価格」を入れる必要あり
■ ケース④:一部しか表示されない
原因候補:
- EMPTY_VALUEを使っている
- 配列サイズ不足
■ 対処
- ArraySetAsSeriesの確認
- ArrayResizeの見直し
■ ケース⑤:コンパイルは通るが動かない
原因候補:
- propertyの指定ミス
- valueが無効
■ 対処
- ENUM値を再確認
- Printで戻り値チェック
bool result = PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2);
Print(result);
4.3 デバッグの基本戦略(重要)
■ 原則①:一度「最小構成」に戻す
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrWhite);
👉 これで表示されるか確認
■ 原則②:段階的に追加
- 線を表示
- 色を変更
- 太さを変更
- 応用設定
■ 原則③:ログを使う
Print("value=", buffer[i]);
👉 データが存在するかを確認
4.4 見落としやすいポイント
■ OnInit vs OnCalculate
- Plot設定 → OnInit
- 値設定 → OnCalculate
👉 これを逆にすると不具合の原因
■ indicator_plotsの未設定
#property indicator_plots 1
👉 これがないと描画されない場合あり
■ インジケーター再読み込み
- 変更後に再適用しないと反映されない
4.5 実務的な原因ランキング
経験上、原因の大半は以下です。
1位:DRAW_TYPE未設定
2位:buffer未代入
3位:indexズレ
4位:EMPTY_VALUE誤用
5位:propertyミス
👉 まずこの順で疑うと効率が良い
重要まとめ
PlotIndexSetIntegerの不具合は、
① データがあるか
② 表示設定があるか
③ indexが正しいか
この3点でほぼ解決します。
実務アドバイス
- 初心者は「一発で完成させようとしない」
- 必ず「表示 → 調整」の順で構築する
- 問題は必ず分解して検証する
5. 応用テクニック(色分岐・複雑描画・パフォーマンス最適化)
この章では、実務レベルで必須となる一段上の使い方を扱います。
PlotIndexSetIntegerは単なる装飾ではなく、ロジックの可視化(=判断精度の向上)に直結する要素です。
5.1 条件で色を変える(トレンド判定・状態表示)
単一色ではなく、条件に応じて色を変えることで視認性が大幅に向上します。
■ 基本構成(カラーインデックス)
#property indicator_plots 1
double buffer[];
int color_index[];
int OnInit()
{
SetIndexBuffer(0, buffer);
SetIndexBuffer(1, color_index, INDICATOR_COLOR_INDEX);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_COLOR_LINE);
PlotIndexSetInteger(0, PLOT_COLOR_INDEXES, 2);
return(INIT_SUCCEEDED);
}
■ OnCalculate例
if(buffer[i] > buffer[i+1])
color_index[i] = 0; // 上昇(例:青)
else
color_index[i] = 1; // 下降(例:赤)
■ つまずきポイント
- DRAW_COLOR_LINEにしていない → 色変わらない
- カラーバッファ未設定 → 無視される
5.2 複数条件でのシグナル表示(矢印+色分岐)
売買ロジックを視覚化する典型パターンです。
■ 実装例
#property indicator_plots 2
double buyBuffer[];
double sellBuffer[];
int OnInit()
{
SetIndexBuffer(0, buyBuffer);
SetIndexBuffer(1, sellBuffer);
// BUY
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrBlue);
// SELL
PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(1, PLOT_ARROW, 234);
PlotIndexSetInteger(1, PLOT_LINE_COLOR, clrRed);
return(INIT_SUCCEEDED);
}
■ ポイント
- バッファを分ける(BUY/SELL)
- 同じバーに両方出さない制御が必要
■ よくある失敗
- 同一bufferで両方表示しようとする → 表示崩壊
- EMPTY_VALUE未使用 → 意図しない描画
5.3 表示のON/OFF制御(条件付き描画)
状況に応じて「表示しない」という制御も重要です。
■ 方法①:EMPTY_VALUEを使う
buffer[i] = EMPTY_VALUE;
👉 そのバーは描画されない
■ 方法②:プロット自体を制御
PlotIndexSetInteger(0, PLOT_SHOW_DATA, false);
■ 注意点
- EMPTY_VALUEは最も安全で一般的
- 乱用すると「途切れた線」になる
5.4 パフォーマンス最適化(重要)
PlotIndexSetInteger自体は軽量ですが、使い方次第で無駄な負荷が発生します。
■ NGパターン
void OnCalculate(...)
{
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrRed); // 毎回実行
}
■ 正しい設計
- 初期設定 → OnInit
- 動的変更 → 必要最小限
■ 理由
- 描画設定は基本的に「固定値」
- 毎Tick変更する必要はほぼない
5.5 実務での設計パターン(重要)
安定したインジケーターは、以下の構造になっています。
① OnInitで描画設定を固定
② OnCalculateでデータのみ更新
③ 条件分岐はbufferまたはcolor_indexで制御
■ メリット
- バグが減る
- デバッグしやすい
- パフォーマンス安定
5.6 実務的な注意点(深掘り)
■ マルチタイムフレーム対応
- CopyRates等と組み合わせる場合
- buffer更新タイミングに注意
■ 再描画問題(リペイント)
- 条件によって過去バーを書き換えると誤解を生む
- 特にシグナル系は注意
■ 視認性と誤認リスク
- 色・太さ・形状は「誤解を生まない設計」が重要
- 過剰な装飾は逆効果
よくある失敗(応用編)
- 色分岐のロジックがズレている
- bufferとcolor_indexの長さ不一致
- 描画とロジックが同期していない
重要まとめ
PlotIndexSetIntegerの応用は以下に集約されます。
・色分岐 → COLOR_INDEX
・複数表示 → 複数buffer
・非表示 → EMPTY_VALUE
・最適化 → OnInit固定
実務アドバイス
- 「見た目=ロジックの可視化」と考える
- シンプルな設計を維持する
- まずは単一ラインで完成させてから拡張する
6. 初心者が混乱しやすいポイント総まとめと実装チェックリスト
この章では、ここまでの内容を踏まえて、実務で再現性を担保するためのチェックリストと判断基準を整理します。
PlotIndexSetIntegerは「理解したつもり」で実装すると高確率で詰まるため、構造として再現できる状態にすることが重要です。
6.1 初心者が混乱する本質(構造理解)
多くのエラーは、以下の誤認から発生します。
■ 誤解①:「値を入れれば表示される」
→ ❌ 間違い
→ 表示には「描画設定」が必須
■ 誤解②:「PlotIndexSetIntegerだけで何とかなる」
→ ❌ 間違い
→ Buffer・DRAW_TYPE・値の3点が揃って初めて表示される
■ 誤解③:「動かない原因は1つ」
→ ❌ 間違い
→ 複数の要因が重なっていることが多い
■ 正しい理解
データ(Buffer)
↓
描画設定(PlotIndexSetInteger)
↓
表示(チャート)
👉 この流れが崩れると、必ず不具合が出る
6.2 実装チェックリスト(そのまま使える)
開発時は、以下を上から順に確認します。
■ 基本構造
- #property indicator_plots が設定されている
- SetIndexBuffer が正しく設定されている
- buffer配列が定義されている
■ 描画設定(PlotIndexSetInteger)
- PLOT_DRAW_TYPE が設定されている
- 色(PLOT_LINE_COLOR)を設定している
- 必要に応じて太さ(PLOT_LINE_WIDTH)を設定している
■ データ処理(OnCalculate)
- bufferに値を代入している
- EMPTY_VALUEの使い方が正しい
- 配列サイズが適切
■ インデックス整合性
- plot_indexとbuffer番号が一致している
- indicator_plots数と一致している
■ 応用設定(必要な場合)
- 色分岐ならDRAW_COLOR_LINEを使用
- 矢印ならPLOT_ARROWを設定
- 複数表示ならbufferを分離
6.3 よくある失敗パターン(再発防止)
■ パターン①:とりあえず書いたコード
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrRed);
👉 DRAW_TYPEがない → 表示されない可能性
■ パターン②:buffer未設定
double buffer[];
👉 SetIndexBufferしていない → 無効
■ パターン③:値未代入
// bufferに何も入れていない
👉 描画対象がない → 何も表示されない
■ パターン④:indexズレ
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(1, PLOT_LINE_COLOR, clrBlue);
👉 別プロットに設定 → 反映されない
6.4 実務での安定テンプレート
迷ったら、この最小構成に戻します。
#property indicator_plots 1
double buffer[];
int OnInit()
{
SetIndexBuffer(0, buffer);
PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_LINE);
PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrWhite);
return(INIT_SUCCEEDED);
}
👉 ここから機能を追加する
6.5 再現性を高める設計思想(重要)
■ 原則①:役割を分離する
- 描画設定 → OnInit
- ロジック → OnCalculate
■ 原則②:一度に複雑にしない
- まず表示させる
- 次に装飾する
- 最後に応用する
■ 原則③:常に最小構成に戻れる状態を保つ
👉 デバッグ効率が大幅に向上
6.6 短期・長期視点の実務評価
■ 短期メリット
- バグの切り分けが高速化
- 開発スピード向上
■ 長期メリット
- コードの再利用性向上
- EA/インジ連携が安定
- チーム開発でも破綻しにくい
■ リスク(放置した場合)
- 表示バグの温床
- ロジック誤認(誤トレード)
- 信頼性低下(特に金融領域では致命的)
最終まとめ
PlotIndexSetIntegerは単なる設定関数ではなく、
「ロジックを正しく可視化するための基盤」
です。
最終的に重要なのは以下の3点です。
- Buffer(データ)
- Plot(描画設定)
- Index(対応関係)
この3つが揃えば、表示は必ず安定します。
FAQ(検索ニーズ対応)
Q1. PlotIndexSetIntegerとは何ですか?
A. インジケーターの描画設定(色・太さ・表示形式など)を制御する関数です。
Q2. なぜ値があるのに表示されないのですか?
A. DRAW_TYPE未設定やBuffer未代入など、描画設定が不足している可能性があります。
Q3. SetIndexBufferとの違いは何ですか?
A. SetIndexBufferはデータ格納、PlotIndexSetIntegerは表示設定です。
Q4. 矢印が表示されない原因は?
A. PLOT_ARROW未設定、またはbufferに価格が入っていない可能性があります。
Q5. 色を条件で変えるにはどうすればいいですか?
A. DRAW_COLOR_LINEとカラーインデックスバッファを使用します。
Q6. OnCalculateで設定してもいいですか?
A. 基本はOnInitで設定し、OnCalculateではデータ更新のみにするのが推奨です。
Q7. 複数ラインで動かない原因は?
A. plot_indexとbufferの対応ミスが最も多い原因です。
Q8. 最初に確認すべきポイントは?
A. 「Bufferに値があるか」「DRAW_TYPEが設定されているか」の2点です。