酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C#でNDdeを使って楽天RSSとDDE通信させて特定の銘柄の株価を取得する

楽天証券の口座開設のご案内が届きました。月曜日に必要な書類を送付して土曜日に開設とは、楽天証券さんは働き者だなぁ。

マーケットスピード(及び楽天RSS)は、開設より3ヶ月間のみ無料で利用出来ます。以降は3ヶ月15,750円掛かってしまいますので、早速楽天RSSとDDE通信させてみる事にします。

とっちゃんさんが仰るとおり.NETからDDEを扱うのは一筋縄ではいきそうでは無いので、ズボラな僕は「NDde」というライブラリを使ってみました。

マーケットスピードと楽天RSSを起動した状態で下記のコードを使用することによって、DDE通信で銘柄名称を取得出来ました。

// 楽天RSSを使用する場合、DdeClientのコンストラクタには  
// 第1引数のサービス名に"RSS"  
// 第2引数に扱いたい[銘柄コード].[市場コード]  
using (DdeClient client = new DdeClient("RSS", "9684.T"))  
{  
    // 楽天RSSサービスに接続する  
    client.Connect();  
    
    // リクエストを出して値を取得する  
    // 第1引数は取得したいアイテム名  
    // 第2引数は内部的にDdeClientTransaction()をコールしており  
    // wFmtの[CF_TEXT(文字列)]と等価である1を指定する  
    // 第3引数はタイムアウトする時間をミリ秒単位で指定する  
    byte[] data = client.Request("銘柄名称", 1, 1000);  
    
    string name = Encoding.Default.GetString(data).Replace("\0", "");  
}

サンプルコードで使用する銘柄コードをどれにしようかなぁと検索していたら、wikipediaで「萌え株」なるものがありました。

「もえっくす30」なんて指標が存在したのか……(゚д゚lll)

関連記事

株価を取得するだけであれば、Yahoo!ファイナンスから株価を取得する方法があります。当時はYahoo!ファイナンスからは20分遅れの株価しか取得できませんでしたが、現在はリアルタイムで株価が提供されるようになりました。こちらの記事も合わせてお読みください。

blog.ch3cooh.jp