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

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
がんばって暫定公開までこじつけました。

コチラです。

ツールを簡単に説明すると、
「楽天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
くる株・株ブログランキング
株・投資ランキング