goo blog サービス終了のお知らせ 

~みんな株ってる?~

~目指せ!あと5年でセミリタイヤ~   ※ブラウザのフォントを等幅にすると快適に参照ができます。

メール送信機能

2007年05月20日 22時30分33秒 | シストレ-開発編
「有ったら便利機能」として挙げていたメール送信機能を作成してみました。

日中の約定状況や騰落の状況を携帯にメールする機能です。
将来的には携帯からの返信メールで売買執行する事を計画中です。

とりあえず、main機能を作成しました。

<実現方法の検討>
まず、メールを送信機能を実現するに当たっていくつか実現方法を考えてみた。
ベースがEXCELであることは決まっているので、そこから何に連携するかだけだが、
WEB等で調べた結果以下の幾つか方法が見つかった。

 ・EXCEL→OUTLOOK
 ・EXCEL→外部ツール
 ・EXCEL→外部ライブラリ

それそれについてメリット/デメリットがあるが、
一番シンプル且つ、確実な方法をと思い、外部ライブラリを使用することにしました。

世の中にはBASP21という、VBやVBAから使用できるライブラリがあるらしい。
シストレ系では、しばしば使われているようでそこそこ事績が報告されていた。

<実装方法>
①DLしたBASP21のFree版のexeファイルをDクリックしてインストール
 ※exe/dllなど幾つかのファイルがC:WINNTSystem32配下に配置される

②EXCELのVB Editorを開き、「ツール」-「参照設定」から「Basp21 1.0 Type Libruary」にチェックを入れる。

③コードを書く

という簡単なもの。。。

実際のコードは↓のようになりました
strServer = "smtp.XXXXXX.com" ←プロバイダのsmtpサーバを指定
strTo = "test@docomo.ne.jp"  ←送信先(携帯)のアドレス
strFrom = "test@XXXXXX.com"  ←自分のアドレス
strSub = "件名"        ←件名を指定
strBody = "本文"        ←本文を指定
strFile = "c:temptest.txt" ←添付ファイルのパスを指定

Set bobj = CreateObject("basp21") ←basp21のオブジェクトを作成
result = bobj.SendMail(strServer, strTo, strFrom, strSub, strBody, strFile)
                   ↑メール送信

携帯に表示した時の一行文字数を調整しながら、
銘柄名/買値/現在値/損益/損益率を一定時間間隔でメール出来るようになりました。



2007/04/12 本日の結果報告(テスト投稿)

2007年04月12日 03時28分07秒 | シストレ-開発編
<エントリ>
 text1
 text2

<利確/損切>
 text1
 text2

<含み損益>
 text1
 text2

<総資産残高>
 text1
 text2

------------------------------------------------------------
     ↑ここまで自動↑


テストで投稿してみました。

マクロ実行ボタンを押してから約20秒で投稿が完了します。
ヒジョーに便利でございます。

これならメンドくさがらずに更新していけそう??かな。。



ブログ自動更新機能

2007年04月12日 03時25分24秒 | シストレ-開発編
しばらくぶりの更新です。

シストレの実機能ではないのですが、
シストレ結果を自動でこのブログにUPする仕組みを作成してみました。

以前ドラフトのところに、「有ったら便利機能」として挙げておりましたが、
VBAでのIE操作(と言ってもほとんどがIEのソース解析)の興味と勉強を兼ね、
先に作ってしまいました。

結論から言うと、証券会社のWEB注文画面を解析するよりもはるかに単純で簡単です。
(自分が上達したかと勘違いしてしまう程・・・・汗)


 <処理の流れ>
 ①IEオブジェクトを作成し、ログインページを開く。
  ※データ取得機能Aで書いた通り。。

 ②入力フォームにIDとパスワードを入力する。
  objIE.Document.Forms("フォーム名").all("入力項目名").Value = "入力値"

 ③ボタンを押して次に進む。
  objIE.Document.Forms("フォーム名").submit

 ④新規投稿ページで内容を入力する。
  タイトルや本文はパスワードなどと同じ方法。
  カテゴリのドロップダウンリストは、
  objIE.Document.Forms("フォーム名").all("リスト名").Value = "値"

 ⑤UPLOAD&ログアウト


ってな感じの処理。簡単でしょ~。。。。

実質3時間くらいでベースは出来ました。
あとは、これをシストレ本体と連携させ実データをUPしてみよ。



データ取得機能A

2007年01月15日 22時27分43秒 | シストレ-開発編
シストレのベースとなるデータ取得を作ってみました。

A)日々のデータに関してはPanRolling殿のサイトからtextファイルをDLし、
 EXCELに取り込んで保持する。

B)詳細データ分析にはYahoo殿のサイトから時系列情報を取得し、
 EXCELに取り込んで保持する。


本日は、まずA)について考えてみる・・・。

例えば、2007年1月15日のデータの場合のURLは、
「http://www.panrolling.com/data/daily/s20070115.txt」となっており、
ファイル名のYYYYMMDDの部分をプログラム側で作成しパラメータとして
IEに送りをデータ取得してみます。

 <処理の流れ>
 ①IEオブジェクトを作成し、該当日のURLを開く。
  objIE = CreateObject("InternetExplorer.application")
  objIE.Navigate "http://www.panrolling.com/data/daily/s20070115.txt"

 ②取得したサイトのデータをtextファイルに出力する。
  Open f_path & f_name For Output As #intFF
  Print #intFF, objIE.Document.body.innertext

 ③IEオブジェクトの開放、textファイルの保存などの後処理。
  Close #intFF
  objIE.Quit

 ④①~③を必要日数分繰り返す。


これをEXCELのVBAで実行してみたところケッコウ遅い(;_;)
同じ事をVBScript(VBS)で書き換えてみたが、あんまり変わらない(x_x)
まあ、パフォーマンス改善は一通り機能が出来てからの後回しにして・・・

次は、どこの機能を作ろうかなぁ~。。




新システムのドラフト・・・

2007年01月03日 23時52分15秒 | シストレ-開発編
新システムの開発にあたり、諸条件(前提条件、実装機能、便利機能)などを考えてみました。

 <前提条件>
  ・現状のシステム機能は必須で実装
   ※現状機能は「現状のシステムについて・・・」の回を参照

  ・全てをEXCELで実装

  ・全てを自動で実行できるように実装

 <実装機能>
  ・データ収集/蓄積
    銘柄検索に必要なデータを外部から取得し、EXCELへの取込み、整形、加工、蓄積を行う。
    株式の分割/統合などに対応するため、蓄積済みの過去データについての編集を行う。
    データ取得の外部ソースとしては、各種サイトで公開されている無料の株価データ(csv)と
    有名ポータル上のデータを想定している。

  ・ストラテジー(投資戦略)該当銘柄検索
    ストラテジーに従い翌日投資するべき銘柄の抽出を行う。
    ※将来的には複数のストラテジーに対応

  ・売買注文/ステータス取得
    抽出された売買注文を各種条件に従い証券会社に注文を出す。
    ※各種条件
      売買区分:買い/売り/信用買い/信用売り
      注文条件:指値/成行
      注文株数:売買単位×注文口数
      注文価格:指値価格/逆指値価格/変更価格
      注文方式:通常/逆指値/逆指値付通常
      執行条件:本日中/今週中/寄付/引け/不成
      口座種別:特定/一般

    注文の約定ステータスの確認を行う。
    注文の変更/取消しを行う。

  ・売買記録
    約定銘柄の情報をシートに記録し、ポートフォリオ管理を行う。
    全注文をLogに書き出す。

  ・売買実績集計/分析
    売買実績について成績の集計を行う。
    当日の終値での評価額における口座管理(資金管理)を行う。
    改良のヒントとして様々な角度(切り口)で集計を行う。

 <有ったら便利機能>
  ・約定通知メール
    証券会社のメールの内容だけでなく様々な情報を盛り込んだメールを送信する。

  ・ブログ更新
    毎日の売買実績を自動でBLOGの運用編にUPする。

  ・シュミレーション
    過去データを使用したストラテジーの検証を行う。
    検証結果を集計/分析する。
    シュミレーション結果をファイルに出力する。

  ・メルマガ
    将来的に本システムでの分析情報を会員メンバーにメール配信する。

ってな感じで考え中です・・・。
幹の部分まず作成し、徐々に枝葉を付けて行く予定です。



現状のシステムについて・・・

2006年12月26日 02時54分21秒 | シストレ-開発編
「現状のシステム」ですが、
システムと言っても、すごい事はぜんぜんやってません。

世の中には、様々なソフトが色々方により作成/公開されており、
自分で全てを一から作らなくても組み合わせや工夫で簡単に出来たりして・・・

私もその恩恵にあずかっております。
具体的にはAlpha ChartUWSCという素晴らしいソフトを使い
そのコントロール部分のみをExcelで自作して、それらしく動かしてます。

大まかな流れとしては、

 ①Alpha Chartでデータ収集
  ざっくりとしたスクリーニング(1次スクリーニング)

 ②結果をExcelにコピペ

 ③ExcelVBAマクロにてInternet(yahooの時系列データ)の過去データを取得

 ④データを分析(2次スクリーニング)

 ⑤楽天証券のMarcketSpeed(マケスピ)に対し、
  ExcelからUWSCをパラメータ付き(株価など)で起動して注文を出す。

ってな、事を毎日やっておりますが、
全ての作業において人の手を介して動いております。

そんな、日々の不満からこのブログを立ち上げた次第です。



最初に最終目標を・・・

2006年12月20日 10時02分23秒 | シストレ-開発編
このブログのメインであるシストレを始めるにあたり、
最終目標というか、夢というか目指すゴールでも書いてみますか~。

 ●開発のGOAL
  PCの電源さえ入れておけば、
  情報収集~銘柄選定~買注文~監視~売注文~実績管理まで
  全て自動で行なってくれる便利なシステム

 ●運用のGOAL
  ハイターンは望まないが、日々安定した実績をあげられる
  数値にすると勝率70~80%、損益率10%くらい・・・。

 ●人生のGOAL
  あと5年でセミリタイヤを目標に。
  いったい幾ら貯まれば良いかもこれから検討していく予定。

と、まあソコソコのハードルを設定してみました。
果たして、結果はどうなるか・・・。。