お疲れ様です。
それでは、前回の続きですね
自作コードであれば、パラメータの順番はすぐにわかりますが、ZigZagなどそうでないものは、実際にinputの順番を確認しなければ
なりません。確認の方法は、一度インディケータを適用して「インプット」のところを見ればわかります。一方平均足はinputのところが
ありませんので、パラメータの指定も必要ないのです。
hMA=iMA(NULL,0,InpMAPeriod,0,InpMAMethod,hBB);
iCustomで取得したハンドルを利用して移動平均線を取得するのは上記の方法になります。
OnCalculate関数
OnCalculateでの処理はすぐにわかるかと思います。CopyBufferの第二パラメーターの数字は、元のインディケータのSetlndexBufferの数値
から取りたいもの選びます。%bのSetlndexBufferはこのようになっていました。
SetIndexBuffer(0,IndPerBBuffer,INDICATOR_DATA);
SetIndexBuffer(1,IndColorBuffer,INDICATOR_COLOR_INDEX);
SetIndexBuffer(2,BB_TLBuffer,INDICATOR_CALCULATIONS);
SetIndexBuffer(3,BB_BLBuffer,INDICATOR_CALCULATIONS);
ここで0を指定すれば、%bの値が取れます。1を指定すると、%bの色がインデックスとして数値で取れます。たとえば、平均足で
INDICATOR_COLOR_INDEXのデータを取れば(インデックスは4)、1.0か0が取れます。終値、始値を出してその差を計算する必要はなく、
0で陽線、1.0で陰線であることがこれだけでわかるのです。2.3はボリンジャーバンドの±σの値が取れます。
OnDeinit関数
ハンドルの関数は2つになります。
コンパイルしてエラーがないことを確認して、チャートに適用します。
基本的なテクニックはここまでで習得できてきたと思います。
下図のようにチャート上に表示してみて確認してみて下さいね。
最後に全体のコードとなります。


コメント