今日も窓辺でプログラムスマートフォン用の表示で見る今日も窓辺でプログラム外資系企業勤めのエンジニアが勉強した内容をまとめておくブログ2019-07-09MT4でカスタム指標を定義してみるMQL4前回はMT4でスクリプトを実行してみました。今回はチャートに自分で定義した指標を描画するカスタム指標を定義してみようと思います。独自に作成したテクニカル指標をチャートに描画するためのプログラムです。関数で、次のような場合にカスタム指標を計算するために呼ばれます。新しいティックを受信したとき始値と終値の平均まずはサンプルプログラムを紹介します。意味はありませんが、各期間ごとの始値と終値の平均で定義されるカスタム指標を描画してみます。1;}カスタム指標のデータ構造カスタム指標は各期間での数値列なので、double型の動的配列として定義します。my_indicator[];上記のように配列の要素数を省略して宣言するとその配列は動的配列となります。動的配列では、既にメモリを確保しているインデックスよりも大きいインデックスにアクセスがあった際に、自動的に新しいメモリが確保される、というような挙動をするようです。動的配列のスコープを抜けるとメモリが自動で解放されるようです。インデックスは0が現在、1が1単位時間前、2が2単位時間前、というように解釈します。次に注目すべきはOnInit関数です。SetIndexBufferでカスタム指標として使用する配列を指定します。定義された値の数だけ)を定義できるので、第1引数で何個目の指標か、第2引数でどの配列を指標として使用するかを指定します。返しておけばよいです。毎ティック呼ばれるOnCalculate関数ですが、引数は主に2種類あります。チャートに含まれるバーの本数に関する情報、その他の引数は各バーの具体的な数値を保持しています。チャートに含まれるバーの本数を表しています。戻り値の値となります。通常、指標をどこまで計算済みかを示す値を保存して使用します。なるように99を返します。(最新の指標は変更される可能性があるので、次の呼び出し時にも再度計算してあげます。1つ前の始値にアクセスできます。以上がサンプルプログラムの概要になります。線の色などを指定していますので、このファイルをコンパイルしチャートにドラッグすると、始値と終値のちょうど中間の点が赤色の線で結ばれるような指標が描画されます。定義済みのテクニカル指標を参照するMQL4には様々なテクニカル指標が定義されていて、簡単にそれを使用することができます。移動平均をみたければiMAという関数を使用します。各引数の使い方は公式ドキュメントに譲りますが、10単位時間(例えば日足チャートの場合10日)の移動平均は下記のように関数を呼ぶだけで計算できてしまいます。アーカイブおすすめの本はてなブログをはじめよう!kanohkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。