|
カテゴリ:「VB.NETで自動売買」入門
せっかく昨日始まった「入門シリーズ」。
別に毎日更新するつもりは無いのですが、せっかく何人かの方からコメントを頂いて 気持ちも高まっているので、今日は飲み会帰りにも関わらず書いてみようと思います。 間違った事や意味不明な事を書いてると思ったら後で訂正します(^-^; まず昨日書くのを忘れたのですが、楽天RSSからリアルタイム情報を取得するには、 楽天証券の口座を持っていて、MarketSpeedの使用料を払っていて、MarketSpeedと 楽天RSSを立ち上げていて尚且つMarketSpeedにログインした状態でないと無理だと いう事を、前提条件として書いておきます。 その辺りは皆さん分かってらっしゃると思いますが。 さて今回は早速、NDdeを使ってリアルタイム情報の取得を行ってみましょう。 楽天RSSからの情報の取得方法は、以下の日記に書いた通り、2つの方法があります。 http://plaza.rakuten.co.jp/acknight/diary/200711190001/ その1つである「リクエスト方式」を試してみましょう。 VB2008EEを立ち上げ、前回作った「SampleApplication」プロジェクトを開きます。 デフォルトの「Form1」が開かれていない場合は、ソリューションエクスプローラから Form1をダブルクリックするか、右クリックで「開く」を選んで、Form1.vbの デザイン画面を開いて下さい。 開いたら、Formの右下をマウスでドラッグして、それなりに大きく広げておいて 下さい。色々なものを貼り付けるには小さすぎますので(^-^; ![]() そして次に、Form上にオブジェクトを貼り付けていきます。 今回サンプルでは、銘柄コードと市場コードを入力し「取得」ボタンを押したら 画面に銘柄名称と現在の株価が表示されるという処理を実現してみようと思います。 貼り付けるのは、銘柄コードと市場コードを入力するためのテキストボックス。 そして銘柄名称と現在の株価が表示されるテキストボックス。そして取得ボタンの 計5つです。 作成は、ツールボックスからドラッグして行います。 ![]() 画面左にあるツールボックスをクリックしたら広がりますので、貼り付けたい オブジェクトをマウスでドラッグしてForm1にドロップします。 ![]() 何も考えずにドロップしただけだと、上のようになってしまいます。 これだとあまりに寂しいので、少し手を加えたいと思います。 まず銘柄コードは4桁です。 左上のテキストボックスを選んだ状態でプロパティウィンドウの「MaxLength」を 4に変更し、さらに大きさもそれっぽくするために「Size」を40. 19に変更します。 ![]() その右の市場コードは3桁。大きさも35. 19程度に縮めておきましょう。 市場コードが何故3桁かという事については後で述べます。 同様に、左下のテキストボックスは銘柄名称を表示するとして(MaxLengthは変更せず) Sizeのみ220. 19に。右下は株価ですが、まあこのままのSizeで良いでしょうw ボタンは「Text」プロパティで表示されている文字を変えます。 「Button1」じゃ寂しすぎるので「取得」にでも変更しましょう。 そして、見映え良くするように位置を調整して下さい。 私はこんな感じになりました。 ![]() プログラムに入る前に、後からプログラムのソースコードを見て理解しやすいように オブジェクトに分かりやすい名前を付けます。 これは、プログラムのメンテ性の面から見ても非常に重要な事です。 後から「TextBox1って何やったっけ?」ってなると意味が無いのです。 Form1に対して適当な名前をつけていませんが本当はちゃんと名前を付けて下さい。 今回は、貼り付けたオブジェクトに適切な名前を付けます。 名前はプロパティウィンドウの上の方にある「(Name)」です。 それぞれ「銘柄コード」「市場コード」「取得」「銘柄名称」「現在値」と 日本語で付けました。 さてこれから、やっとコーディングしていく事になります。 VBは「イベントドリブン型」のプログラムです。 「○○がXXになったら」というイベントに対してプログラムを記述する事によって 処理が実行されます。 今回の処理のトリガーは「取得ボタンが押下されたら」です。 取得ボタンをダブルクリックします。すると、こんな画面が表示されましたよね? ![]() これは、Form1.vbのソースコードです。Form1で行われる処理を記述する場所です。 中に「取得_Click(・・・)」という部分がありますが、これは先ほど取得ボタンを ダブルクリックした時に自動作成された「取得ボタンがクリックされた時の処理」の 骨格部分です。「取得_CLick」という名前は自由に変更可能ですがそのままに しておいて良いでしょう。 逆に最後の「Handles 取得.Click」は変更出来ません。 「この処理は、『取得』オブジェクトが『CLick』された時に起動される処理ですよ」と 定義してあるのです。 「.Click」部分を変更する事により「ダブルクリックされた時」やその他色々な イベントに対する処理に変える事が出来ます。 ・・・「これからやっとコーディング」と書いておきながら、今回はここで終了にします。 すみません(^-^; さて、いよいよ次回は本当にコーディングに入ります。 お気に入りの記事を「いいね!」で応援しよう
[「VB.NETで自動売買」入門] カテゴリの最新記事
ご無沙汰してます。
昨年末PCがクラッシュしてから、すっかりブログとは縁遠くなっていました。 というのもPCは復活させたものの、仕事柄受験シーズンで大忙しになり、すっかりトレードができない常態にあったためです。 中途半端に取引をして精神不安になり本業に差し支えてはいけないと思ったので、きっぱり売買と縁を切っていたのです。 挨拶無しで、申し訳ありませんでした。 その後いよいよ商いを再開させようと思ったら、今度は私自身がクラッシュ! 事故で左足大腿骨を折ってしまい、ついこの間まで入院していました。 今でも松葉杖生活なのですが、気分的にパソコンでもいじろうかという気持ちになれたので、早速Knightさんのブログにお邪魔している次第です。 まだジックリ読んだわけではないのですが、この初心者向けの企画は、私のようなものには大変ありがたいですね。 ぜひ続けていただきたいと思っています。 自分のブログは、まだトレードを再開させていないので更新していません。 けれど、Knightさんの方には、また以前のようにチョクチョク遊びに来させてもらおうと思っています。 よろしくお願いしますね。 では... (Apr 10, 2008 11:49:39 AM)
今後の解説への要望です。「xx機能を実装するためにはxxクラスを使用すると良い」「yy機能を実装するためにはyyクラスのようなクラスは無いのでaaとbbを組み合わせて使用する」など解法があるのか無いのかだけでも解説頂けると助かります。
メール機能を組み込みしようとしたら、送信クラスはあるけれど受信クラスはPOP3プロトコルを組み立てる必要があるなど、いっぱい検索しないと確かな情報にたどり着かないないんです。 NDde.dllを知らなかったときは、DDEプロトコルを調べようと時間をかけましたが有用情報にはたどり着けませんでした。 よろしくお願いします。 m(_ _)m (Apr 10, 2008 12:57:52 PM)
Coo0701さん
>ご無沙汰してます。 いやぁ~~お久しぶりです。 ずっとCooさんがいないので、めちゃめちゃ心配してました。 突然姿が無くなったので。。。 >昨年末PCがクラッシュしてから、すっかりブログとは縁遠くなっていました。 >というのもPCは復活させたものの、仕事柄受験シーズンで大忙しになり、すっかりトレードができない常態にあったためです。 >中途半端に取引をして精神不安になり本業に差し支えてはいけないと思ったので、きっぱり売買と縁を切っていたのです。 >挨拶無しで、申し訳ありませんでした。 なるほど。そういう事なら全然問題ないです。 >その後いよいよ商いを再開させようと思ったら、今度は私自身がクラッシュ! >事故で左足大腿骨を折ってしまい、ついこの間まで入院していました。 >今でも松葉杖生活なのですが、気分的にパソコンでもいじろうかという気持ちになれたので、早速Knightさんのブログにお邪魔している次第です。 それは大変でしたね。 PCのクラッシュは多分復旧すると思っていましたし、最悪携帯からでもログインして 何らかの近況報告とかあると思ってました。 なので、これは何らかのトラブルによってネットが出来なくなったか、それとも 病気か何かでPCを触る余裕が無いとか。 こんな事になるのなら、携帯アドレスとか交換してたら「どうしました!?」で 済むのになぁ~って後悔してました。 東京出張の時とかにも声を掛けさせてもらって、中間地点で落ち合って飲むというのも 実現したいなぁなんて思ってましたしね。 (Apr 10, 2008 10:53:05 PM)
>まだジックリ読んだわけではないのですが、この初心者向けの企画は、私のようなものには大変ありがたいですね。
>ぜひ続けていただきたいと思っています。 どうも有難うございます。 何人かの方にそう言って頂いているので、今の所続けようと思っています。 今日は多分書かないと思いますが、日曜日までに次の会を書くつもりです。 >自分のブログは、まだトレードを再開させていないので更新していません。 >けれど、Knightさんの方には、また以前のようにチョクチョク遊びに来させてもらおうと思っています。 >よろしくお願いしますね。 こちらこそ今後とも宜しくお願いします!! (Apr 10, 2008 10:54:34 PM)
micorosoftさん
> 今後の解説への要望です。「xx機能を実装するためにはxxクラスを使用すると良い」「yy機能を実装するためにはyyクラスのようなクラスは無いのでaaとbbを組み合わせて使用する」など解法があるのか無いのかだけでも解説頂けると助かります。 > メール機能を組み込みしようとしたら、送信クラスはあるけれど受信クラスはPOP3プロトコルを組み立てる必要があるなど、いっぱい検索しないと確かな情報にたどり着かないないんです。 > NDde.dllを知らなかったときは、DDEプロトコルを調べようと時間をかけましたが有用情報にはたどり着けませんでした。 > よろしくお願いします。 m(_ _)m ----- それって、Tipsを作成するイメージですよね? 私はそこまで大掛かりなものは作れないと思いますよ。Tipsなら有用なサイトが色々ありますし。 私がいつも参考にしているサイトは「DOBON.NET」です。 http://dobon.net/ 知りたいTipsは結構高い確率で載っているのでいつも助かっています。もうご存知かも知れませんが。 ここにはメール送信はクラスが用意されているけど受信は大変だという事も書いてあります。 私が書こうとしている入門の内容は、本当に「VB.NET楽天RSSからリアルタイム情報を取得する」という 目的に向かって一直線に単純な方法で実現しようとしているだけです。 本番運用するには全然足りない内容ですが「なるほど、こうやってやるんだ」というきっかけに なれば良いと思っているだけですので、microsoftさんが要望されているような内容にはならないと 思います。しかもmicrosoftさんが見ても「そんな事分かっとるわい!!」という内容しか 書かないと思いますし(汗)。 (Apr 10, 2008 11:02:56 PM)
大げさな解説記事でなく、通常の記事の中で関連する機能についてボソッと一言注釈して頂くと参考になるんです。
「log4netを使ってる」という一文だけでもヒントになりました。 現在進行形のRSSの解説記事は、ヨソにない解説なので開発に取りかかろうとしている人には大変有用です。アクセス数が急増しますよ! (Apr 11, 2008 07:57:24 AM)
micorosoftさん
> 大げさな解説記事でなく、通常の記事の中で関連する機能についてボソッと一言注釈して頂くと参考になるんです。 > 「log4netを使ってる」という一文だけでもヒントになりました。 > 現在進行形のRSSの解説記事は、ヨソにない解説なので開発に取りかかろうとしている人には大変有用です。アクセス数が急増しますよ! ----- 本来行う事基本的な事以外の機能についてはそれほど触れる事が無いかも知れませんが、 なるべくポイントとなる部分についてひとこと入れられたらと思います。 ブログのアクセス数ですが、今の所全然増えていません(^-^; それどころか、トップにリンクしている人気ブログランキングはどんどん下がって いますね(苦笑)。 (Apr 11, 2008 08:13:48 AM) |