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

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
楽天RSS用リアルタイム株価データ保存ツール/楽天RSS疑似データ送信ツールを改良しました。
ダウンロードはHPからどうぞ。

変更点
  楽天RSS用リアルタイム株価データ保存ツール
   ・保存フォルダを指定するようにし、保存ファイル名は日付.csvで作成
   ・保存ファイルの保存モード(上書き、追記、別名)を選択可能に
   ・データ受信がわかるようにランプを点灯
   ・銘柄、項目の設定ファイルを指定可能に
   ・前回起動時の設定をiniファイルに保存
  楽天RSS疑似データ送信ツール
   ・前回起動時の入力ファイルを保存


以下、今後の予定・宿題
・バグ修正
・データベース対応
・DataGet_FakeRSS.dllを使ったリアルタイム自動売買ツールの構築方法の検討・仕様公開

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



楽天RSS疑似データ送信ツールの機能を大幅に追加しました。
infoget_realtimedata_server.png


・データ入力に手入力を追加
・絞り込みを追加(銘柄・項目・開始時刻・終了時刻)
・再生モードを選択可能(連続再生・疑似時刻再生・ファイル出力)

リアルタイムな自動売買ツールを作っている方の検証に少しは役に立つかも。
ダウンロードはHPからどうぞ。

以下、今後の予定・宿題
・バグ修正
・データベース対応
・DataGet_FakeRSS.dllを使ったリアルタイム自動売買ツールの構築方法の検討・仕様公開

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
HPで公開している「楽天RSS疑似データ送信ツール」を改造中です。
データの絞込みの対応と、データ再生モードに擬似時刻再生をつけています。
動作的には問題なさそうなので、後はこまかい作りこみ・・・です。

楽天RSS疑似データ送信ツール・改造版

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
がんばって暫定公開までこじつけました。

コチラです。

ツールを簡単に説明すると、
「楽天RSS用リアルタイム株価データ保存ツール」は、
楽天RSSから送られてくるリアルタイムの株価データをファイルに保存するツールです。

「楽天RSS疑似データ送信ツール」は、
保存してある株価データから、DDE通信を使ってデータを疑似送信するツールです。
自動売買システムのシミュレーションに使えます。


まだテストが完全に行えていないので、
ツールが異常終了するなどのバグがあるかもしれません。
その時は教えていただけるとありがたいです。


ちなみにこのツールは自作の以下DLLを使っています。
ComDDE.dll・・・DDE関係のAPIをラップしたクラス
DataGet_FakeRSS.dll・・・DDE通信を行うクラス
これらのDLLもそのうち公開・使い方詳細をのせるつもりでいます。

今回のツールは、これらDLLの機能を使った一例で、
今後は自動売買システム構築に繋げていきたいと思います。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
先日、平日に休みが取れてなおかつ時間があったので、昔開発していた疑似楽天RSSツールをテストしてみました。

データ受信機能にバグがあったはずなので色々テストしてみると、データ取得停止・開始を繰り返し行うとツールが落ちました。

「DDEからのコールバックがガベージコレクションされたデリゲートで行われた為・・・」
な感じのエラーが発生していました。

このエラーですが、以前にデータ受信中に落ちるという問題があったときも同様の内容でツールが落ちていました。(こちらの記事参照)

当時の原因としては、DDEのAPIからコールバックされるデリゲートのアドレスを保持しておかなかった為、ガベージコレクション発生時にデリゲートが削除され(またはアドレスが移動?)、コールバック発生時にデリゲートにアクセスできず発生していました。
対処として、デリゲートのアドレスをグローバル変数に保持しておくことでメソッドが参照された状態になり、ガベージコレクションの対象外となることで、エラーが発生することがなくなりました。

ところが、状況は違えどまた発生しています。
参照していればガベージコレクションの対象にはならないはずなのですが、これだけではダメなのでしょうか?
ガベージコレクションの詳しい動作がわからないので、原因の調査はお手上げです。

結局、デリゲートを保持しているグローバル変数をガベージコレクションの対象外としました。
今のところ問題なく動いています。これで直ればよいのですが・・・。

ここら辺に興味のある方は「GCHandle.Alloc」でググってみてください。


ちなみに、疑似データ送信部分(マケスピ+RSSの疑似動作機能)は正常に動作しています。
EXCELの値がリアルタイムに変化しまくってます。

次回にテストできるのはいつになるかわからないので、とりあえずベータ版で公開しようか・・・。
それにしても公開用のページ作ったりReadmeを作ったり大変だなぁ・・・。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
今日は仕事が休みなので、ツールのテストができました。

データ取得を開始してしばらくほっておいたのですが、1時間半くらいたったらツールが異常終了していました(;_;)
デバッグモードでの実行ではなかったので、残念ながら原因を調査することができませんでした。
また平日にテストして調査する必要がありそうです。

ただ、データは1時間半分とれていたので、今度は疑似データ送信機能をテストしました。
EXCELに登録した複数銘柄の情報がぴこぴこ変わるのは確認でき、こちらはテストOKのようです。
これでEXCELで自動売買ツールを作ろうとしている人も、役に立つのではないかと。

といっても、この手のツール(楽天RSSからのリアルタイムデータ取得、疑似送信)は既に巷にあるので、わざわざ作る必要もないんですが。
メインはツールではなく、楽天RSSを制御するDLLなのです。今回のツールは、DLLをテストする為に作っているようなものです。
このDLLを使うことにより、リアルタイムデータを扱えるツールを自由に簡単に作れるようになるのが目的です。(感触としては、簡単に、は厳しそうです・・・)

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
ただいま深夜2:30です。
ついついツール作りに夢中になっていました。

やっとEXCEL+RSSでデータ受信ができるようになったっぽいです。
ダミーデータを流すと、値がぴこぴこ変化しています。

やっと完成のメドがたってきましたよ!

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSを扱うツールを使いたい、という人は多いと思いますが、
DDE通信の解析内容を知りたい!という人はいないんだろうな、
と思いながら引き続きです。

EXCELで数式を登録するまでのサーバのDDEコールバック発生時のTypeを調べました。

数式登録画面で、登録ボタン押下

XTYP_CONNECT

XTYP_CONNECT_CONFIRM

XTYP_REQUEST ※1

XTYP_DISCONNECT

ここまでが正常だと、次にいく

XTYP_ADVSTART

XTYP_REQUEST ※2

※1 ここでダミーの銘柄情報を送信してやらないと、登録ができない
※2 ここで返したデータが、初期値となる

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
EXCELでRSSの数式登録について調査。
疑似RSSでは、数式登録ダイアログでOKを押しても、登録できない。

本物RSSではResponse時に以下のデータを送信している。
Input data=
"
4298 プロトコーポレーシ37109 Callback"
疑似RSSでも、まねてデータを送信するように試行錯誤してみる。
結果、
・VBLFやTAB等のフォーマットが一致する必要があるかも
・データ送信した文字は途中できれる。
・銘柄番号は存在するものを指定しないと、選択ダイアログみたいなのが出る。
事がわかり、こんなデータをプログラムでくむと
Dim dataStr As String = vbLf & vbTab & "4840" & vbTab & "トライアイズ" & vbTab & "5" & vbTab
とりあえずは登録でき、EXCELにRSSの数式が記述された。
ただし、初期値はまだ表示されない。この後につづくADVでデータを送信する必要があると思われる。

あと、試しに疑似RSSからデータを送信してみたが、EXCELは反応なし。
まだまだ先は長い予感。。。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
引き続き、サーバ(擬似データ送信)部分をいじってます。

作成ツールの擬似サーバ機能を立ち上げて、EXCELで楽天RSSの銘柄を登録しますが、登録できません。
DDE SpyでDDE通信をトレースしてみると、(過去記事にここら辺は多少詳しく解説してたかも)
本物RSSではクライアント(EXCEL)からのRESPONCE要求で初期データを送信している模様。で、ここのデータが、一番最初にセルに表示されています。
擬似サーバでも真似てダミーデータを送ろうとしているのですが、データフォーマットがよくわからず、EXCELが認識できるまでにいたっていません。色々試してもなかなかうまくいかず。
検索してもここらの情報は無いし・・・。続きは来週末かな・・・。

技術メモ
・本物RSSでは、RESPONCEのあとでXact_completeが発生している。
・擬似RSSでは、RESPONCEでデータが異常なためか、直後でDISCONNECTになる。

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