クロスシグナルに価格を表示する。

ジェイヨ 2010/04/16 13:00
しかしすごいブログ内容ですね!恐れ入ります。
一応私は専業でやっているのですが、プログラムが出来ず、既存のものをちょこちょこ自分でいじりながら使っています

そこでいつも疑問に思っているのですが、なぜ各種サイトにあるインディケータのサインは矢印や○なのでしょうか?
そのサインを価格(Bid)表示などにできないのでしょうか?
MA-CROSSやSTOCH^CROSSが矢印ではなく価格表示でサインが出れば、検証などもやりやすいと思っているのですが。


プログラミングを覚えるきっかけとして、既存のコードを自分好みに改造するところから始めるのは理想的だったりします。MQL4 のような単純な言語でも、白紙の状態から一から動くコードを組み立てるのは、かなり勉強する必要があって途中で挫折する可能性が高いのですが、ただの改造であれば、最小限の勉強でもそれなりの効能が得られるので、モチベーションが持続しやすいと思うのです。


さて、ご質問の「なぜインジケータのサインは矢印だけなのか?」ですが..。
これは、MQL4でインジケータを作る際に使える IndexBuffer が矢印や○のような記号しか表示させることができないからです。大抵のインジケータでは、

SetIndexBuffer(2,ExtMapBuffer3);
SetIndexStyle(2,DRAW_ARROW,EMPTY,2);//このBuffer で記号を使う宣言
SetIndexArrow(2,233);// 233番(矢印)の記号を使う設定

こんな宣言だけで IndexBuffer に矢印が使えるので、とても簡単なのです。


この矢印を単純に価格表示に置き換えることは出来ず、価格表示はプライスタグオブジェクトかテキストオブジェクトをチャート上に配置するしか手段がありません。実際にプライスタグを置くようにしたのが下図です。

ソースコードは、こちらにあります。
タグをつける前のコードは、ここで、両者をRekisaで比較すればどんな改造が行われているかわかりやすいと思います。
プライスタグの場合、近接してしまった場合に見づらくなる問題があるので、テキストオブジェクトの方が良いのかもしれませんが、、試したい人は自分で改造してみてください。