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

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。

相変わらずダミーデータ送信部(サーバ)のバグの原因はつかめていません。

データ受信部(クライアント)に、データを受信するたびに
DBに登録する処理を作成。

簡単に試した程度ならうまくいってそうですが、あいにくデータ送信部
がまともに動かないので、ちゃんとした試験ができません。。。

実際に本物RSSで動かして、どんどんDBに登録されている様が
みれれば感動ものでしょうね。(DB登録はみえないんですけどね)


明日からしばらく通勤時間が一時間半の所になりました。。。
きっついですねぇ。
プロジェクトがおちついて、代休がもらえたら本物RSSで試す機会もできる、
と思ってがんばりますか。。。

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



楽天RSSからのDDE通信による株価データを受信する機能を作成する為の
テストツール作成の進捗です。


原因不明のバグがありましたが、なんとか解決しました。

サーバのコールバック処理のところで、XTYP_ADVSTARTの戻り値を
Dim ret As IntPtr = New IntPtr(True)
Return ret
にしていたのが原因でした。
VBのTrueは-1。仕様上は戻り値が0以外と書いてあったので
間違いないと思っていましたが、これでした。
1を返すようにすると正常に動きました。

参考にしているソースはCなので同じTrueでも問題ないんですよね~。
気づきませんでした。。。


しかし、また新たな問題が発生です。
次々と強敵が現れるRPGみたいです。

ダミーデータ送信部をRSSに見立てて、データ受信部で複数銘柄の複数項目を登録していくと、
何度目かのDdeClientTransactionで例外が発生してしまいます。
VB2003はこの命令でNullReferenceExceptionが発生したとメッセージが。
命令仕様を調べても特に使い方に問題はありません。

自宅でVB2005で試すと、以下のメッセージが。
CallbackOnCollectedDelegate が検出されました。
Message: コールバックが、型 'GetRss!GetRss.API+DdeCallBack::Invoke' のガベージ コレクションされたデリゲートで行われました。これは、アプリケーションのクラッシュ、破損、およびデータの損失を発生させる可能性があります。デリゲートをアンマネージ コードに渡すとき、デリゲートは 2 度と呼び出されないことが確実になるまでマネージ アプリケーションによって維持されなければなりません。

さらに、本物のマケスピ+RSSで試すと、問題なくとおります。。。

これはダミーデータ送信部がおかしい??




ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
今月号のZAIの勝ってる投資家2 デイトレのワザ!の記事で、
ある手法が紹介されてました。

この方法、確かに実行できれば多少は儲けることはできそうなのですが、
一種の裁定取引なので、すぐに使えなくなるのじゃないでしょうか・・・
というか、もうこんな状況はなくなってるものとばかり思ってましたが。

まだありえるなら、この記事の人は手で一生懸命やってるようですが、
ぜひ自動化すべきでしょうね。
ノウハウ(楽天RSSからのリアルタイムデータ受信と、WEBへの発注処理)
があればすぐに自動化できると思います。

儲かるかどうかは別として、試してみるのはおもしろいかもしれませんね。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
OmegaChartで使用している株価データをデータベース(MDB)に変換して出力するツールです。
過去の株価データをデータベースで用意したい人に役に立つのではないでしょうか。

HPで公開中です。


私の環境(Pentium4、3GHz)では、2005年度からのデータの変換に約45分、ファイルサイズは約130Mになりました。

変換に時間はかかりますが、過去データなので一度作成するだけで良いと思います。
データベースへの日々の銘柄情報の追加は、別途ツールにて対応したいと思います。


OmegaChartで使用している株価データ、データフォーマットについては、OmegaChartのHPの方で公開されています。
作者様に感謝。

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

目的が、効率化→プログラムしたさに変わってきている感じがします(汗

試行錯誤した結果、1銘柄の1項目ですが、
何とかデータを受信が確認できました。

とはいっても、
マケスピ+楽天RSSに接続して確認したのはザラバ外の時間なので、
最初の1回データが受信できた程度しか、まだ確認できていません。

引き続き、リアルタイムでも正常に動作するか検証、
複数銘柄に対応、
がとりあえずの作業です。


上記はDDEクライアント側のツールになるのですが、
同時にサーバ側のツール「疑似RSS」なるものを作っています。
こっちば原因不明のバグに悩み中です。

DdePostAdviseをコールしてもXTYP_ADVREQでコールバック
(というか何もコールバック)されません。
クライアントは本物のRSSから受信できているので、
問題があるとすればこのサーバ側なんですが。。。

これらキーワードで検索しても、どの検索サイトも参考になるものは
全然引っかからないし。。。
行き詰まりの予感。

疑似RSSツールの構想は、
上記受信ツールでDB化したリアルタイムデータを、
本物のRSSが動いているように擬似的にEXCELにデータ通知する事で、
実際のザラバとほぼ一緒のシミュレーションを
行おうというものです。

こっちの方は自作は諦めて、そこらにあるツールやサンプル等を参考にして
作った方がよいかもしれません。。。

でもVB2005のソースは見つからないんですよね。
C#の勉強をかねてやるか、処理速度を考慮してVC6でやるべきか・・・

もうちょっともがいてみます。



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

昨日のバグはなんとか解決しました。
といっても、原因がまったくわからなかったので、
作り替えました。

今までは、APIのインポートで型変換するときに、
ハンドルの型をSystem.Uint32にしていたものを、
全部System.IntPtrに変えました。

今度はコールバックでエラーがでてます。
またよくわからないエラーが・・・

「CallbackOnCollectedDelegate が検出されました。
Message: コールバックが、型 'GetRss2003!GetRss.Cls_API+DdeCallBack::Invoke' のガベージ コレクションされたデリゲートで行われました。これは、アプリケーションのクラッシュ、破損、およびデータの損失を発生させる可能性があります。デリゲートをアンマネージ コードに渡すとき、デリゲートは 2 度と呼び出されないことが確実になるまでマネージ アプリケーションによって維持されなければなりません。」


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

また新たなバグ発生で行き詰まってしましました。

今日は少し早く帰れたので、マケスピとRSSを起動して
試してみたのですが、
どうもDdeClientTransactionでエラーになっています。
エラー原因はパラメータ不正みたいです。

何回か見直しているんですけどねぇ。

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

バグの原因がわからずしばらく詰まっていたのですが、
何とか解決して先に進めています。

user32.dllからDDE通信関係の関数をVBで使えるように再度定義
しているのですが、
DdeClientTransactionでなぜかエラーになっていました。

原因は、APIとVBの型変換で間違っていた為に、
処理が正しく行えていなかったようです。

未熟者には厳しいですね(^^;


それにしても、会社で楽天RSSを動かすわけには行かないので、
試験をすることができないのが難点です。

とりあえずばーっと作りこんで、家に帰って試験する。みたいな。
しかもザラバ中はできないので、平日休みが取れた日にしか
ちゃんとした試験もできず。
完成が長引きそうです。


国内初の株式自動売買システムという広告を見つけたのですが、どうなんでしょうね。
値段激高ですな・・・


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
今日できたのはHPの更新を少しです。
ほとんど自己満足の世界ですね。(^^;

前作った株価DB作成ツールの試験もまだです。
今作っている楽天RSSデータ受信用のテストツールの
進捗もいまいち。

もっと時間が欲しいですねー。

仕事のプロジェクトが最初の一山を超えたので、
今週くらいは少し早く帰れるんじゃないかと期待中。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
楽天RSSからのDDE通信による株価データを受信する機能を作成する為、
引き続き調査・検討しています。

どうやら、DDE通信に関係する命令はuser32.libに含まれているので、
user32.DLLをインポートすれば使えば.NETでも使用可能みたいです。
(VC6ではヘッダファイルをインクルードするだけでよかった)
DLLとの型変換など少し調べる必要があります。

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