株価上昇銘柄予測再開します
先週1日だけ投稿して停止した翌日の株価上昇銘柄予測ですが、スクリーニングの条件を見直して再度自動投稿を開始しました。抽出銘柄がバラエティに富むように、前日比(%)を条件に取り込みたかったのですが、楽天証券のスクリーニングだと指定できないのでマネックス証券に切り替えました。
マネックス証券のスクリーニングがまたjavascript乱用でWWW::Mechanize泣かせだったのですが、パラメータをなんとなく分析して銘柄抽出できるようになりました。
明日(というか今日)の結果がどうなることやら楽しみです。
マネックス証券のスクリーニングがまたjavascript乱用でWWW::Mechanize泣かせだったのですが、パラメータをなんとなく分析して銘柄抽出できるようになりました。
明日(というか今日)の結果がどうなることやら楽しみです。
スポンサーサイト
銘柄自動抽出について
おとといから銘柄の自動抽出を始めたのですが、抽出条件がいい加減すぎたのか地合が悪いのか、ひどい的中率なのと、翌日以降も同じ銘柄を抽出してしまい信憑性があまりに低いので一旦停止しました。もう少しよい抽出条件を見つけて一両日中に再開したいと思います。
WWW::Mechanize::Pluggableでyahooファイナンスから株価を取得
株価予測システムを作成するにあたり、株価を取得するシーンが何度もあるのですが適当なAPIがなさそうなのでいまのところYahoo!ファイナンスの銘柄情報を利用させてもらっています。以下はPerlでWWW::Mechanize::Pluggableを使用してこちらのページから株価(例は証券コード2121:ミクシィ)を取得する例です。簡単ですね。スクレイピング楽しいなー。
#!/usr/bin/perl
use strict;
use WWW::Mechanize::Pluggable;
my $mech = WWW::Mechanize::Pluggable->new();
my $code = 2121;
$mech->agent_alias( 'Windows Mozilla' );
$mech->get("http://quote.yahoo.co.jp/q?s=" . $code);
my $result = $mech->scrape('//html/body/center/div[5]/table[3]/tr[2]/td[5]','price' => 'TEXT');
print $result->{price};
システムトレード開発進捗
先日より日々の株成績を公開しはじめにわかにやる気を戻しつつあるシステムトレード開発ですが、やっと大雑把なシステムが出来てきました。1~2日中にはテスト運用を開始したいと思います。
今回作成したシステムは4つのアクションで構成されていて、以下の機能をひとまず作成しました。
・証券会社のスクリーニング機能をWWW::Mechanizeで利用し銘柄を取得しDBに保存
・抽出した銘柄をブログにポスト
・前日抽出した予測銘柄の当日の騰落を取得する
・予想の結果をブログにポスト
ただ、システムが形になってきても肝心なストラテジーの部分がまったく練られていないので、これからテスト運用しつつ精度を上げていきたいと思います。
今回作成したシステムは4つのアクションで構成されていて、以下の機能をひとまず作成しました。
・証券会社のスクリーニング機能をWWW::Mechanizeで利用し銘柄を取得しDBに保存
・抽出した銘柄をブログにポスト
・前日抽出した予測銘柄の当日の騰落を取得する
・予想の結果をブログにポスト
ただ、システムが形になってきても肝心なストラテジーの部分がまったく練られていないので、これからテスト運用しつつ精度を上げていきたいと思います。
WWW::Mechanize::Pluggableで楽天証券の資産残高を取得する
タイトルの通り、WWW::Mechanize::Pluggableで楽天証券の資産残高を取得するコードを晒します。
自分のソースコードを公開するのは初めてなのでどんくささはご容赦ください。特に楽天証券にログイン後該当のページまでリンクをたどっていく箇所は、もっとスマートなやり方があるかもしれませんがURLにセッションIDらしきものがついている都合上、動作の確度を求めて律儀にリンクをたどるやりかたをとっています。
当ブログ、Perlでシステムトレードでは、平日前場終了時、後場終了時に資産残高を取得してDBに保存し、前日比をFC2 BLOGに自動投稿するようにしています。やっと最近時間が取れるようになったのでシステムトレードの研究をこれから進めていきたいと思います。肝心のデイトレの成績はこの数ヶ月散々ですのでシストレで勝てるようになりたいです。
※こちらのソースコードは2009/10/152009/12/20に動作を確認していますが、楽天証券のHTML構造等の変化により動作しなくなる可能性があります。ご了承ください。
※2009/12/20に楽天証券のデザインが変更になったのでXpathを修正しました。
自分のソースコードを公開するのは初めてなのでどんくささはご容赦ください。特に楽天証券にログイン後該当のページまでリンクをたどっていく箇所は、もっとスマートなやり方があるかもしれませんがURLにセッションIDらしきものがついている都合上、動作の確度を求めて律儀にリンクをたどるやりかたをとっています。
当ブログ、Perlでシステムトレードでは、平日前場終了時、後場終了時に資産残高を取得してDBに保存し、前日比をFC2 BLOGに自動投稿するようにしています。やっと最近時間が取れるようになったのでシステムトレードの研究をこれから進めていきたいと思います。肝心のデイトレの成績はこの数ヶ月散々ですのでシストレで勝てるようになりたいです。
#!/usr/bin/perl
use strict;
use WWW::Mechanize::Pluggable;
my $mech = WWW::Mechanize::Pluggable->new();
$mech->agent_alias( 'Windows Mozilla' );
# ログインページへのアクセス
$mech->get("https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html");
# ログインフォームに情報を入力してsubmit
$mech->submit_form(
form_name => 'loginform',
fields => {
'loginid' => $YOURLOGINID,
'passwd' => $YOURPASSWORD,
},
);
# ナビゲーションのframeに移動
$mech->follow_link( n => 1);
# 資産タブをクリック
$mech->follow_link( url_regex => qr/type=asset/);
# 真ん中のframeに移動
$mech->follow_link( n => 2);
# 真ん中の左のframeに移動
$mech->follow_link( n => 1);
# 商品別資産残高をクリック
$mech->follow_link( n => 2);
# 真ん中右のframeに移動
$mech->follow_link( n => 2);
# 資産総額を取得
my $result = $mech->scrape(
'//html/body/div/div/table/tr/td[2]/form/table[4]/tr/td[2]/table/tr/td/nobr',
'asset' => 'TEXT'
);
print $result->{asset};
※こちらのソースコードは
※2009/12/20に楽天証券のデザインが変更になったのでXpathを修正しました。