アドバイザーの作り方


はじめに

この記事は、NTL+言語を使って、アドバイザーを作成するための原理を説明することを目的とします。


アドバイザーを作成する時、アドバイザーのバッファに書いてある価格の計算と表示式を設定することが必要となります。


例えば、終値が始値より高いバーと終値が始値より低いバーの間の差分を表示されるアドバイザーを作りましょう。この差は最後 n 間隔の差となります。アドバイザーは、別のウィンドウでヒストグラムとして作成しましょう。


スクリプトコードの書き方

このアルゴリズムが簡単で、アドバイザーの操作を確認しやすくなります。各 i バーは、前の n バーの価格を分析します。上げバーがあると、1が追加され、下げバーがあると、1が差し引られています。

アドバイザーのコード


まず、アドバイザーの変数のパラメーターを設定します。

#set_indicator_separate double ExtMapBuffer1[]; int ExtCountedBars=0; extern int period = 10;

#set_indicator_separateは、アドバイザーのチャートを別のウインドウに表示させるコマンドです。 ExtMapBuffer1は、アドバイザーの価格のあるグローバル配列です。配列のサイズを設定する必要がありません。


ExtMapBuffer1の配列は、アドバイザー価格のバッファの数があります。ExtCountedBars変数の価格はゼロとなります。この変数は計算されたバーの数があります。以下は、間隔の数が計算されるperiodの変数があります。extern修飾子を使うと、periodの価格を変更することが出来ます。


アドバイザーのベース設定があるInitialize()機能:


アドバイザーのSetIndexCount法は、アドバイザーの価格のバッファ数を設定されています。ExtMapBuffer1バッファは1つで、パーラーメーターに1を設定しましょう。バッファの番号と配列の組み合わせを作るため、Indicator.SetIndexBuffer(0,ExtMapBuffer1)を入力することが必要となります。


次のラインは、アドバイザーのパーラーメーターを設定しましょう。SetIndexStyle法の1つのパーラーメーターは、バッファの番号を設定されている。 SetIndexBufferに指摘した価格はゼロとなります。2つのパーラーメーターは表示のタイプで、ヒストグラムになります。3つのパーラーメーターは、ラインのスタイルをlsSolidとして設定しましょう。その後、ラインの厚さは5となり、色はclrBlue(RGBフォーマットもいい、例えば、0x0000FF)となります。


Run()の機能はdraw()のユーザー機能をスタートされています。draw()は計算を全部行われています。