omega chart 拡張キット作成初歩の初歩

更新履歴

■ ローソク足

■ 移動平均線


私は株価チャートソフトomega chartを支援し、多くの人に知ってもらうために、

また、omega chartのメインコンセプトでもあるコントリビューションに賛同し、このサイトを設立いたしました。

コントリビューションに関して詳しく知りたい人は本家へどうぞ!(コミュニティの心得

 

まぁ一度使ってみてください。これほどの機能をもったフリーソフトはまずないですよ。

omega chartに出会うまではFチャートをメインに使っていましたが、その他のいろいろなチャートソフトと

見比べても、omega chartの拡張性は群を抜いていると思いますよ。(これ、お世辞でもなんでもなく!使ってみれば判りますよ。)

 

今、株式投資においてテクニカル投資を重要なアイテムとして使っている人が多いと思いますが

じゃーどのテクニカルメソッドがいいのか?「このテクニカルがいい」とか、あるテクニカル指数だけの

検証を行った書籍、Webサイトなどはありますが、比較検証などをしているものはほどんどありません。

(比較検証をするつもりはないですよ^^;)

omega chartはこの比較検証を行おうと思えば可能な機能が付いています。

それが、

omega chartの特徴とでも言うべくスクリーニング機能、セオリー検証、自動売買機能です。

スクリーニングとは簡単に言うと検索です。ユーザ側から条件を加えていき、条件にあった銘柄を絞り込んでいく作業です。

この条件をユーザ側が自由に拡張できるのです。検証できるのです。

オリジナルメソッドが作れるかもしれないのです。

極論を言ってしまえば儲かる投資法がなければ、または作らなければ意味ねぇ〜

ってことですわ。

 

そのためにはもちろんユーザ側が「拡張キット」なるものを作らなくてはなりません。

この拡張キットを作るにはある程度の数学的知識がいるのです。私も苦労しています。

が、他のomega chartのユーザさんなどに教えてもらったり、勉強したりで何とか作っていけるものです。

ということで、拡張キット作成を初歩の初歩からアプローチしていきます。

まぁ大それた見出しになっていますが、ほんと初歩的なことしか書きません。(てか書けないと思います^^;)

私自身も勉強のため進めていきたいですし、新たに投資法が見つかればいいなぁとおもいます。

間違った記述等々あると思いますので、目に留まったら教えてください。

 

、チャートの初歩「ローソク足

ローソク足とはある銘柄の一日の株価の推移を視覚的にわかりやすくした、日本オリジナルのテクニカル指数です。

(余談:ローソク足の生まれは江戸時代だといわれています。米相場が在ったらしいです)

一日の株価の推移とは、[高値]、[安値]、[始値]、[終値]からなる4値を視覚的にしたものです。

これを見ていただければ分かると思います。(ってほとんどの人が分かっていることですね。。)

私はここからはじめました。

[ローソク足の考え方の初歩の初歩]

 

上記のようにその日のローソク足は、陽線・陰線と2種類のどちらかになります。

(他に十字線[始値と終値が同値]がありますがここでは触れません)

始値

場が開けて寄り付いた値

拡張キットに記述すると
open()

プリミティブ(始値の値を取得)を取得します。

omega chartの「拡張キットのテスト」で

値を取得してみましょう(1)

終値

場が閉じたときの寄り付き値

close()
プリミティブ(終値の値を取得)を取得します。
高値 一日の場中で一番高く寄り付いた値
high()
プリミティブ(高値の値を取得)を取得します。
安値 一日の場中で一番安く寄り付いた値
low()
プリミティブ(安値の値を取得)を取得します。
陽線 終値が始値を上回って場が引けた(閉じた)とき
yosen()
組み込み関数
陰線 終値が始値を下回って場が引けた(閉じた)とき
insen()
組み込み関数

組み込み関数

組み込み関数とはユーザが独自に式を定義し、名前をつけて使える関数です。

上記ローソク足の図を見ていただくと分かるとおり、

陽線なら「始値より終値のほうが高い」という式を記述すればよいので

open() < close()

と定義しlibraryエレメントに”yosen”として登録してあげればいいのです。

<library
name="yosen"> <!--陽線判定-->
<expression>open() < close()</expression>
</library>

しかし上記記述で拡張キットの読み込みをするとこんな

エラーダイアログが表示されると思います。これは”<”不等号がxml構文のタグとみなされる?

ためです。

回避方法は2つあります。1つはxml構文で使用される不等号を使うことです。

<
&lt;
>
&gt;

もう1つは <![CDATA[open() < close()]]>としてあげる方法です。

何て言うのかは知りません。^^;

※上記エラーダイアログは半角スペースが抜けている時にも表示されます。

 

time-seriesとは

本家の解説では時系列データ、配列と教えていただいています。

では、始値の値を取得したように、拡張キットのテストから取得してみましょう

このように3営業日前からの始値を取得します。

これがtime-series = 配列です。

上記の画像では日経平均のみの配列を取得していますが、スクリーニング実行時に「すべての銘柄」と

条件をつけるとすべての銘柄の3営業日からの始り値の配列を取得します。

条件式の初歩ですね。

この状態で組み込み関数 max() を使ってみましょう


3営業日中の一番高い値を取得します。

これでもスクリーニングはでできませんよ。条件がないからね。

では条件式を作ってみましょう

上記 max(open(3)) に条件をつけてみます。

max(open(3)) < close()

上記条件式を日本語にすると、「3営業日中の一番高い始値より当日の終値が高い銘柄」

となり、拡張キットのテストの結果は”true”となりこの条件式は有効とわかります。

これをスクリーニング実行時に「すべての銘柄」と条件をつけると

すべての銘柄のうち、「3営業日中の一番高い始値より当日の終値が高い銘柄」の

条件にパスした銘柄のみをスクリーニングできるわけです。

 

この次は移動平均線について考えようかなぁ


作ってみると以外に先に進めなくて、多分これぐらいの内容本家の解説を見れば分かることだと思いますが

私はここから始めたので。。

ほんと初歩の初歩になっちゃいました。

すごーく少数の人に役に立てばよいなぁと思います。

一応ゲストブックも設置しましたがご批判がありそうで恐ろしい。。

by tokucyan