価格定数
テクニカル指標の計算には、価格値及び/または計算が実行されたボリュームの値が必要です。計算に使用する価格ベースを指定するための ENUM_APPLIED_PRICE 列挙には 7 つの事前定義された識別子があります。
ENUM_APPLIED_PRICE
ID | 説明 |
PRICE_CLOSE | 終値。 |
PRICE_OPEN | 始値。 |
PRICE_HIGH | 期間の高値。 |
PRICE_LOW | 期間の安値。 |
PRICE_MEDIAN | 中間価格(高 + 低)÷ 2 。 |
PRICE_TYPICAL | 典型的価格(高 + 低 + 終)÷ 3 。 |
PRICE_WEIGHTED | 平均価格(高 + 低 + 終 + 終)÷ 4 。 |
ボリュームが計算に使用された場合、ENUM_APPLIED_VOLUME 列挙の 2 つの値のいずれかを指定する必要があります。
ENUM_APPLIED_VOLUME
ID | 説明 |
VOLUME_TICK | ティックボリューム。 |
VOLUME_REAL | 取引高。 |
iStochastic() テクニカル指標の計算法は 2 つあります。
- 終値のみ
- 高値と安値
計算に必要なバージョンを選択するには、ENUM_STO_PRICE 列挙体の値のいずれかを指定します。
ENUM_STO_PRICE
ID | 説明 |
STO_LOWHIGH | 計算は、低/高価格に基づいています。 |
STO_CLOSECLOSE | 計算は、クローズ(ローソク足の形成が終わった時点での価格)/終値に基づいています。 |
テクニカル指標が ENUM_APPLIED_PRICE によって設定されている種類の価格データを計算に使用する場合、(端末機に内蔵あるいはユーザに書かれた)指標ハンドルが入力価格シリーズとして使用可能になります。この場合には、指標のゼロバッファの値が計算に使用されます。これは、他の指標の値を使用しての指標値の構築を容易にします。カスタム指標ハンドルは iCustom() 関数の呼び出しで作成されます。
例:
#property indicator_separate_window { |
平滑化の方法
多くのテクニカル指標は、様々な価格シリーズ平滑化の方法に基づいています。いくつかの標準的なテクニカル指標は、入力パラメータとして平滑化の方法の指定を要します。使用される平滑化の方法を指定するためは ENUM_MA_METHOD 列挙体にリストされている識別子が使用されます。
ENUM_MA_METHOD
ID | 説明 |
MODE_SMA | 単純平均。 |
MODE_EMA | 指数移動平均。 |
MODE_SMMA | 平滑平均。 |
MODE_LWMA | 線形加重移動平均。 |
例:
double ExtJaws[]; |
指標線
テクニカル指標のいくつかはチャートに複数のバッファを描画します。指標バッファの番号付けは0から始まります。CopyBuffer() 関数を使用して指標値を double 型の配列に複製する時、指標によっては、番号の代わりに複製されたバッファの識別子を指定することが出来ます。
iMACD()、iRVI() 及び iStochastic() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
MAIN_LINE | 0 | 正中線。 |
SIGNAL_LINE | 1 | シグナル線。 |
ADX() 及び ADXW() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
MAIN_LINE | 0 | 正中線。 |
PLUSDI_LINE | 1 | 線 + DI。 |
MINUSDI_LINE | 2 | 線 –DI。 |
iBands() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
BASE_LINE | 0 | 正中線。 |
UPPER_BAND | 1 | 上限。 |
LOWER_BAND | 2 | 下限。 |
iEnvelopes() 及び iFractals() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
UPPER_LINE | 0 | 上部線。 |
LOWER_LINE | 1 | 下部線。 |
iGator() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
UPPER_HISTOGRAM | 0 | 上部ヒストグラム。 |
LOWER_HISTOGRAM | 2 | 下部ヒストグラム。 |
iAlligator() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
GATORJAW_LINE | 0 | 顎線。 |
GATORTEETH_LINE | 1 | 歯線。 |
GATORLIPS_LINE | 2 | 口線。 |
iIchimoku() の値の複製時に使用出来る指標線の識別子
定数 | 値 | 説明 |
TENKANSEN_LINE | 0 | 転換線。 |
KIJUNSEN_LINE | 1 | 基準線。 |
SENKOUSPANA_LINE | 2 | 先行スパン A 線。 |
SENKOUSPANB_LINE | 3 | 先行スパン B 線。 |
CHIKOUSPAN_LINE | 4 | 遅行スパンライン。 |
描画スタイル
カスタム指標の作成時には、ENUM_DRAW_TYPE列挙体で指定されている(メインチャートウィンドウまたはグラフのサブウィンドウに表示される)18 種類のグラフィックプロットのいずれかを指定することが出来ます。
1 つのカスタム指標でどの指標作成・描画タイプを選ぶことも出来ます各構造タイプは、描画に必要なデータを格納するための1〜5 グローバル配列 の仕様を必要とします。これらのデータ配列は、SetIndexBuffer() 関数を使用して指標バッファと結合する必要があります。各バッファに ENUM_INDEXBUFFER_TYPE からのデータの種類を指定する必要があります。
描画スタイルに応じて、1〜4 の値バッファが必要な場合があります(INDICATOR_DATAとしてマーク)。スタイルが動的な色の塗り替えを含む場合は(指標型 INDICATOR_COLOR_INDEX )もう 1 つのバッファが必要になります(全てのスタイルの名称には COLOR が含まれいます)。色のバッファは、常にスタイルに対応するバッファの後に結合されています。
ENUM_DRAW_TYPE
ID | 説明 | データバッファ | 色バッファ |
DRAW_NONE | 描かれません。 | 1 | 0 |
DRAW_LINE | 線。 | 1 | 0 |
DRAW_SECTION | セクション。 | 1 | 0 |
DRAW_HISTOGRAM | ゼロラインからのヒストグラム。 | 1 | 0 |
DRAW_HISTOGRAM2 | 2 つの指標バッファのヒストグラム。 | 2 | 0 |
DRAW_ARROW | 矢印の描画。 | 1 | 0 |
DRAW_ZIGZAG | ジグザグスタイルは、バーの垂直断面を可能にします。 | 2 | 0 |
DRAW_FILLING | 2 レベル間の色の塗りつぶし。 | 2 | 0 |
DRAW_BARS | バーの列として表示。 | 4 | 0 |
DRAW_CANDLES | ローソク足の列として表示。 | 4 | 0 |
DRAW_COLOR_LINE | 多色のライン。 | 1 | 1 |
DRAW_COLOR_SECTION | 多色のセクション。 | 1 | 1 |
DRAW_COLOR_HISTOGRAM | ゼロラインからの多色ヒストグラム。 | 1 | 1 |
DRAW_COLOR_HISTOGRAM2 | 2 つの指標バッファの多色ヒストグラム。 | 2 | 1 |
DRAW_COLOR_ARROW | 多色の矢印を描画。 | 1 | 1 |
DRAW_COLOR_ZIGZAG | 多色のジグザグ。 | 2 | 1 |
DRAW_COLOR_BARS | 多色バー。 | 4 | 1 |
DRAW_COLOR_CANDLES | 多色ローソク足。 | 4 | 1 |
選択された描画の型の表示を改良するために、ENUM_PLOT_PROPERTY に記載されている識別子が使用されます。
PlotIndexSetInteger() 及び PlotIndexGetInteger() 関数には
ENUM_PLOT_PROPERTY_INTEGER
ID | 説明 | プロパティ型 |
PLOT_ARROW | DRAW_ARROW スタイルの矢印コード。 | uchar |
PLOT_ARROW_SHIFT | DRAW_ARROW スタイルの矢印の垂直シフト。 | int |
PLOT_DRAW_BEGIN | データウィンドウでの描画前の初期のバーの数や値。 | int |
PLOT_DRAW_TYPE | グラフィック構成のタイプ。 | ENUM_DRAW_TYPE |
PLOT_SHOW_DATA | データウィンドウでの建設値の表示のサイン。 | bool |
PLOT_SHIFT | バーでの時間軸に沿っての指標のプロットシフト。 | int |
PLOT_LINE_STYLE | 線の描画スタイル。 | ENUM_LINE_STYLE |
PLOT_LINE_WIDTH | 描画線の太さ。 | int |
PLOT_COLOR_INDEXES | 色の数。 | int |
PLOT_LINE_COLOR | 描画の色を含むバッファのインデックス。 | color modifier = index number of colors
|
PlotIndexSetDouble() 関数
ENUM_PLOT_PROPERTY_DOUBLE
ID | 説明 | プロパティ型 |
PLOT_EMPTY_VALUE | プロットに使用される空の値で、何も描画しません。 | double |
PlotIndexSetString() 関数
ENUM_PLOT_PROPERTY_STRING
ID | 説明 | プロパティ型 |
PLOT_LABEL | データウィンドウに表示する指標グラフィカルシリーズの名称。表示のためにいくつかの指標バッファを必要とする複雑なグラフィカルなスタイルで作業する場合、各バッファの名称は「 ; 」セパレータを使用して指定することが出来ます。サンプルコードは DRAW_CANDLESにあります。 | string |
カスタム指標の線を描画するために 5 つのスタイルを使用することが出来ます。これらは線の太さが 0 または 1 の時のみ有効です。
ENUM_LINE_STYLE
ID | 説明 |
STYLE_SOLID | 実線。 |
STYLE_DASH | 途切れ線。 |
STYLE_DOT | 点線。 |
STYLE_DASHDOT | 一点鎖線。 |
STYLE_DASHDOTDOT | 二点鎖線。 |
線の描画スタイルと図面の種類を設定するには PlotIndexSetInteger() 関数が使用されます。フィボナッチの拡張機能では、レベルの厚さと描画スタイルは、ObjectSetInteger() 関数を使用して示すことが出来ます。
例:
#property indicator_chart_window |
カスタム指標プロパティ
カスタム指標で使用出来る指標バッファの数に制限はありません。しかし SetIndexBuffer() 関数を使用して、指標バッファとして指定される配列のそれぞれに格納されるデータ型を指定する必要があります。値は ENUM_INDEXBUFFER_TYPE 列挙体の値のうちのいずれかです。
ENUM_INDEXBUFFER_TYPE
ID | 説明 |
INDICATOR_DATA | 描画するデータ。 |
INDICATOR_COLOR_INDEX | 色。 |
INDICATOR_CALCULATIONS | 中間計算のための補助バッファ |
カスタム指標には表示に活用できる多数の設定があります。これらの設定は、IndicatorSetDouble()、IndicatorSetInteger() 及び IndicatorSetString() 関数を使用して対応する指標のプロパティに行われます。指標のプロパティの識別子は ENUM_CUSTOMIND_PROPERTY 列挙にリストされています。
ENUM_CUSTOMIND_PROPERTY_INTEGER
ID | 説明 | プロパティ型 |
INDICATOR_DIGITS | 指標値描画の精度。 | int |
INDICATOR_HEIGHT | 指標ウィンドウの固定された高さ(プリプロセッサコマンド #property indicator_height)。 | int |
INDICATOR_LEVELS | 指標ウィンドウのレベル数。 | int |
INDICATOR_LEVELCOLOR | レベルの線の色。 | color modifier = level number |
INDICATOR_LEVELSTYLE | レベルの線のスタイル。 | ENUM_LINE_STYLE modifier = level number |
INDICATOR_LEVELWIDTH | レベルの線の太さ。 | int 修飾子 = レベル番号 |
ENUM_CUSTOMIND_PROPERTY_DOUBLE
ID | 説明 | プロパティ型 |
INDICATOR_MINIMUM | 指標ウィンドウの最小サイズ。 | double |
INDICATOR_MAXIMUM | 指標ウィンドウの最大サイズ。 | double |
INDICATOR_LEVELVALUE | レベル値。 | double 修飾子 = レベル番号 |
ENUM_CUSTOMIND_PROPERTY_STRING
ID | 説明 | プロパティ型 |
INDICATOR_SHORTNAME | 指標短縮名。 | string |
INDICATOR_LEVELTEXT | レベルの説明。 | string modifier = level number |
例:
//— 指標の設定 |
テクニカル指標の種類
値にアクセスするために指標ハンドルを作成する方法は 2 つあります。最初の方法は、テクニカル指標のリストから直接関数名を指定することです。2 番目の方法は IndicatorCreate() を使用してENUM_INDICATOR 列挙から識別子を割り当てて、任意の指標ハンドルを作成することです。ハンドル作成の両方法は同等なので、MQL5 でプログラムを書く時に、特定の場合に最も便利なものを使用することが出来ます。
IND_CUSTOM 型の指標の作成時には 入力パラメータ MqlParam の最初の要素の type フィールドは ENUM_DATATYPE 列挙の TYPE_STRING 値を持たなければならず、最初の要素の string_value フィールドはカスタム指標の名称を含まなければなりません。
ENUM_INDICATOR
識別子 | 指標 |
IND_AC | ACオシレーター。 |
IND_AD | 蓄積/配信(Accumulation/Distribution)。 |
IND_ADX | 平均方向性指数(Average Directional Index)。 |
IND_ADXW | ウェルズ•ワイルダーのADX。 |
IND_ALLIGATOR | アリゲーター。 |
IND_AMA | 適応型移動平均(Adaptive Moving Average)。 |
IND_AO | オーサムオシレーター。 |
IND_ATR | ATR(Average True Range)。 |
IND_BANDS | ボリンジャーバンド®(Bollinger Bands®)。 |
IND_BEARS | ベアパワー(Bears Power)。 |
IND_BULLS | ブルパワー(Bulls Power)。 |
IND_BWMFI | マーケットファシリテーションインデックス。 |
IND_CCI | コモディティチャンネルインデックス(Commodity Channel Index)。 |
IND_CHAIKIN | チャイキンオシレーター(Chaikin Oscillator)。 |
IND_CUSTOM | カスタム指標。 |
IND_DEMA | 2 重指数移動平均(Double Exponential Moving Average)。 |
IND_DEMARKER | デマーカー(DeMarker)。 |
IND_ENVELOPES | エンベローブ(Envelopes)。 |
IND_FORCE | 勢力指数(Force Index)。 |
IND_FRACTALS | フラクタル。 |
IND_FRAMA | フラクタル適応型移動平均(Fractal Adaptive Moving Average)。 |
IND_GATOR | ゲーターオシレーター。 |
IND_ICHIMOKU | 一目均衡表(Ichimoku Kinko Hyo)。 |
IND_MA | 移動平均(Moving Average)。 |
IND_MACD | MACD |
IND_MFI | マネーフローインデックス(Money Flow Index)。 |
IND_MOMENTUM | モメンタム(Momentum)。 |
IND_OBV | オンバランスボリューム(On Balance Volume)。 |
IND_OSMA | OsMA |
IND_RSI | 相対力指数(Relative Strength Index)。 |
IND_RVI | 相対活力指数(Relative Vigor Index)。 |
IND_SAR | パラボリック SAR。 |
IND_STDDEV | 標準偏差(Standard Deviation)。 |
IND_STOCHASTIC | ストキャスティックス(Stochastic Oscillator)。 |
IND_TEMA | 3 重指数移動平均(Triple Exponential Moving Average)。 |
IND_TRIX | 3 重指数移動平均オシレーター(Triple Exponential Moving Averages Oscillator)。 |
IND_VIDYA | 可変インデックス動的平均(Variable Index Dynamic Average)。 |
IND_VOLUMES | ボリューム。 |
IND_WPR | ウィリアムパーセントレンジ(Williams’ Percent Range)。 |
データ型識別子
IndicatorCreate() 関数を使用して指標ハンドルを作成する際には、最終パラメータとして MqlParam 型の配列が指定されなければなりません。従って、指標を記述する MqlParam 構造体は特別な type フィールドを含みます。このフィールドは配列の特定の要素によって渡されるデータ型(real、integer または string 型)の情報を含みます。この MqlParam 構造体のフィールドの値は ENUM_DATATYPE の値の 1 つです。
ENUM_DATATYPE
識別子 | データ型 |
TYPE_BOOL | bool |
TYPE_CHAR | char |
TYPE_UCHAR | uchar |
TYPE_SHORT | short |
TYPE_USHORT | ushort |
TYPE_COLOR | color |
TYPE_INT | int |
TYPE_UINT | uint |
TYPE_DATETIME | datetime |
TYPE_LONG | long |
TYPE_ULONG | ulong |
TYPE_FLOAT | float |
TYPE_DOUBLE | double |
TYPE_STRING | string |
配列の各要素は、作成されたテクニカル指標の対応する入力パラメータを記述するので、配列内の要素の型と順序は厳密に記述に従って維持されなければなりません。
Originally posted 2019-07-29 22:35:45.