■最初に
このソフトウェアは、omega chartを rtiが勝手に改造して勝手に公開しているフリーソフトウェアです。
オリジナルのライセンスの考え方を尊重し、オリジナルと同じ apache ライセンスで公開します。
このソフトウェアはβ版です(正式リースは1億と2000年後を予定しています、8000年過ぎたぐらいにRTMを予定です)。
バグなどが山ほどあります、自己責任でご利用ください。
わかりやすく言えば、
このソフトウェアのせいで、あなたが破産したり、PCが壊れたり、その他一切の事が起きても 誰も責任は取りません、勝手に樹海に行って氏ね。
作者にバグの修正義務はありません、バグを見つけた人は自分で直してください。
直せない人は泣いてください。
このマニュアルは、せっかく書き上げたマニュアルを間違って上書きコピーで消してしまって、
むかつきながら書いているので、ところどころ日本語が破滅しています。
いや、破滅しているのはいつものことか。
■ダウンロード
ダウンロード(ソース)
ダウンロード(バイナリ)
■自働売買検証の強化
・買った日と売った日
自働売買の結果のリストをクリックすると、
買った日と売った日にラインを入れるようにした。

・利益は成功に損失は失敗に (はにはに)
結果が損失でも成功として処理される問題の対処した。
exitで手仕舞うと成功 , losscutで手仕舞うと損失ではなく、
利益ベースで成否を表示するようにした。
オリジナル、損失なのに成功扱いになっている
exitで損失になったりした場合は、備考ランで補足する。

↓
はにはに修正

オリジナル、成功100%だが、、、

↓

自働売買の集計の方の成功率も修正。
・アナリスト機能を追加
signalが成立したり、exitで手仕舞った時に特定の式を実行できるようにした。
エクセルに貼り付けて分析すれば、ちっーとは、シグナルの検証がやりやすくなったと思う。

アナリストの定義は、 auto-trading タグで出来る。
analyst タグに注目。
<!-- 絶対に儲からない自働売買の例 むかついたら消して結構-->
<auto-trading name="rtisample">
<title>25日平均移動線を上抜けたときに買う</title>
<description>ちなみに絶対に儲からない</description>
<header>25日平移動線を上抜けたときに買う(絶対儲からないデモ)</header>
<type>long</type>
<interval type="every-day" /> <!-- ポジションを持っていても連続して買うよ -->
<signal>
<![CDATA[
//昨日まではMA(25)以下だったけど、
value_at(1 , MA(25) > close() )
and
//今日はMA(25)より上にあること
MA(25) < close()
]]>
</signal>
<entry type="tomorrow-open"/>
<exit><![CDATA[
//3日たったら投げる
day() >= 3
]]></exit>
<losscut><![CDATA[
//5%損したら損切り
limitorder( entry() * 0.95 )
]]></losscut>
<!-- シグナルが出たときの状態を報告 -->
<!-- 一つ制限、omega chartの仕様で signal で設定した期間以上を求めようとするとエラーになる -->
<!-- signalで MA(75) を計算しているなら、analyst は 75日以内の計算しか出来ない。そーゆー仕様。 -->
<analyst type="signal" name="signal MA(8)">MA(8)</analyst>
<analyst type="signal" name="signal MA(15)">MA(15)</analyst>
<!-- exit が出たときの状態を報告 -->
<analyst type="exit" name="exit MA(8)">MA(8)</analyst>
<!-- losscut が出たときの状態を報告 -->
<analyst type="losscut" name="losscut MA(8)">MA(8)</analyst>
</auto-trading>
type="signal"
signalが発生したときに実行されます。
type="exit"
exitが発生したときに実行されます。
type="losscut"
losscutが発生したときに実行されます。
なんで、この機能がアナリスト? 事後になって初めて講釈をたれるから。
★まとめ
少しは楽になったかな。
■自働売買の集計のダイアログ
実質売買を導入した。
シグナルにしたがって、一定金額を運用した場合の状態を表示する。

・初期金額
シミュレーション開始の金額(タネ銭)
シール → カスタマイズ → 実質売買検証 → 初期金額 で、変更可能。
150億と入力すれば BNFの気分だけ味わって悶絶できる。

・最終資金
シミュレーション終了時の総資産。
割合は100%で初期資金の2倍。
・実質勝利
実質的な勝利の回数と勝率、金額。
・実質損失
実質的な損失の回数と損率、金額。
・残高不足
残高不足で購入できなかった取引です。
これが沢山あるということは同じ日に多数のシグナルが出ているクソなストラテジということです。
精進せいや。
・最大ドローダウン
利益が一番落ち込んだ金額です。
・プロフィットファクター
プロフィットファクターでググレ(w
1以下は取引するたびに損するクマ牧場
2ぢゃないと実用に耐えられないってななしさんが行っていたよ、そんで3以上が理想なんだってさ。
・ペイオフレシオ(損益レシオ)
ペイオフレシオ(損益レシオ)でググレ、破産確率のx軸として利用するので破産確率を見るべし。
・期間平均収益率(rti指数)
俺様が作成した指数\r\n期間ごとの総利益増加率の平均値、でかいほどいい。
・破産確率
どっかの偉い人が作った指数だって、詳細はぐぐれ(w
おまえが樹海に行く確率らしい、0ぢゃなきゃやばくね?
・実質売買エラー
途中で例外起きたらしいから、おまえデバッグして直しとけ
・ログをコピーボタン
実質売買シミュレーションのログをクリップボードにコピーする。
メモ帳に貼り付けて読むべし。
本当は、xml化とか、メッセージを桃鉄化とかしたかったんだけど、
xxxx社長の持ち金 12,345,678円。
本筋からどんどん離れるので省略。
★まとめ
システム初心者なんで偉そうに講釈たれられないけど、
破産確率が0で、利益がいっちゃんあがっているヤツがいいんぢゃねーの?
■実質売買
・実質売買の定義
一日に利用できるお金を求めます。
返り値は double を想定しています。
内部は Int64 で計算しているけど、 double でも何とか成っているみたいよ。
BNFごっこして遊んだけど大丈夫ぽかったよ。
浮動小数点がんばれ。
具体例こうやる↓
<money-planning name="parsent_rule">
<title>常に初期資産の一定割合を買いつづける</title>
<description>複利に対応していないので加速度的には増えません</description>
<header>常に初期資産の一定割合を買いつづける</header>
<signal><![CDATA[
initcash() * ({0} / 100)
]]></signal>
<param index="0" unit="割合" default="50"/>
</money-planning>
・関数リファレンス
initcash
初期金額を返します。
cash
現在の余力を返します。
total_assets
現在の総資産を返します。
total_assets - cash = 運用している株式の額
signal_count
本日出ているシグナル数を返します。
・close()とか利用できません!!
money-planningの中では、omegaの定義済み関数やユーザーが定義したライブラリなどは一切利用できません。
理由は、close()との値を返しようがないからです。
上にあげた、関数リファレンスに定義されているもののと四則演算のみを利用してください。
★まとめ
お金の突っ込み方でストラテジの正確はかわってくるし。
残高不足で買えない場合は、プロフィットファクターとかにも影響を与えるから、要注意。
■auto-trading系
・ダイアログの強化

1.編集ボタン
現在選択しているスキーマをエディタを使って修正します。
.omegaファイルに関連付けがされているエディタで開きます。
関連付けがない場合は、メモ帳で開きます。
この機能を利用すると、 3の「拡張キッドのリロードをしてから実行する」に自動的にチェックが入ります。場の空気を読みます。
2.実質売買ルールの選択
一日に使えるお金を算出する式を選択します。
詳細は、実質売買のところを読め。
3.拡張キッドのリロードをしてから実行する
OKボタンを押して自働売買ルールの検証に入る前に拡張キッドをリロードしなおします。
<!-- 絶対に儲からない自働売買の例 むかついたら消して結構-->
<auto-trading name="rtisample">
<title>25日平均移動線を上抜けたときに買う</title>
<description>ちなみに絶対に儲からない</description>
<header>25日平移動線を上抜けたときに買う(絶対儲からないデモ)</header>
<type>long</type>
<interval type="every-day" /> <!-- ポジションを持っていても連続して買うよ -->
<signal>
<![CDATA[
//昨日まではMA(25)以下だったけど、
value_at(1 , MA(25) > close() )
and
//今日はMA(25)より上にあること
MA(25) < close()
]]>
</signal>
<entry type="tomorrow-open"/>
<exit><![CDATA[
//3日たったら投げる
day() >= 3
]]></exit>
<losscut><![CDATA[
//5%損したら損切り
limitorder( entry() * 0.95 )
]]></losscut>
<!-- シグナルが出たときの状態を報告 -->
<!-- 一つ制限、omega chartの仕様で signal で設定した期間以上を求めようとするとエラーになる -->
<!-- signalで MA(75) を計算しているなら、analyst は 75日以内の計算しか出来ない。そーゆー仕様。 -->
<analyst type="signal" name="signal MA(8)">MA(8)</analyst>
<analyst type="signal" name="signal MA(15)">MA(15)</analyst>
<!-- exit が出たときの状態を報告 -->
<analyst type="exit" name="exit MA(8)">MA(8)</analyst>
<!-- losscut が出たときの状態を報告 -->
<analyst type="losscut" name="losscut MA(8)">MA(8)</analyst>
</auto-trading>
・ポジションを持っていても連続して買う
<interval type="every-day" />
って、書いとけば、連続してポジションを持つよ。
・//コメント
式の中に // でコメントを書けるようにした。
やっぱ、コメントがないとわかりづらい。
短いコメントでいかに笑わせるか、それが問題だ。
//今朝、雨が降っていたんだけど、
//僕は傘をささなかった。
//なぜかって?
//
//昨日、シャワーを浴びてなかったんでね。
//
//あー
・アナリスト機能
上で説明したから、まっいいか。
■ファンダメンタル
・無尽蔵にある決算情報と業績修正情報に対応
一応、ルーチンは作ったんだけど、
Yahoo! ファイナンスとかの per とかと計算が一致しない。
俺のルーチンが間違っているのかもしれない。
どーしょーかなーって思っていたら、
/ \
/ ─ ─\
/ (●) (●) \
| (__人__) | よく考えたら、
/ ∩ノ ⊃ / ファンダメンタルいらないな
( \ / _ノ | |
.\ “ /__| |
\ /___ /
ってことになったんで、放置している。
遊びたい人はやれば。
・ファンダメンタルをダウンロードする
ファイル → データダウンロード → 業績情報にチェックをつけてダウンロード。

・関数リファレンス
uriage
売上
keijyourieki
経常利益
rieki
利益
haitoukin
配当金
hitoikabueki
一株利益
hitokabujyunsisan
一株純資産
それぞれ、引数を2つ取れます。
第一引数 過去の情報
int
uriage(2)
2期前の情報を取得する。
次期見込みの値を取得する。
途中に業績修正があれば、その値を取得する。
毎回、はるかに高いハードルをぶち立てて、下方修正するクソ株などはおかしな値になるかもね。
そんなときは、第ニ引数 確定情報を利用すること。
第ニ引数 確定情報
int 1固定
uriage(0,1)
今期の既に確定した情報(本決算)を取得する。
具体的には本決算の今期情報を取得する。
★まとめ
オニールのCANSILMがやりたかったんだけど面倒になった。
テクニカルだけでよくねぇ?
■RSS対応
楽天(三木谷君のところ)のRSSに対応。
株価がピコピコ動きます。
マケスピとRSS立ち上げて、
表示 → リアルタイム更新を行う

に、チェックをつけと有効になります。
ただ、、、
/ \
/ ─ ─\
/ (●) (●) \
| (__人__) | よく考えたら、
/ ∩ノ ⊃ / RSSもいらないな
( \ / _ノ | |
.\ “ /__| |
\ /___ /
っても感じになったので、実装しただけ。
一応、ピコピコ動くよ。
日足だけだけどな。
実行方法はお気軽後気楽な方法を取ったので、ハードディスクにちょこっと負担がかかるかもしれない。
まぁ、ハードディスクなんか消耗品だから気にするな。
★まとめ
面白いから作る、、、、
しかし、作ってばっかりで儲からない。うぼー(死亡)
他にもちょこちょこ弄ったりしていたけど、忘れたし、書くの面倒だから、ソース見て(w
俺様が修正した所は、hacked by rtiってコメントが入っているからgrepすればわかるんぢゃね。
やっぱ、ソースコードを全文検索は最強だ。

