Monday, May 11, 2015

mslogin MarketSpeed の自動ログインツール

 mslogin
  http://rdoz.net/2/102/   使い方動画

 懐かしいの出てきたので、コンパイルしてみた。ちょろっと試した感じだと動いてるっぽい。

 マケスピは、今、Version 13.4 とかなんだな。もう、使い方も覚えてないわ(笑)。まだ、株プログラムとか、やってる人いるのかなぁ。

Thursday, August 30, 2012

サーバ移動

新サーバ、テスト中。 http://rdoz.net/

Thursday, March 31, 2011

マーケットスピードVer9.0、9.1、9.2サポート終了

 楽天証券 マーケットスピードVer9.0、9.1、9.2サポート終了のお知らせ

 Ver5.22 は、6月末までらしい。こっちは続けて欲しいんだが。

Friday, March 18, 2011

いまさらの RSS考

※以下、間違いがあれば指摘して下さい



 自前のプログラムでも、エクセル上のRSS式であっても、あくまでも 通信相手は、ローカルで動いている RSS.exe である(④の部分)。仮に、この部分がきっちり出来ていても、

 結局のところ、楽天側のサーバからのデータが正しく送られて(②の部分)こないことには、どうしようもない。データが止まっているのか、データの更新がないだけなのか、プログラム(エクセル)側では、判断できない。ダイアログが出るときもあるので、リンク単位で、タイムアウト処理が組み込まれている気もするが、毎回でるわけじゃない(と思う)。

 タスクトレイのRSSアイコンのツールチップの表示が、「RSS 接続処理中...」 ←→ 「 RSS 接続中」と、コロコロ切り替わっているような状態だと、もう、お手上げ。ツールチップが正確に切り替えられているとすれば、そこを監視して、プログラムの停止や、警告表示する処理を組み込めばいいのか(いや、そもそも、取得の方法が、さっぱり分からないので、別の方法として、パケットを監視して切断を判断する処理を途中まで組んでいたが、今ひとつ信頼性に欠ける、というか調査しきれていない)。

 と、久々にRSSのプログラム動かしてみて思った。とりあえず、RSSには、ハイ・スペックPC必須かも。

Monday, February 14, 2011

MarketSpeed v10.1 + RSS v1.5

マーケットスピードVer10.1リリースのお知らせ

 先物やらなくても、見ないわけにはいかない。大証と東証、見かけ上のルールだけでも同じに出来ないのか。とりあえず、個別株の休み時間が無くなるまで、225先物は株プログラムの対象外だな。先物に合わせるとチャートが不細工になりすぎる。

 先物の RSS は、前場~ や 後場~ が使えなくなるので、要修正。

Saturday, January 29, 2011

J-GATE

大証 J-GATE

楽天証券 大証デリバティブ売買システム刷新にともなう当社の~

 2/14より大証の取引ルールが変更される。先物・オプションの昼休みがなくなるようだ。

 チャートが株と同じように描けない、果てしなく迷惑だな。

Tuesday, January 25, 2011

Tickデータ研究ネタ

CiNii 論文

 テクニカル指標の動的選択とtick価格予測

 進化計算によるtick価格変動のトレンド予測

 仕事や学問以外で、この手のプログラムやってるのは、暇人かキチガイか、よほどのロマンチスト。僕も何十年も前に競馬のオッズ分析ソフト組んでたときから、ほとんど進歩してない。いや、貧乏になった分、さらにダメダメだな。

Tuesday, December 14, 2010

FXな話、マケスピ版、その2



 前のやつの複数ペア対応版。ピコピコしていないと値が取れないのは同じ。自動売買とかに使おうというのは無謀だが、参考程度には使えるはず。

ダウンロード  mspc_101214.zip 終了

 XP用。例によって、アルファ版。未テスト。
 改変・再配布禁止、自己責任で実行。

 起動時に引数でペアの指定すると、そのペアのみ処理する。ドル円とユロ円だけなら、「mspc.exe usdjpy eurjpy」と引数は2つになる。引数は、6文字のペア名。引数無しだと、13種にアクセス可能。

 マケスピ上で、レート表示の画面開いた後、読み取り開始するが、実際にデータ取得できるのは、値が変更された後。接続切れとかはチェックしていない。

エクセル上の書式だと
  =mspc|fx!******_bid
  =mspc|fx!******_ask
  =mspc|fx!******_time
 03/14 追記

 rdoz.net版  rssf_demo.zip 終了

Friday, October 29, 2010

FXな話、メディアセンター版

 メディアセンター(PC上で動く家電メディア・プレイヤーみたいなもん)で、映画とか見つつ為替もチェックしちゃおうって話。

 といっても、メディアセンター自体(XBMCっていう俺様一押しソフト)は関係なくて、自前のリモコン制御アプリに為替表示の機能を追加して、画面端に表示させてるだけ。リモコンで、表示ペアの切り替えや、アラートの設定も可能。

 大昔の4:3のモニタは、上下に余裕があるから、こんな事させるのには都合いい。それにしても、ニッチなアプリだな。



 LEDフォント、8ステップ分の変動Pips表示

Saturday, October 16, 2010

新ジャスダック

 12日から、ヘラクレス市場は、JASDAQに統合されている。RSSでいうとこの、「.OJ」の市場コードは、そのまま「.Q」に移行された。

 ザラ場で使うようなプログラムは、面倒な直しは不要かと。ヘラクレスは、大証1・2部と元々同じだし、銘柄コードを選ばないようにするぐらいか。

 DB関連は、余計なことせずに、そのままにしておくことにした。ヘラクレスのデータが新規に追加されないだけで、別段エラーになることもないだろうし。それに、過去データ引っ張るときに、無いと逆に困るしね。

大阪証券取引所

楽天証券お知らせ

Tuesday, October 05, 2010

楽天証券 障害中

【障害】マーケットスピードの表示不具合について (10.5 13:56)

【続報1】マーケットスピードにログインしづらい場合は、ウェブ・モバイルをご利用ください (10.5 14:37)

【続報2】マーケットスピードの表示不具合について (10.5 15:30)

【続報3】マーケットスピード「楽天FX」のサービス一時停止とマーケットスピードのご利用について (10.5 16:14)

 障害情報自体みられない、っての。ファイルのINDEXを直接見られなくなってから、探すのに時間が掛かる。WebのほうのTOPにわかりやすくのせてほしい。未読の処理は、この前もおかしかったよな。

 復旧したみたい。16:30頃

Saturday, August 21, 2010

Webスクレイピングで逮捕?

 岡崎市立中央図書館の検索ページに、プログラムからアクセスして逮捕→釈放された人の話です。株プログラムでデータ拾うのに当たり前に行われてたりするんで他人ごとじゃない?

 本人のページは、なんか色々違和感あるんで、Googleで。

Google検索 岡崎市立中央図書館

 要約すると、サーバ側のヘナチョコ仕様に、逮捕された人の(過剰?)アクセスが重なったせいでトラぶったと。まぁ、逮捕するまえに、アクセス弾けばいいだけだよな。

 サーバを管理する人たちからすれば、想定外のアクセスは何よりもイヤなんだろう。

 ↓のFXのアラート動かしてる俺も捕まっちゃう・・・。何事もほどほどに。

Thursday, August 19, 2010

FXな話、マケスピ版



 FXな話、マケスピ版、その2

Friday, August 13, 2010

マケスピの銘柄コード入力、その2



 銘柄検索に、コード管理を追加したもの。こちらのほうが、多少実用的。左クリック(選択)→右クリック(決定)は同じ。リスト内で、カーソルキーで上下できるので、チャート等パタパタ表示させられます。

ダウンロード  cs4ms_100813.zip 終了

 XP用。例によって、アルファ版。未テスト。
 改変・再配布禁止、自己責任で実行。

Tuesday, August 10, 2010

マケスピの銘柄コード入力



 マケスピは実用アプリであるから、マトモな硬い造りで仕方ない。使いやすくするには、自前で何とかするしかない。これは、4桁の銘柄コードを、入力するためだけのツール。大昔につくったやつの組みなおし版。

ダウンロード  cs_100810.zip 終了

 XP用。例によって、アルファ版。未テスト。
 改変・再配布禁止、自己責任で実行。
 銘柄情報は、ウチのサイトから自動で取得します。僕んとこのプログラムに限らず、どこの誰か分からないヤツが作ったものを動かすのは危険かもしれません。僕が悪人ならメモリ内読み込んで、マケスピのパスワードぐらい引っこ抜くぐらいするかも。あくまでも自己責任で。

 実行させると、タスクトレイにアイコンが出るので、終了はアイコンを右クリック。マケスピ上の適当なとこで、マウス中クリックでダイアログ表示。左クリック(選択)→右クリック(決定)で、マケスピの市況情報や個別チャートに問答無用でコードを送りつけます。

 マケスピは未だに使いにくい銘柄検索のままだな。自画自賛するつもりないけど、このくらいの機能は標準装備してほしいもんだね。って玄人は、コードなんか暗記してるって?

Wednesday, July 28, 2010

FXな話



1. アラート付で、為替レートをチェックしたい

2. 60秒くらいのポーリングなら怒られないだろう(DDEなんぞ、使わないよ)

3. 実際に取引してるFX会社じゃないところのデータを使用(ズレやしないだろうけど、確認のため)

4. 表示させるなら、左下がベスト、delphi の最小化ウィンドウがピッタリ!(ガジェットは、チラチラ見るのには適さない)

5. で、負けまくりです。博打の神様、僕に何か恨みでもあるんでしょうか。ホント見事に逆いくよな。

Monday, May 24, 2010

マケスピの自動ログインが動かないぞと

 怒られたので調べてみた。何年も使っているのに、何でいまさら・・・。

 なるほど、ログイン直後に、楽天側からのメッセージがあるとそれがウィンドウとして表示されるのね。

 IDやパスを間違えた時のダイアログを拾う処理が、それと混同してログイン失敗にしてしまっていた。

 とりあえず、#32770 -> Static -> Static の2個目のラベルで、エラーか、メッセージなのか判断するようにした。

 ちなみに、今日の「未閲覧の~」のメッセージ自体は、楽天側のトラブル。

Monday, January 04, 2010

2010年 東証変更分



 とりあえず、東証株+TOPIX先物の板処理を大証方式に変更。個人的には、上下8本も使わないからどーでもいーような変更だけど、全て同じルーチンで統一できてスッキリ。

 後、何か変わったのだろうか?思いつかない。

 arrowheadがどうのといっても、速度的な面では、直接、東証につながるような環境でもないかぎり、僕ら個人の取引には変化ないだろうし。止まったりしなきゃそれでいいよな。マケスピVer9で、RSSがどうなってるか知らないが、今のとこテストする予定はなし。

Monday, December 21, 2009

RssTrader発売?

 知り合いに、いつのまにRssTrader一般売りしてんのよ、と聞かれる。ん?何言ってんのよー、話が噛み合わないなぁ。

 何のことはない同名のソフトが他で作られていただけでした。

 RSSTrader 本格派株価監視ソフト http://www.next-step.jp/

 マイナー・ソフトの名前なんぞ被ったところで、文句つける筋合いでもないが、紛らわしいのは確か。rdoz.net も npz も関係していない別物です。

 僕んとこの は、2010年版が、Ver4.3の予定。

Sunday, December 13, 2009

arrowhead

 東証 「arrowhead」

 楽天証券「arrowhead」稼動に伴う売買制度変更について

 マケスピは、Ver9で、フル板なる制限なしの板情報表示が出来るようになるみたい(ただし、有料)。見えないより見えたほうが、より公正な気もするので良いことなんだろう。

 RSS的には、東証も上下8本づつの板表示に変更なるのかな?板処理を全部大証方式に変更しとけばいいか。今さら件数とか出されても困るし。

Saturday, December 12, 2009

マケスピ、過去Ver整理

 楽天証券 マーケットスピード及びiSPEED過去バージョンサポート終了のお知らせ

 とりあえず、5.22 SP1 と、6.11 は、まだ使えるようだ。

Thursday, October 01, 2009

岡三RSSまとめ

一応、まとめとくと

・岡三デスクトップ + エクセル2003SP3~必須
・リアルタイムデータ(0.5秒間隔)
・分足・日足等の時系列データも取得可(2秒間隔)
・発注処理の組み込み可

 発注まで一括処理できるので、エクセルのみで完結できるシンプルなシステムには向いている。逆に、自作アプリ作れるのなら、素直に楽天RSSを使うほうが現実的。

 岡三オンライン証券 よくあるご質問

「お客様に最高のパフォーマンスを提供するため、最新の技術を用いた対応を行っております。」

 最高のパフォーマンス=最新の技術、って。エクセル上だと、DDEよりハイパフォーマンス?プログラムを組む側からすると、エクセル使わないといけない事自体が致命的だな。

Wednesday, September 30, 2009

WebBrowser

 自動売買とか良く聞くようになった気もするが、実際にやっている人はどのぐらいいるものなのか。証券会社側のアプリで対応しているのは、個別株ならマネックス、先物系は複数あるか。後は、APIといわれる売買用の正式なインターフェイスを用意してあれば、自作プログラムからも注文可能になる。エクセル経由でAPIもどきだが岡三オンライン証券が、株・先物で可能。

 それ以外は、得体の知れない会社が提供しているやつも含めて、非公式に勝手に作ったソフトになる。これら勝手に作ったソフト類の自動化方法で一般的なのは、Webページの注文をエミュレートするもの。とりあえず、問題が少ないと思われるのは、WebBrowserコンポーネント(中身は、IE)で、証券会社のWebページをそのまま動かしてしまうこと。Webページのコントロールと聞いてもイマイチ具体的なやり方が思い浮かばないかもしれないが、技術的にはそれほど難しい話ではない。

 通常アプリのコントロールであれば、ボタンやテキストボックスといった部品単位に、ハンドルと呼ばれる識別番号で管理されていて、それを使って擬似的に操作出来る。HTMLのオブジェクトも、ハンドルではないが、各部品(エレメント)を名前や番号で識別して操作が可能。例えば、ログイン画面や、金額の入力するテキストボックスは、たいていINPUT タグが使われている。これらを表示中のページから列挙するには

v := OLEVariant(WebBrowser.Document as IHTMLDocument2).getElementsByTagName('INPUT');

 この辺は色々なアクセスの仕方があるので、好きな形式で書けばいい。単純にテキストとしての情報が欲しいのなら、HTMLのソースを直接、文字列処理して取り出したりもできる。WebBrowser、Webスクレイピングや、DOMといったキーワードで検索すると参考になりそうなページはたくさん見つけられると思う。株のページだから特別ということはない。一つ違うのは、直接お金の関わってくる部分なので、サーバ側の証券会社の方でも神経質になる。くれぐれも間抜けなアクセスはしないよう気をつけることぐらいか。

Tuesday, September 22, 2009

MarketSpeed v8.1 + RSS v1.3



 RSSは、Ver1.3。JASDAQの板項目がバッサリ削除されてる。今日の段階では先週分の中途半端なデータが表示される。確認は24日以降に。

 09/24 追記

 問題ないみたい。ついでに、東証も同じにしちゃえばいいのに。

Sunday, September 20, 2009

大量のテキストファイルの比較

ハッシュ表示するだけなんだが、意外と使いやすいかも。

可用性と ファイル チェックサム整合性検証 ユーティリティの説明

例えば、'aaa'と'bbb'、2つのディレクトリあってそれらの中にあるテキストファイルが同じものか比較したい。

fciv -add aaa -wp > aaa.txt
fciv -add bbb -wp > bbb.txt
diff aaa.txt bbb.txt

とか。

関係ないけど、僕のIEのガチガチ設定だと、MSのページ開けないんだよねぇ。

Wednesday, September 16, 2009

岡三デスクトップ 自動ログイン 実験用 修正版

Click dialog ってのも変か、dialogの注文ボタンを勝手に押すのね、まぁオマケ機能だし

 岡三RSSは、結局、使ってないので忘れてた。

 自動で確認ダイアログのボタンを押す機能を修正。現物の売り買い、それぞれウィンドウサイズが違うのに対応。コレは売りも押せるはず。僕が試した限りでは動作したが、他の環境で動作するかは保障できない。

 信用取引は口座開いていないので不明。動かないようなら、確認ダイアログのキャプション名やサイズを教えてもらえば対応は可能かもしれない。

odlogin_090916.zip 修正版

 岡三RSSの発注プログラムは、割と楽にできそうな気がする(作る予定は無い)。でも、変だよね。注文した時につけるIDは、単に2重発注避けの為だけなんだな。どうせなら、このIDで注文照会できるのが、まともな仕様だと思うんだが。番号なんかユーザからしたら全く意味ないじゃん。

Sunday, September 13, 2009

ジャスダック売買制度変更

 JASDAQが大証仕様に変更されるとのこと。RSSも修正されるだろうが、ユーザー側の変更としては、大証の処理と同じにすればいいだけで問題はないだろう。

9月24日 ジャスダック証券取引所の売買制度変更のお知らせ

 むしろ、変てこなJASDAQの板にムカついた人のほうが多かったに違いない。RSSで板の気配値を参照するにも、名前違うし、すげー面倒だった。今後はJASDAQ銘柄も含めて、同じような処理が出来てプログラムも楽になるはず。



 今までだと、場中はともかく、引け時、板がずれるとこんな感じ。まぁ、直す気は全くなかったが、無視しといて正解だったな。

Tuesday, September 08, 2009

当日(RSS起動前)

 前の日のデータはDBから読めばいい。で、面倒なのが当日のデータ。RSSがあるのに?って考えるのは、良く分かっていない人。RSSってのは、その名の通り、リアルタイムなデータを供給してくれる。但し、時系列のデータにはアクセスできないし、ただ垂れ流されるだけ。使う人側で、どうにかしてね、って仕様。アクセス直後からのデータは何とでもなるが、それ以前のデータは丸々抜けてしまうことになる。常に登録銘柄が固定ならば朝一に自動起動させておけばいいのかもしれないが、銘柄の追加、トラブルによる通信切断、と諸々の事情を考慮すると、当日データの補完機能は欠かせない。

 岡三RSSってのは、その点を考慮したのか、分足や歩み値のアクセスも出来るようになっている。でも、ただ出来るだけで、実用的かは別の話。一応、岡三RSSから1分足を読み込んでデータ補完するような仕組みを試してみたけれど、やはり無理。少なくとも僕の利用法、知識では、まともなスピードで動かせそうにない。

 結局、昔から使っているTick取得プログラムを使って、Tickサーバっぽいのを作った。どうせDBは別PCで動かすから、そちらに負荷を分散させる。同じPC上で、DDE作成中にゴチャゴチャ負荷かけると意味なく落ちたりもするし。



 銘柄登録時に、サーバにTick下さい、とリクエスト送る。サーバ側で、Tickデータを捏造する。完了したと返事きたら、サーバからデータ読み取り、チャート等に反映させる。このぐらいが、なんとか我慢できるスピードの限界かと。

Wednesday, September 02, 2009

前日、前々日、前々々日



 このソフトは、基本データとなる歩み値の動きから、シグナルを起こして売買のトリガーとするリアルタイムな最終執行用のツール(のつもり)なのだが。 一応、デイトレツールとして'も'使えるのに、前日のチャートも見れないっていうのは問題外って事で、配列を一次元増やして、複数日表示可能にした。

 前日以前の歩み値は、岡三あたりから読み込むのは、ハナから無理だし(分足ですら非実用スピード)、そもそもデータが足りない。当然、自前のDBから読み込むことになる。このような日中足用のデータは簡単に手に入らない。もちろん、個人でも、お金をだせば買えるわけで、株やってるような金持ちならデータ代、ソフト代なんか、日々の損益の誤差の範囲だろうと思う。
 僕は、貧乏人らしく地道に地道に集めて、ようやく4年分くらいそろえた。1000日分、日々Zipファイルで、5GBくらいある。FirebirdのDBサイズでも60GBくらい、意外にデータ量的にはたいしたことは無いが、ここまでくるのは、非常に大変な作業だったことは言うまでもない。

 とりあえず、日足と違って、極端にトレンドは出ないし、このくらいあればバックテストには十分かと。バックテストの結果はともかく、やらなくていいわけではないと思う。マネックスのツールで日中用の売買込みのシステムが作れるが、残念ながら短い足を使った時のデータ量が、致命的に足りない。でも、安いから、とりあえずやってみる分にはいいかも。

Tuesday, September 01, 2009

W32/Induc-A Virus

 久々にDelphiの話題見たと思ったら、ウィルスネタだった。今さら、旧Delphi環境使っている人は多くないとは思うが。

W32/Induc-A Virus (Compile-A-Virus)に関するQ&A

 ソフトにではなく、開発環境側に割り込むのは、何気に怖いな。僕んとこは平気だったが、一応、対策はしておいた。

 でも、なんで、旧Delphiのようなマイナー環境狙いなんだ?

Wednesday, August 26, 2009

岡三デスクトップ 自動ログイン 実験用

odlogin

 実験用のアルファ版です。自己責任でよろしく。

 常駐型アプリ。タスクトレイにアイコンが出ます。タスクトレイのアイコンの

  左クリック、起動、もしくは表示・非表示切り替え
  中クリック、終了(岡三デスクトップ共々)
  右クリック、メニュー表示
 ダウンロード

 odlogin_090826.zip odlogin_090916.zip 修正版 終了

 ※岡三デスクトップの正常起動確認済みな事

 ※「ログインID」が設定済みで、「ログインIDを自動的に保存」にチェック済みな事
 ※パスワードに記号類が含まれない事(英Windowsなら記号類も可)
 ※パスワード入力に失敗した場合は、手動で正しいパスワードを再入力してログインすること、連続で失敗すると口座ロックされます

 ※発注ダイアログ~機能は要注意、責任持てません

 odlogin.exe /r /p=password /d

 /r 起動直後に岡三デスクトップ起動
 /d 発注ダイアログのボタンを勝手に押す機能を有効にします
 /p=password 省略した場合は、入力画面で一時停止します

 Server 2003 でのみテスト

 改変・再配布禁止、自己責任で実行、実験終了後は、ファイル削除願います

Saturday, August 22, 2009

呼び出したエクセルのアドインが有効にならない

解決法が、Microsoft のページに書いてあった。

CreateObject コマンドを使用した場合、Excel でアドインが読み込まれない

どうやら、手動でアドインを追加すればいいみたい。

で、アドイン使えるのはいいが、終了時、上手いこと解放できない。あいかわらず、エクセルのプロセスは残ってしまう。

 とりあえずは、

①前回プログラムから作ったエクセルが残っていたら、強制終了させる
②使う分のエクセルをCreate
③プログラムから作ったか判断できるような、ブック名をつける
④そのエクセルのハンドルも覚えとく

⑤処理

⑥エクセル解放
⑦ハンドルを使ってエクセル閉じる

で、プロセスも残らず。

Wednesday, August 19, 2009

RT4.2 実験用

RssTrader

 カスタマイズ元のベース部分。拡張のDLLがないと、ほとんど何も出来ない、が、逆を言えば拡張側で自由にいじれるって事。

 実験用のアルファ版。来週くらいまでは、動くはず。動かしてみた人は、どの辺で落ちたか教えてもらえると有難い。たぶん、DDEを新規作成、つまり銘柄の登録中に失敗のパターンが多いと思う。

 ダウンロード

 rt_090825.zip rt_090826.zip rt_090827.zip 終了

  要マケスピ+RSS環境{+エクセル+岡三RSS}

  Tahoma フォントに、クリアタイプで有効な日本語フォントを追加設定(フォントリンク)して下さい(失敗して元に戻せなくなっても泣かない事)。

  Windows XP / Server 2003 用

  改変・再配布禁止、自己責任で実行、実験終了後は、ファイル削除願います。

Friday, July 31, 2009

もぐらたたき

 もぐらは、「日本株注文確認」というダイアログです。このダイアログ、ドットNETじゃない普通のアプリならば、スマートに処理できるんだけど、上手い方法思いつかず、力技で消してます。表示される「日本株注文確認」ウィンドウのボタンを実際に押してます。岡三デスクトップの自動ログインも、そうなのだけど、この手のアプリの確実な操作技とかあるのだろうか?



 岡三デスクトップの非表示・表示切替ツールは、結局、常駐プログラムにしないことには、まともに機能しないようだったので、自動ログイン&表示切替&エクセルKILLの複合ツールにしました。そのついでに、ダイアログも消せるわけです。

Sunday, July 26, 2009

岡三RSS、敷居高し、その3

 しばらくいじってみたけど、結局、CreateObject('Excel.Sheet' って感じでエクセルのインスタンスを立ち上げないと、岡三のアドインが有効にならない。'Excel.Application'ではダメなんだな。何が違う?アドイン自体は、何度もインストールし直して、エクセルを普通に立ち上げて使う分には問題ない状態になっているのに。

 で、起動したエクセルのプロセスの解放の仕方が、これまた謎だ。

 まー、正直な所、エクセルを経由せず、直接、通信できるようになればプログラムも面白くなるかもしれないが、現状では・・・。岡三デスクトップ自体に通信の機能ついているんだろうから、ガジェット作成用にでも、ぜひ仕様を公開してもらいたい。

 使い所にもよるが、OLE経由の手動更新アクセスは実用的とは言いがたい。外からエクセル制御なんてのは、やはり、本末転倒、素直にエクセル単体で完結するべき機能、能力かと。というか、この場合、リクエストしてからの反応の悪さが問題なので、エクセルを経由しようが、直だろうが遅いままなのかもしれないが。

 自動更新の関数は、試すまでもない。仕組み上、楽天RSS並みの動きは無理に思える。古臭いDDEなどと文句をつけていた楽天RSSは、神仕様であったといわざるをえない。マケスピ最強伝説は続く・・・。
 08/01, 02 追記
 CreateObject('Excel.Sheet'~が、どうのこうではなく、岡三RSSのアドインが有効になっているだけで、終了時にエクセルのプロセスを解放できないようだ。何も操作をせずに、そのまま閉じるだけでも起こる。アドインのチェックを外せば問題なく、プロセスは解放される。Delphi側の問題なのだろうか?

 とりあえずの対処としては、普通にエクセルを立ち上げ(手動なり、shellexecuteとかで)て、それに対して、GetActiveOleObjectして操作する。ただし、GetActiveOleObjectでは、エクセルのインスタンスが複数ある場合、目的のエクセルを選べない。プロセスやハンドルから直接、このエクセルを使いたいというような方法はないのか?
 08/05 追記
 OleContainer 使ってないVer

Friday, July 17, 2009

ゾンビのごとくシツコク

 表示される岡三デスクトップ。グラボの関係なのか、Server2003だからなのか、隠す設定にしておいても、何かのタイミングでしつこく表示される。上部のボタンのとこだけ表示されるならともかく、意味あるのか無いのか分からない黒グラデーションが、マジでウザイ。

 そんなわけで、強制的に表示の切り替えするツールです。実行する度に、表示・非表示のトグル動作をします。

odshow.exe

 コンソールもどきです。ショートカットを作って、起動時の窓を小さいのにしとけば、邪魔になりません。ランチャーにでも登録しておけばワンアクションで切り替えられます。
 ダウンロード odshow.zip 常駐タイプに移行

  Server2003でしかテストしていない

  改変・再配布禁止、自己責任で実行

Sunday, July 05, 2009

岡三RSS、敷居高し、その2

 何気に OleContainer を使って、エクセルを呼び出したら、それっぽく動いた。



 ティック(TICK)や分足(CANDLE)は、その値自体をトリガとして使うには遅すぎて無理だが、スピードが気にならない部分でなら使えなくもない。

 通常パラメータ(QUOTE)は、確かにリアルタイムに更新されるみたいだが、別プログラムから制御するのは限りなく面倒そう。

 Calculateイベントで、更新を捕らえても、どのセルが変化したのかを、どーやって知るのか未だ不明。エクセルのマクロってのは、ホント、単独アプリを組むよりはるかに難しい。

Saturday, July 04, 2009

岡三RSS、敷居高し

 岡三デスクトップの自動ログインプログラムを頼まれたついでに、Delphi+エクセル+岡三RSSが、どんだけ遅いのか確かめてやろうとしたが、早々に挫けた。

 RSS以前に、エクセルの制御が上手くいかない。Delphiから起動したエクセルのツールバーには、なぜか岡三のボタンが出てこない。素で起動したときとは、初期化の仕方がちがうのか、内部のRSSにリンクされないような感じ。

 色々いじくっているうち、素の状態でも動かなくなって、再インストール2回くりかえした所でギブアップ。僕には無理っぽい。

俺様のnpDesktopとかぶる、邪魔

 自動ログインのほうは、出来たには出来たが、かなりアバウトで、他所の環境だと動かないかも?ってレベル。松井のNSHSや、マネックスのマネトレのように、WEBから立ち上げってのも、それはそれで面倒なのだけど、岡三のは、さらに面倒かつ、今のところ微妙な出来にしかならない。ドットNETのプログラム判れば、わけなく作れるのかな?

Tuesday, June 23, 2009

リアル225



 特売や特買で始まる場合、先物だけ見ててもタイミングが取りづらかったりします。

 リアルな数値を見てたからといって、どちらに動くか分かるわけではありません。計算値そのものだけでは、何の役にも立たないと思うし。

Sunday, June 07, 2009

シャットダウン プログラム

電源の制御用、コンソールプログラム、引数なし、問答無用で実行されます

pwd.exe
シャットダウン

pwh.exe
ハイバネーション

pwr.exe
リブート

pws.exe
サスペンド
 ダウンロード pw_090607.zip 終了

  一応、Windows XP / Server2003 用

  改変・再配布禁止、自己責任で実行

  shutdown.exe のオプションを覚えられない僕のような人のためのツール

Saturday, June 06, 2009

マケスピの自動ログイン

MarketSpeed用、自動ログイン コンソールプログラム
 マケスピとRSSの起動・強制終了をワンアクションで行います
mslogin /起動パラメータ=hoge

 /d=directory(省略可)
 /w=left,top,width,height(省略可)
 /i=id(省略可)
 /p=password(省略時は、ログイン画面で停止)

 パラメータ無し >> 起動中の全てのマケスピ&RSSを強制終了
mslogin /p=hogehoge
 普通に起動

mslogin
 強制終了
mslogin /d=D:\ms7\MarketSpeed0
 'D:\ms7\MarketSpeed0' にあるマケスピを実行

mslogin /w=0,0,640,480
 サイズ指定して起動

mslogin /w=
 最小化の状態で起動

mslogin /i=MSDEMO /p=MSDEMO
 IDとパスを指定して自動ログイン
 ダウンロード mslogin2009_0606.zip mslogin2009_0614.zip

  MarketSpeed 5.22 SP1 以降、Windows XP / Server2003

  改変・再配布禁止、自己責任で実行

 用途毎にショートカット作れば便利なはず。暗号化したいなら呼び出しアプリでも作ってください。

Tuesday, May 26, 2009

マケスピのVer

 普段使っているマケスピは、Ver5.22SP1で、225ミニのテスト用にVer6.2を使っていた。

 昨日、まともにインストールしてあるVer7.23のほう動かして(起動時に最新になった)気づいたのだけど、225ミニの動きがマトモなんだな。複数インストールしている弊害なのか、接続先のサーバの違いなのかはっきりしたことは分からないが、並べて見てたら新しいほうは、淀みなく動く。とりあえず、気持ち悪いので6.2は捨てることにしよう。

 225ミニはテストのときぐらいしか使わないから、ほどんどVer5.22SP1を使っているぐらいなので、不具合なければ、VerUPしない方針なのだけど。

Friday, April 24, 2009

岡三RSS 動かしてみた

 数字が動くようになるまで、30分かかった。動かすまでの注意書きが多いな。楽天とは仕組みが違うらしいので、エクセルでもバリバリ動くのかと期待したが、何かそれなり?こんなもん?アプリつくらないとダメじゃね?

 自作アプリから使うには、直接DLLを使えば何でもありっぽいが、仕様は公開されないだろうし、RssTraderの岡三版は、制限上無理なようなので、とりあえず楽天RSSが終了するまでは放置決定。

 RSSのログイン部を受け持ってる?のが岡三デスクトップみたいだが、こちらも何だか。。。。。

 とりあえず、アニメーションはいらないよな。どうやら、岡三の人はエクセルから株取引できれば、サラリーマンでも仕事中に使える、などと考えてる(雑誌記事より)ようだが、冗談でもこの不景気な時、そんな事言わないほうがいい。どこに仕事中に株取引容認する会社があるのよ。さらに言うと、エクセルの裏では、株ソフト(岡三デスクトップ)が動いていなきゃいけないし、そもそも仕事のパソコンに株取引ソフトをインストールするとは何事かと。さらに、さらに、つっこむのならば、ネットの管理者は接続先のログを調べるのであって、証券会社にアクセスなんぞしてたら一発でわかってしまう。

 そんな事は、素人以外は知っているんで、携帯やら、インチキ経路つかってだまくらかしたり苦労するのよね。

Tuesday, April 14, 2009

日経225ミニ

 マケスピの先物の歩み値の表示に制限が出来たのは、今思うと225ミニのせいなのかと思う。尋常じゃない数の注文流れているんで、まともに扱うには負荷が掛かりすぎるってな事なのだろう。家の回線ADSLの状態もたいして良くはないが、それでもチャートすら開いてないのに、マケスピ本体の反応が悪い。人が多いとも思えないが。

 05/26 訂正、追記

 Ver7.?のマケスピは、225ミニもマトモに動くようだ。

 そもそもDDE通信では、データは垂れ流しなのだから、証券会社側のツールと違ってデータの前後の関係が判らない。受け手側で勝手に補完するしかない。処理が追いつかないと、僕のプログラムでも、データは丸まりまくっている(複数回の変更を取りきれない)。コレがプログラムで解決できるのか、通信上の限界(そもそもデータが来てない?)なのか聞かれたことがある。結局よくわからなかったので、技術不足でスミマセンと謝っておいた。以後、同じ質問には、別に歩み値をつくることが目的じゃないし、そーゆーものですから、気にしないで(笑)、と答えることにしている。

 DDE側の延滞が許されるならば、きっちりデータ数的には送れるのかもしれないが、遅れた時点でリアルタイムじゃなくなっているのだから、追いつかないなら抜けても問題無しと僕は考えている。

Thursday, April 02, 2009

岡三RSS

 岡三オンライン証券が、Excelで動くアドインツールをリリースするらしい。

http://www.okasan-online.co.jp/ont/function/okasan_rss/

 なんと、発注まで可能らしい。実際のところ動いているの見てみないと何ともいえないが、少なくても楽天のものよりは高機能であることは間違いない。

 マネックスのRSSもどきは、パラメータ数が足りなくて板の再現とか難しいが、こちらは何でもあり?っぽい。歩み値とかまでとれるのなら、自分でデータ補完しなくていいし、チャートも普通に描ける。でも、ライセンス上拙いんじゃなかったっけ?

 岡三デスクトップというガジェット・ツールの機能の一部なようだが(ガジェットとか全くいらないが)、楽天RSS並にマトモに動くのならば素晴らしいことこの上なし、期待したい。

Thursday, March 26, 2009

RT4.0

 俺様、渾身の大人のゲームソフト。

RssTrader4.0

 Ver4.0とか言いつつ、外見はあまり代わり映えしませんが、中身は別物です。本体は株データの入出力と、監視銘柄の管理、それに板表示くらいで、かなりスッキリです。マケスピとRSSさえあれば、そのまま、動くはず。

 スッキリはいいのだけど、それでは何も出来ないので、ユーザーが作成するロジックDLLと、各イベントごとの外部プログラムを必要とします。つまり、全面的に外部依存です。決して手抜きではありません(笑)。当然、使うユーザーは、プログラム知識必須です。

 思うのだけど、結局のところ、戦略など一人一人違うわけだし、中途半端なロジック実装など邪魔なだけではないのか。スクリプトとか言ってプログラムを組ませるなら、余計な制限付けるよりも、より自由でマトモな開発環境が使えたほうがいいのじゃないのか。誰でも使えるソフトってのは、何でも出来るけど、だから何?的なものになるだけかと僕は思う。

無料版の Turbo Delphi でDLL作成

 大体にして既存のロジック使うのならば、ありがちな他ソフト使えばいいし、それでも組み合わせて使いたいからメジャーなのだけでも実装しろよ、ってな意見も判らないでもないですが、個人的には、面白くも何ともない。結果として似たようなロジックになってしまうのは仕方ないとしても、その過程が面白いのじゃないのか。

 株プログラムってのは、かなり面白いゲームソフトであると僕は認識している。相手は、プロからアマまで多種多様でリアルに存在するし、ほぼ毎日参加できる。実弾使うと、さらに面白さ倍増。

 博打なんだから大負けもあり。儲かることが前提で株やっている人はそもそも間違っている。僕のソフト使ったら必ず儲かる、なんて事は無い。ソフトや本にありがちな「~儲かる」は、買う人間の無知・無能ぶりの現れかと。

 攻殻機動隊の話で、本人はとっくに死んでいたのに、コンピュータがピコピコ取引を続けていたっていうやつ。このソフトの目標はあのレベル(大負けせずにね)。

03/30 追記

キャプチャ動画 34.8 MB(展開すると未圧縮AVI 1.84 GB、サイズ注意)

キャプチャ動画 2 49.6 MB(展開すると未圧縮AVI 1.84 GB、サイズ注意)

 ベース部分はこんな感じ。3つほど適当な計算させてるだけ。最近のしょぼい出来高じゃそれなりに動くし、最新のCPUで組めば十分実用になると予想。

 ただ、実際に使うとなると、RSSからのデータだけでは足りなくなってDBと接続云々まで考えないといけなくなる。非リアルタイムなデータで済むなら、あらかじめ必要な計算をしておいて、起動時に初期データとして持たせるのが簡単。常にDBを更新し続けないといけない場合には、メモリ上にDBをのせればいいのかもしれない。

Sunday, March 22, 2009

今更ながらTurbo Delphi

 ようやくというか、Turbo Delphi使ってみたのだが、コレが無料で使えるのは何ともすごいです。大したものです。使い方も制限されないし。ただし、古いDelユーザーの僕には、M$ツールを使っているようなもどかしさもあり、コレに変えようなどという気は全く起こらない。

 そもそも、コレで、Delphiを新しく始めようという今時のユーザーは何処に存在するのか?Winアプリを作ってみたいのならば、間違いなくM$開発環境でいいし、Unix系ならば、Javaあたりでいいだろう。スクリプト系の言語には、それなりに得意となるポイントがあれば存在意義もあるのだろうが、現在のDelphiは何する為のもの?

 一応、Delphiページっぽいのをやってたりする僕を、Delphi信者だと思っている人もいるようだが、はっきり言って違う。断じて違う。使えるのがDelphiだけだからというだけという消極的な理由だけです。それでも、XPや2003SVRで動くWin32アプリ製作ツールとしての旧Delphiが優秀である事は確信している。よって、コレが崩れるまでは、Delphiを使い続けるはず。

 そんなわけで、僕のソフトにはPPAインタプリタを組み込んでパスカルを強要し、ロジックルーチンは外にDLLにしたから、Delphiで思う存分、DLLごと自由に作ってね、と嫌がらせを続けるのである。でも、DLLは、入出力型さえ合えば、Delphiじゃなくてもいいのか。

 かなり使えそうな無料の環境あるおかげで、Delphiは自分で買ってね、と言わなくて良くなったのは僕にとってはいい話なんだろうな。

Thursday, February 19, 2009

クリック証券のAPI終了

 イマイチ使えなそうだからとスルーしてきたのだが、いつのまにかサービスそのものが終わっていたようだ。HPを見ても終了した理由がよく判らないのは?

 他の証券会社には無い、ユニークな仕組みだったのに、こーゆーいい加減な終わり方をしてしまうと、会社的には大いにマイナスだろう。

https://www.click-sec.com/corp/guide/kabu/webservice/

 APIの無い証券会社であっても、自分で使うのならば、Webページを解析したもので処理させても問題ないように思う。ただ、想定外のアクセスは嫌がられるだろうから、
迷惑な客にならないよう十二分に注意する必要がある。いい加減なアクセスしていると、めぐりめぐって自分の首を絞めることになるんだと常々思うようにしている。

Tuesday, February 17, 2009

システム考



 日中取引用システムを、ランニングコスト基準で考えると、こんな感じになる。

 DBは、別PCにしておくのが無難。最近のVMは、結構マトモに動きます。

Wednesday, December 03, 2008

RSSの代替

 最近、RSSを使わない株プログラムをつくっている。つまり、DDEではなく、他の手段で株データを取って自作アプリから利用する仕組みを実験している。

 で、結論から言っちゃうと、かなり制約多いし問題もあるが、リアルタイム日経程度ならばそれなりに可能のよう。データは、別PC(VMで可)でつくって、ソケットで受け取って展開する。



 データ元が違うVERを組んでいたが、3つ目にして確信した。225の監視のように単純パラメータしか使わないなら、わざわざRSSを使う必要はない。

 サブ(VM)側で、データを取得して、メイン側に転送するだけのプログラムを作成。

 メイン側、表示部分は、データを受け取って表示させてるだけ。一方向だけの通信。

 一応、形としては、ネットワーク経由だが、同じマシン内なわけで処理速度も問題ない。コンマ数秒遅れの精度で良いなら、この方式で十分。起動は速いし、落ちないし(笑)。RSSは繊細すぎる。エクセルは論外としても、プログラムを組んでも大量のデータをやり取りするのに、DDEの仕組みはダメダメな気がする。

 ちなみに、まともなRSSの代替案としては、マネックストレーダーが、RSSと似たようなエクセル側と連携可能らしい(使ったことがない)。あと、タワーの有料サービスは、リアルタイムといいつつ、60秒制限?説明読んだけど意味不明。

Wednesday, October 22, 2008

株パソ考2008

 NECの Express5800/110Ge を、DB用に買いましたが、気に入ってデスクトップ用途にも、もう一台追加しました。DB用は、グラフィックボードの端子をカット(Pカッター+やすり)。デスクトップ用は、マザーのスロットを加工(半田ゴテで溶かした)。サポートや保証を無視できるなら、改造(ってそんな大げさなもんじゃないけど)もありです。失敗するとかえって高くつし、そーゆーのが苦にならない人じゃないとダメですが。

 でも、コレ なんかは、まんまデスクトップ???

 デスクトップ用、Server2003。



 DBサーバ用、XP Pro。株データ作成・更新。



 ツールがヘナチョコで、マルチスレッドが上手く動いていないせいか、Core2のCPUを載せたデスクトップ機とたいして処理時間が変わりません。歩み値データは、30分弱で作成完了。Radeonローエンドグラボなので、ハードウェアアクセラレーションは全OFF。CPU側で処理することになるのかな?BSEL MODしたCeleron430あなどり難し。

Sunday, March 09, 2008

MarketSpeed v7.0 + RSS v1.23

 RSSは特に変わった所は無いように思う(個別株以外は知らん)。

 新しい機能で使えそうなのは、チャートの右側部分を消せるようになったこと。コレは良い。個人的にはチャートだけ見られればいいわけだから、ジャマで仕方なかった。

 発注専用ツールとして、Nano とかいう別アプリが追加されている。プログラムする人からすればどーでもいーような出来。コイツをプログラム操作ってのも難しくはないんだろうが、注文照会の一覧をとるやり方が思いつかない。結局、Webページから読み込んだほうが現実的かと。発注APIでも公開してくれたほうが客も増えると思うんだが。

03/13 追記
 RSS.EXE のクラス名が、ATL:00509B2B に。マケスピ本体は、「MDIFrame」で変わらないと思うが、RSSはコロコロ変わるので、ハンドル調べたりするときには、クラス名は使わずに、プロセスから引っ張ってくるようにするべきかと(って普通そうしてるか)。

Wednesday, February 13, 2008

RT3



 まぁ、所詮アマチュアなもんで、とりあえず何も考えずに、いきなり思いのままにソースを打ち込んでいくわけです。で、かなり進んでから、ハタ、と気付く。あーダメじゃん。根本的にダメダメじゃん。凡人の閃きは、タダの勘違いな事が多いのです。

 最近、職探し中のヒマにまかせて、株関係のソフトの組み直しをしている。銘柄DB更新、株価DB更新、マケスピ関連、この辺のツール類は順調に完了。が、大物のツールがかなり大変。昔のソースは、自分で組んだくせに何やってるのか意味不明なんで、結局、面倒になって、サラから組む事に。

 RssTrader3、ベースの部分をチマチマ作業中。今の段階のグダグダ未整理ソース、10000行近くありそうだな。とりあえず、ロール紙に打ち出して、広い部屋でハサミ片手に切り貼りしたい気分です。

Tuesday, July 03, 2007

Turbo Delphi

Turbo Delphi Explorer Homepage

 なんでか知らんのですが、Delphiが「Turboシリーズ」として新しくなってます。Turboといえば、僕的には「Turbo C」なので、はるか昔の懐かしい響きです。

 無料版は
・コンポーネントの追加が出来ない
・ネット周りのコンポーネントが無い

ぐらいの制限くらいしかないのか。追加分のソースさえあれば、いわゆるビジュアルな部品の使い方が出来ないだけで、実用上は問題無い?って気もするが、違うのかな?

Friday, October 27, 2006

MarketSpeed v6.0 + RSS v1.2

-- 追加 --

市場部名称
市場部略称
特別売気配フラグ
特別買気配フラグ


-- 削除 --

配当日

かな?
10/29 追記
 RSS.EXE のクラス名が、ATL:0050F218 >> ATL:00522238 に変更。

Thursday, December 01, 2005

RSS とは何?

 RSSというのはエクセルを使って株情報をリアルタイムに取得できるマーケットスピード独自の機能です。Realtime Spread Sheet というのが正式名称です。ウェブ・ページやブログの更新情報を伝えるRSS(RDF Site Summary)と混同しそうですが、全く関係ありません。

 他でも株価情報のサービスは有るのですが、いかんせん高額で、趣味程度で使うには難しいのです。この楽天証券のサービスは、いずれ有料化されるようですが(2005/02現在、無料)、ぜひとも安価に提供してもらいたいものです。株のプログラムを組むような人(少数派かな?)には必須の機能です。この機能だけでも楽天証券は使う価値があります。

 楽天証券の資料

  リアルタイムスプレッドシート機能
   ITS/topinfo/V_TOP_marketspeed03_43_2.html

  RSS 数式(入力関数)について
   MarketSpeed/onLineHelp/msman1_11_4.html

  Excelサンプルワークシート
   ITS/topinfo/RSSExcel_sample.html
 RSSの実体は、アプリ間の通信手段である DDE そのものです。 DDE というのは、Dynamic Data Exchange で、かなり今さらな古い機能のようですが、割と簡単かつ実績もある方式で色々なソフトに使われています。この DDE に対応できるソフトであれば、必ずしも通信対象がエクセルである必要はなく自前のプログラムから自由に操作できます。

 エクセルが得意な人なら、VBAを駆使して、かなりのものを作れるような気もしますが、根本的にエクセル自体の処理の遅さの問題が解決できないと思います。色々と混みいったことがしたいのならば、結局、VBなり、Cなりでプログラムを組んで使うことになります。

RSSに必要な環境

 楽天の 資料 によると、PentiumⅢ650MHz以上、メモリ 256MB以上を推奨との事です。古いパソコン以外は、スペック的に問題になるようなことはないとは思いますが、OSが、Windows 2000か、XPになるので、512MB程度のメモリはあったほうがいいと思います。

 RSSのプログラムで、負荷が大きくなるのは、リンク(監視)している対象が多数変動するときで、具体的には、(RSSが値の変更を知らせてくれる回数が増える)=(それに合わせた処理も実行しないといけない)で、重くなるということです。各プログラムの内容にもよるとは思いますが、一日中、大きく変動しまくるわけではないので、最新スペックのマシンでなくても大丈夫ということです。

プログラム上 のメモ

 DDE の利点は、データを自動で更新できることです。あらかじめ登録しておけば DDE 側が処理します。具体的に言うと、現在値をチェックするのに最新のデータが欲しいからといって、タイマーをかけて自分からデータ取得する必要はありません。毎回読み込んでいたら処理が重くなってしまうだけで銘柄数が増えてくると使えないプログラムになります。値が変わった次点でイベントを受け取る仕組み(コールバックや対応コンポーネント)があるのでそれを使います。
 RSS は、同時にアクセスできる個数に 300という上限があります。とうぜん、データ量は個数に比例して多くなるので制限は仕方の無いことだと思います。300銘柄以上をプログラムで扱いたい場合、切り替えながら使うしかありませんが、場中に高速で鬼切り替えしながら全銘柄廻すような使い方は、ナンセンスです。PC上の負荷だけならともかく、RSS のサーバにものすごい負担がかかるからです。F5アタックと何ら変わりありません。
 DDE は、常に新しい値を送ろうと努力はしていますが、必ずしも完璧にこなせるわけではないです。仕組み上、物理的に間に合わない処理は落ちてしまいます。マケスピ本体の板表示が完璧でないのといっしょです。某所で RSS から歩み値をつくる話が良く出てくるのですが、これもかなりナンセンスな話で日経225先物のようにパタパタ動く銘柄のデータは取りきれないと思います。これはバグでもなんでもなく、そういうもので、そもそも歩み値をとるために一日中 RSS を監視するのは、無駄というか効率悪すぎだとは僕は思うのですが。 もちろん、板情報等の監視目的の時系列データが必要ならば、話は別です。

DDE のプログラム環境

 DDEは、大昔の機能なので普通に出回っているWin32のプログラム環境であれば問題なく対応したものが作成できるはずです。ただ、最新のプログラム環境であるマイクロソフトの .NET とかいうのではDDEはサポートしないとかいう話も小耳に挟みましたがどうなのでしょう?

 僕自身は、ボーランドの Delphi を使っています。競馬ソフトをつくるために必死で覚えたのですが、始めた頃は、まだまだマイナーな存在で、参考書すらあまり無い状態でした。ここ最近では、それなりにメジャーになった(既に下火・・・)ので、分からない事があっても、Delphi 関係のサイトも多く存在していて、ネットで調べれば大抵のことは解決できます。

 言語は何であれ、何か目的がなければプログラムなど勉強しようとは思わないわけで、株やってるなら趣味と実益を兼ねて勉強するのも面白いと思います。少なくともエクセルで、複雑なマクロを組むぐらいなら何らかの言語を習得したほうが、結局は役に立つし応用もきくはずです。

 ちなみに、Delphi 5ユーザーの僕の当てにならない記憶によると、
~Delphi 7 >> 一般的な、Win32アプリ
Delphi 8 >> .NET Framework
Delphi 2005 >> C#Builder統合

だったと思います。C#や.NETなんかいらない人は、Delphi 7でいいはずです。僕も欲しい。

RSS の DDE 書式

DDEのプログラムで使うのは、「サービス」、「トピック」、「アイテム」の3つです。サービスは、常に「RSS」で固定です。トピックは、「銘柄.市場」のコードの組み合わせ。アイテムは、「各情報パラメータ名」になっています。パラメータ名に関しては、楽天の ヘルプ か、マケスピのプログラム・フォルダにある「.def」ファイルを見ればいいでしょう。
 情報コード 国内個別株
  item600.txt (MarketSpeed Ver6.0)
  item522.txt (MarketSpeed Ver5.22)

  楽天のヘルプページでは、関数名に半角数字を使っていますが、正しくは全角数字です。
EXCEL

 RSS|' 銘柄コード . 市場コード '! 情報コード

 例)
  =RSS|'4755.Q'!現在値

DDE

 サービス >>> RSS
 トピック >>> 銘柄コード.市場コード
 アイテム >>> 情報コード

 例)
  SERVICE 'RSS'
  TOPIC '4755.Q'
  ITEM '現在値'
 東証(マザーズ)、大証(ヘラクレス)は、ほぼ同じデータ仕様ですが、店頭はかなり違います。仕組み自体が違うので当然です。こっちは数字が出るのに、違う銘柄だと値が入らない、とかいうのは市場の違いだったりもします。

 店頭株扱う人は、予め考えておいたほうが良いでしょう。数値の桁数とか文字列の長さとか、細かな部分は資料としては公開されてないので、各自適当に決める必要があります。

Delphi / DDE #1

 ※前置きとして、ここに書いてある以上の事は、僕は知らないので質問されても答えられないので、あしからず。自分で使うちょっとしたツールを作るためにDelphiを使っていますが、本職ではないし、マトモなソースは書けません。疑問なところは、知り合いのソフト屋さんを捕まえて聞いて下さい。
 Delphiで、DDEを使うには、自分でAPIゴリゴリのイチから書くか、用意されているコンポーネントを使うかの2通りです。玄人ならば、ゴリゴリで良いし、僕が逆に教わりたいくらいの話で、ゴリゴリは書けなくても、何とかコンポーネントくらいは使えるレベルの人向けに解説します。

 具体的に使うのは、「TDdeClientConv」と「TDdeClientItem」の2つのコンポーネントです。名前の通りクライアントですが、対するサーバは、MarketSpeed と一緒に動かす 「RSS.EXE」になります。

イメージとしては、

楽天サーバ --- (MarketSpeed)
-- RSS.EXE <-----> [ TDdeClientConv -- (TDdeClientItem) 自アプリ]

という感じかと。

 通信といっても、ソケットがどうのとか難しい話は、一切ありません。「RSS の DDE 書式」で書いた通り、使うキーワードは、「サービス」、「トピック」、「アイテム」の3つだけです。「TDdeClientConv」が通信の窓口で、データの振り分け先が「TDdeCilentItem」というのが、僕の理解です。「TDdeClientConv」だけでも、通信できないことも無いのですが、実際に自動更新させるマトモなプログラムにするなら「TDdeClientItem」も必要になります。

Delphi / DDE #2

で、実際のコードを書きたいところですが、テストするにしても、RSS.EXEがマトモに動いているのは、日中だけなので、この解説内では、仮のDDEサーバを使います。使うキーワードが実際のRSSのものとは違いますが、通信部分の理解には役立つはずです。

テスト用の DDEサーバ

 ダウンロード ddeserver_051220.zip (381kb) 終了



 実行して、下部のテキストをエクセルに貼り付けてみて下さい。スクロールバーで数値を変化させれば、セルの値も合わせて変化するはずです。要は、これと同じような動きをするクライアントアプリを作ればいいわけです。

Delphi / DDE #3

「TDdeClientConv」で、DDEリンクの接続と切断の仕方を覚えます。
 空フォームにTButton x 2, TDdeClientConv x 1 を追加して、それぞれのボタンのイベントを以下のようにします。

procedure TForm1.Button1Click(Sender: TObject);
begin
 // リンク接続
 DdeClientConv1.ConnectMode := ddeAutomatic;
 if DdeClientConv1.SetLink('ddeserver', 'topic1') then
 begin
   // データ読み出し
  Button1.caption := DdeClientConv1.RequestData('item1');
 end;
 // リンク切断
 DdeClientConv1.CloseLink;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 // リンク接続
 DdeClientConv1.ConnectMode := ddeManual;
 DdeClientConv1.SetLink('ddeserver', 'topic1');
 if DdeClientConv1.OpenLink then
 begin
  // データ読み出し
   Button2.caption := DdeClientConv1.RequestData('item2');
 end;
 // リンク切断
 DdeClientConv1.CloseLink;
end;

 #2のテスト・サーバを先に起動しておいてから、このプログラムを実行します。ボタンを押すとサーバ側、上2つのスクロールバーの値をそれぞれ取得できるはずです。

 通信手順的には、「リンク接続 >> 通信可 >> リンク切断」となります。「.SetLink('サービス', 'トピック')メソッド」が接続の開始です。テストサーバのサービスは、「ddeserver」、トピックは、「topic1」と「topic2」です。よって、「DdeClientConv1.SetLink('ddeserver', 'topic1')」という形式で指定します。

 「ConnectModeプロパティ」が、「ddeAutomatic」と「ddeManual」の時、それぞれリンク接続の仕方が違います。「ddeAutomatic」ならば、「.SetLink」だけで接続されますが、「ddeManual」の時は、自分で「.OpenLink」を呼び出さなければなりません。

 接続・切断は、特に理由がないのなら一度接続したら終了時まで繋いだままで構いません。この同時に接続できる数の上限が、300個です。リンク接続時に若干の時間は掛かりますが、繋がってしまえば、変化のあった項目だけを自動更新してくれる仕組みが、「TDdeClientItem」にあります。

 「.RequestData('アイテム')メソッド」で、データを読み込めますが、特殊な使い方するとき以外は使わないと思います。
 <宿題1>

 ・TButton x 1
 ・TLabel x 6
 ・TDdeClientConv x 2

 ・起動時にリンク接続、終了時にリンク切断
 ・ボタン押したら、6つのデータをラベルに表示する

Delphi / DDE #4

「TDdeClientItem」で、サーバ側の値の変化に合わせて、データを受け取ります。空フォームに TDdeClientConv x 1 を追加して、起動時にリンクを接続、終了時に切断するようにしておきます。

 さらに、TButton x 1, TLabel x 1, TDdeClientItem x 1 を追加、リンク接続時に、以下をコードを加えます。

// クライアントの関連付け
DdeClientItem1.DdeConv := DdeClientConv1;

// アイテムの設定
DdeClientItem1.DdeItem := 'item1';

 「.DdeConvプロパティ」に、先に作った TDdeClientConv を指定。「.DdeItemプロパティ」に、読み込みたい「アイテム」を設定して関連付けます。リンクが接続済みならば、データは「.Text プロパティ」に入ります。

 ボタンのイベントに

procedure TForm1.Button1Click(Sender: TObject);
begin
 // データ読み出し
 Label1.caption := DdeClientItem1.Text;
end;

 実行して、ボタンを押せばサーバの topic1 -> item1 の値が表示されるはずです。ただ、それはボタンを押した時点での値です。

 button1 を削除して、DdeClientItem1 の 「OnChange イベント」に

procedure TForm1.DdeClientItem1Change(Sender: TObject);
begin
 // データの受け取り
 Label1.caption := DdeClientItem1.Text;
end;

 サーバ側の項目の値が変化した時に発生するのが、「OnChangeイベント」です。ここで、データを受け取る処理を入れておけば、常に最新のデータを扱えることになります。値の変化が、2秒後なのか、20秒後なのか、20分後なのかプログラムする側は、気にする必要はなく、イベントにデータを更新する処理を入れればいいだけです。
 <宿題2>

 ・TLabel x 6
 ・TDdeClientConv x 2
 ・TDdeClientItem x 6

 ・何もしなくてもserver側と同期したデータがラベルに表示される

Delphi / DDE #5

 後は、実際の楽天のRSSサーバで試します。マケスピ起動後に、同フォルダにある「RSS.EXE」を実行します。タスクトレイ内にアイコンが出て、「RSS 接続中」のポップアップが表示されていれば通信可能です。接続できていない場合は、右クリックから再接続も可能ですが、立ち上げ直した方が早くて確実な気がします。僕はマケスピ共々、プログラムで起動・終了できるようにしてあります。

 楽天RSS用のプログラムの、「サービス」、「トピック」、「アイテム」は、それぞれ「RSS」、「銘柄.市場」、「各情報パラメータ名」なので

 .SetLink('RSS', '4755.Q');

 .DdeItem := '現在値';

とかになるわけです。

 とりあえず、最低ここまで分かっていればコンポーネントを使ったプログラムは組めます。ただ、実際にテストしてガンガン使ってみると、アレ、なんか・・・・・(略)。
 DDEの通信部分が出来たら、後は、各自自分のやりたい処理を組み込みます。表計算風ならグリッドの操作、グラフ描くならグラフィック、データが増えてきたらデータベース・・・・。覚える事は、山のようにあるのだけど、必ずしも中身について全て理解する必要は無いと僕は思っています。どこからかパクってきたようなソースを使ったとしても、あれこれやっている内に少しづつ進歩していけると思います。

RSS使用例 #1

リアルタイム日経平均
   そんなの、マケスピだってリアルタイムじゃん、と思うかもしれませんが、マケスピのは時々しか更新されないので、本当の意味でリアルタイムじゃないのです。多少早く値が分かったところで意味ないし、先物見たほうが早いだろ、っての最もですが、まぁ表示させてみると中々面白いもんです。

 先物に右往左往する様子を見てると、個別株をやってるのが馬鹿らしくなってきます。僕に株やる資金あったら、間違いなく日経225先物やりたい。目茶苦茶楽しそうなんだもの。

  日経平均プロフィール


RSS使用例 #2

発注ツール

 僕が作ったのは、ライブドア証券と岩井証券のだけど、もう仕様変わったのか、動かないので、Delphi の設計画面。注文中、又は、これから注文するの銘柄の現在値をRSSで表示させていた。発注するのに、必要な単位株数とか銘柄名とかは、DBを使ってたような気もするが、何気にRSSで引っ張って来たほうが速いかも。
   下段に、余力金額、持ち株、売り注文、買い注文、ミニ・ブラウザ(適時開示情報とか)。上段というか、MDI枠に、注文情報。


 要は、注文中の数だけ、MDIの子ウィンドウが並ぶ、取り消し・訂正はその子ウィンドウから直接出来る。分かり易いことこの上ないと思うのだが、なぜ素人の僕でさえこんな感じで作れるのに、証券会社は、使いにくいブラウザ上の発注しかサポートしないのか理解に苦しむ。

 スクリーニングツールから、自動で発注ってのもやったが、デイトレの自動発注やるなら、とりあえず、すばやく注文の通る証券会社を探してからの方がいいです。
 プログラム的な話をすると、証券会社とのやり取りは、自前でPOST/GETしているのではなく、TWebBrowser コンポーネント(中身はIE)を使って通常のブラウザ操作と同じように操作してHTMLから、データを取得しています。手順的にも問題ないし、自動化しているだけで、変なデータを送りつけて証券会社を困らせることもないです。
 勘違いする人がいるといけないので、注意書き

 RSSは、楽天証券ユーザーのためのサービスで、それを他証券会社の取引用に使うのは非常識です(建て前上ね)。この発注プログラムは、僕個人の利用だけだし、それ以前に、たとえ知り合いであっても、直接金銭部分に絡むプログラムはしたくない、ってのが正直なところです。

RSS使用例 #3

ザラ場板
   そもそも、マケスピの板の表示は画面効率が悪すぎだと思う。最近の10分割のマイページがあればマシかもしれないが、根本的に使い勝手がよくない。

 板なんぞ、ワザワザと思うかもしれないが、ワンクリックでマケスピに銘柄コード送れると、切り替えがすごく楽。もちろん、アラート付き。難は、JASDAQに対応してないことか。

 出先から PHSで見るってのを組み込んだが、企画倒れだった。

RSS使用例 #4

データベース

RSS使用例 #5

リアルタイム・スクリーニング

Delphi / マケスピのコントロール

マケスピ

株系リンク

  マーケットスピード http://www.rakuten-sec.co.jp/
 東証 http://www.tse.or.jp/

 マザーズ http://www.tse.or.jp/mothers/

 大証 http://www.ose.or.jp/

 ヘラクレス http://hercules.ose.or.jp/

 ジャスダック http://www.jasdaq.co.jp/
 technobahn http://www.technobahn.com/

 Yahoo!ファイナンス http://quote.yahoo.co.jp/

 日経goo http://nikkei.goo.ne.jp/

 トレーダーズ・ウェブ http://www.traders.co.jp/
 CNN Money http://money.cnn.com/

 Globex http://www.cme.com/

 FutureSource http://www.futuresource.com/

プログラム系リンク

 ◇ Delphi ◇

  Osamu's Square http://www2.big.or.jp/~osamu/

 Delphi Users' Forum http://forum.nifty.com/fdelphi/

 中村の里 http://www.asahi-net.or.jp/~HA3T-NKMR/

 Brian Cryer's Delphi Notes http://www.cryer.co.uk/brian/

 Torry's Delphi Pages http://www.torry.ru/
◇ Software ◇

  やました工房 http://www001.upp.so-net.ne.jp/yamashita/

 ウィンドウエクスプローラ、プロセスウォーカーといったWindows上で実行中のアプリを調べるのに便利なツール類があります。
 Firebird http://www.firebirdsql.org/

 オープンソースのSQL DBです。僕が使っているプログラム環境Delphiとの相性もいいようで、InterBaseと同じような感じで使えます。
 IBexpert http://www.ibexpert.com/

 FireBirdの管理用GUIソフト。

それで儲かるの?

 「プログラムまで作って、それで儲かるの?」とか、たまに馬鹿にされ気味で聞かれるのですが、少なくとも僕が組んだプログラムは、ただのツールであって、マケスピがいいか、カブマシーンがいい、とかの道具としての使い勝手の話で、損益と直接の関係はないのです。作っている本人は、それが無いよりは有ったほうが有効だと、強く信じているわけですから、「損をしたけど、ツール使っていなかったら、さらに大損してたんだろうなぁ」、とポジティブ(笑)に考えないといけません。
 もちろん、売買シグナルを出すタイプのプログラムならば、良し悪しが、直接の損得に結びつきます。本当に儲かるプログラムが出来たならば、それ表に出す必要はないはずですが、なぜか存在します。謎です。そのうち、僕もシグナル出すロジックを組み込んでみようと思っていますが、今はそれ用にデータ集めをしているところです。日足は研究しつくされてると思うんで日中足で動くタイプです。

 数パターンのロジックを組み込んで、それぞれ別の名前で売り出す。一つぐらいは良い成績だせるものが出来る。成績悪かったものは、切り捨てて、ロジックは同じで別の名前で売り出す。これをループ。鴨が入れ替わり立ち代りお金を落としていってくれる。そういうのやりたい。やはり、プレイヤーではなく胴元側にまわらない事には稼げないよね(笑)。
 「株ソフトつくってる本人が言うのもなんですが、株で大儲けできるなんて幻想そのものです。アホな煽り文句を、真に受けてネットで株やる人が増殖中みたいですが良く考えてから参加したほうがいいです。儲かるのは、(賢い)金持ちと、極一部の才能のある人だけです。~~~略~~~、やってる本人は自分だけは儲かる、っていう得体の知れない妙な自信を持っているように思えます。これが、ギャンブルの魔力。とかいう僕もその昔、競馬だけで生活できるとニヤニヤしてた時期がありました。今思うと馬鹿スギです。」

 と、このブログの元になったページには、そう書いていたのですが、この所(2005年末)の日経平均の上げっぷりを見ていると、馬鹿はお前だけで、みんな儲かってんだよ、という声が聞えてきそうです。