投資と読書とライフハック

へっぽこエンジニアの勉強めも。当面は自動売買中心に取り組む。 投資,FP,読書,雑談,etc

自動売買に向けて 楽天RSSとC#で株価の取得

楽天RSS とっても便利なのになぜ今まで使ってなかったんだ…

ということで楽天RSSから株価データを取得するメモ。

楽天RSSとは?

楽天RSSとはRealtimeSpredSheetの略で、提供されるExcelのアドインを使うと、簡単な関数で株価の値等をリアルタイムで取得できるサービス?アプリ?

DDE(DynamicDataExchage)という古い?技術を使われているらしい。詳しくはよくわからないからおいおい調べるとして、とにかく簡単にリアルタイムにデータが得られる。

これを使うには楽天証券で口座開設してマーケットスピードをダウンロードする必要がある。使用料金は取引して手数料をある程度落とせば無料なので実質無料でしょ。

実用する上での気分

便利なのはわかったけど、Excel起動して値を更新し続けて、ついでにVBAかなんかでその値を記録し続けないとチャート作ったり分析したりできないんでしょ? なんかExcelでやるの重そうじゃない?? いや知らんけど。

なんで、できればPythonでやりたい。その後の解析とかの事考えて。 

Pythonを諦めてC#

グーグル先生に聞いてPython楽天RSSを取得する方法を調べるも、ずばりそのものな情報があんまり出てこない…。ヘタレなのですぐに諦めて他の手法で調べるとC#でわりと皆様やってるようなので、そっちで妥協する。

C#で取ってきてどっかにおいて、pythonでいじるかなぁ… 後でちゃんと考えよう。

 

具体的には。

C#でNDdeなるものを使うと簡単との事なのでNugetしてテストアプリを作ってみた。

簡単なもんで、銘柄コードを打ち込んで、ボタン押すとその銘柄名をテキストボックスに表示するという物。

f:id:kazutaro-y:20171103220527p:plain

当然ながら現在値など、楽天RSSが用意してくれてるものは取れる。

f:id:kazutaro-y:20171103220819p:plain
 
コードは下記。

エラー処理もしてなかったりと、プログラミングはほんとポンコツなのでお見苦しいですが見たい人もいるかなと思うので一応載せます。GUIはよしなにしてください。

これをベースに色々いじって使いやすくしていこうかな。

using System;
using System.Text;
using System.Windows.Forms;
using NDde;

namespace RakutenRSSGetTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

// テキストボックスへログ出力
// 引数:
// logText : ログとして書き出すテキスト
void writeLog(String logText)
{
textBox_Log.SelectionStart = textBox_Log.Text.Length;
textBox_Log.SelectionLength = 0;
textBox_Log.SelectedText = "[" + System.DateTime.Now.ToString() + "]" + logText + "\r\n";
}

private void Form1_Load(object sender, EventArgs e)
{

}

//RSSでゲット
private void btn1_GetRSS_Click(object sender, EventArgs e)
{
NDde.Client.DdeClient client = new NDde.Client.DdeClient("RSS", textBox_Code1.Text+".T");
client.Connect();
//byte[] data = client.Request("銘柄名称",1,1000);
byte[] data = client.Request("現在値", 1, 1000);
string name = Encoding.Default.GetString(data).Replace("\0", "");

writeLog(name);
}
}
}

はてな記法はじめてでインデントがぶっ壊れたけど勘弁してちょ。気が向いたら後で直すかも。

参考にさせてもらったブログのリンクって勝手に貼っていいの??

それも後で調べて更新するかも。

 

今日はここまで。