FC2ブログ
現役プログラマー村健の、投資に役立つプログラムを作るための勉強ブログです。 自動売買、システムトレードに挑戦!します。 勉強と習得の成果を記録です。
本ブログについて
本ブログは、プログラマー観点で投資への対費用効果を上げるために何ができるか?を考えていくブログです。
基本的には、ツール作成・公開、投資に関わるプログラム情報、最終的には 完全なる自動売買を目指しています。

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
今日は仕事が休みなので、昼にデータ記録部分の動作確認。

少し問題はありましたが、それも修正して、データ保存はできるようになりました。
よかったよかった。

だた、取得したデータで再生部分の試験をしましたが、ちょこちょこ問題あり。
とりあえずで動かすことはできますが、技術者的にあまり納得はいかない。
前回作ったときも再生部分の途中まで作ってやめていたので、もう過去の情報はなく、わからないところは調査しないといけません。DDEはあまり情報がないので苦労です。。。

今のところ解決方法が見つかっていない問題としては、ツールでデータを再生しても、EXCELのRSSではデータを受信ができません。ツールの記録部分ではちゃんと受信できているので、VB.NETで今後ツールを作っていくぶんいは問題ないのですけど。EXCELでもできれば幅が広がるんですがね。。。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
過去に作った楽天RSSのアクセスツールを、新たにDLL化&新ツール化する作業を行っています。

とりあえずでDLL化は完了し、このDLLを使った簡単なRSSアクセスツールも完成しました。
機能としては、
リアルタイムの株価データをCSVに保存するクライアント部、
保存しておいた株価データを再生するサーバ部、です。

クライアント部に関しては、休日にテストした感じだと、データは受信(記録)できています。あとは平日にリアルタイムで試すだけです。

サーバ(再生)に関しても動いてそうです。
昔のツールでは、データ送信を細かく設定できるように作成途中だったのですが、そこまで実装するのはかなり大変なので、とりあえずは連続して送信するだけの実装です。
時間に余裕ができれば実装するかな?
こんな機能でした。これだけ実装できれば製品として売れますよ笑。
・Step再生 1データづつ再生
・同期再生 実際の時間差で再生。全部実行すると5時間かかるか・・・
・X倍速再生 ビデオの早送りみたいな
・一時停止 再生を一時停止
・指定時間からスタート 指定した時間から再生スタート
・銘柄・項目絞込み 再生したい銘柄・項目のみに

※技術メモ
・楽天RSSを起動した状態でないと、クライアントでデータ受信の開始設定が失敗する。(マケスピは起動して無くても良い)
・サーバ(再生)を動かしたい場合は、まずサーバの初期設定を行い、クライアント(記録)を実行したあとで、再生しないとダメ。クライアントからのDdeConnectによるCallBackが発生しないと、サーバがデータ送信できない為(というか、送信先クライアントがないし)。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
前回の続きです。
DDE通信の接続モードについてです。

~~~~引用ここから~~~~

DDE通信で接続する方法として、ホットリンクというモードがあり、
DDEのデータが更新されるたびにAPIから通知されてきます。

一定期間なりボタンをおすタイミングなりで
こちらからデータを取得する場合、
全監視銘柄をループして値を取り出して、
値を比較して・・・などの処理が必要になると思います。

ホットリンクであれば、通知されたデータ=値が変化したデータ
になるので、以後の処理も簡単になります。

前に紹介したサイトのプログラムはホットリンクでの作成ですので、
参考になると思います。

データが通知される部分は「DDEコールバック関数」です。
DDE通信が変化したデータを受け取ると、この関数を起動してくれます。

VB.NETで実現するのも、使うAPIや使い方もほぼ一緒なので、
紹介サイトのソース理解が一番かな、と思っています。

~~~~引用ここまで~~~~

どこかによい説明サイトがあればいいんですがね・・・

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
以前の記事で、「DDE spy」ツールを使って楽天RSSとのDDE通信通信のやりとりを調査しているが、
テキストにコピーできないのが不便、といった日記を書いていたのですが、
メニューでファイル保存ってのが堂々とありました・・・

おはずかしい。。。

ここでファイルにチェックしておけば、画面への出力と
併せて保存可能でした。

せっかく作成ツールに搭載するモニタの調査も
進んできたのに残念ですが・・・この機能は作成中止だー。

今日ちょこっとファイルに保存して、
明日会社で時間があれば調べてみます。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

受信ツールで最初にデータ取得をする銘柄と項目を登録する際、
時間がかなりかかっていた問題。
これは単純ミスで、デバッグでコールバック時に値をコンソール出力
していた為でした。
表示をはずすとすんなりといきました。

DDE通信の監視モードで値をどうやって取得するか。
コールバック時の引数を全て調べてみました。
結果、hDataに入っていました。
データの取得方法ですが、DDEのAPIのDdeGetDataを使用します。
すると、指定したbyte配列に格納されます。
ただ、データのフォーマットの解析が必要です。
値が入っているのはわかるのですが、どういうパターンの時に
どういう法則で入るのか、を調べる必要があります。
ちょっと面倒くさいので、どうするか考え中です。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

今週、平日に休みが取れたので、
後場から楽天RSSでデータを受信&保存してみました。
80銘柄、60項目で、約15Mでした。
本格的にデータを取得しようとした場合、
300銘柄、20項目程度とみて、20M程度でしょうか。


受信ツールで最初にデータ取得をする銘柄と項目を登録する際、
かなり時間がかかっています。(30秒)
マルチスレッドにする事で多少早くならないかと
色々試しましたが、うまくいきません。
DDEのAPIはマルチスレッド化できないのでしょうか。
一時保留中です。


データ送信部とEXCELによる通信が現在行えないので、
調査をするために、本物RSSと接続した場合と、
ツールと接続した場合で、DDE通信のモニタを行って
差分を調べようと思っています。

ただ、DDESPYは結果をテキストで保存できないので、
比較に手間がかかります。
それなので、DDEのモニタをするツールをまず作ってみようと
思いました。

DDE通信をInitializeする際に、
モードとしてAPPCLASS_MONITORを指定すれば、
監視モードになることがわかりました。
それで、監視結果はコールバックとして、wType値が
XTYP_MONITORで通知されます。
で、ここから値を取得しようとしたのですが、
ネットで調べても情報がないです。。。

なんでDDE通信って情報が少ないんでしょうね。
死んだ技術でも過去の情報とかありそうなのに・・・


といった感じで、まだまだ先が見えそうにありません。。。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

実現はある程度見越せたため、細かい機能の作り込みなど。

しかし、想定外の問題?発覚

それぞれ作った、データ送信部→受信部はちゃんと動いています。
自分作成データ送信部 → 自分作成データ受信部
なイメージです。

で、本物のRSSを立ち上げて接続して
本物RSS → 作成データ受信部
もちゃんと動作して、データが保存できます。

ですが、
自分作成データ送信部 → EXCELのRSS
が動作しませんでした。

まぁ売買処理の所を.NETで作成するつもりなので、
データ受信部のロジックもそのまま使えて、
リアルタイムシミュレーションもデータ送信部が
そのままつかえますが。
本物RSS → .NETで作った売買ツール
自分作成データ送信部 → .NETで作った売買ツール ※シミュレーション時

できればEXCELのRSSでもシミュレーション
できるようにしたかったですね。。。

ちょっと調べてみるつもりですが、できなさそうな予感・・・



ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

昨日、取得したデータを、データ送信部から時間軸に
沿って送信する処理を作っています。

やっぱり気になるのは処理負荷による
データ送信に遅延がないか、です。

今までの調査から、何となくやりたいことは実現できそうな
感じがしてきたので、細かい作り込みに入っていきます。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

今日は珍しく夕方の更新です。
なぜこんな早い時間なのかというと、会社を休んだのではなく、
徹夜あけだったからでしたw

寝る間も惜しんで、ツールの試験をしていました。
(セットして寝てただけだったんですけどね)

でも試験ができて嬉しいことです。
実際に動かしながらちょくちょく修正が必要だったので、
やっぱり実際に動作させながらじゃないと厳しいな、と思いました。


さて、ツールですが、期待通りの動作をしているのは確認。
20銘柄×50項目を登録し、データを1時間くらい取得してみましたが、
(細かい問題はありますが)ちゃんと取得できていました。

ちなみに、今回取得したデータは1時間で約40000データ、2MBでした。
CSV形式。

気になるのはデータの精度です。
.NETで作成しているので、VCと比べると多少処理に時間がかかると思います。
(実測してみないとはっきりとはわからないですが)
DDE通信の性質上、PCに負荷がかかるほど、データの取りこぼし
も発生します。

受信したデータを確認しましたが、現状ではデータの善し悪しは
判断できませんでした。
(本気で判断しようと思えば、全く同一環境で取得した
データを比較する事になりますが、ある意味不可能?)

あまりにも精度が低いようなら、VCへの移行や、
スレッド化などの高速処理・低負荷を考慮する必要があるかもしれません。


今回、精度は別として本物の日中リアルタイムデータが用意できたので、
データ送信部も本格的な調査に入れそうです。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

データ送信部からテストデータを格納したCSVファイルを用意し、送信し、
データ受信部でデータベースに格納できているところまで確認。

データ受信部に関しては本番投入してみないとわかりませんが、
たぶん大丈夫そうな予感。


受信したデータを保存する際に、Accessの日付/時刻型では
秒以下(ミリ秒)まで指定できませんでした。
SQLサーバだとミリ秒まで保存できる型が用意されているようです。

何か手はないか調べてみると、
日付/時刻型でも実際に格納しているデータは倍密度浮動少数の値なので、
値として参照すれば精度の高い時間を扱えそうです。
(ミリ秒まで厳密に扱うツールにする意味はあまりないかも・・・)


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング