FC2ブログ
現役プログラマー村健の、投資に役立つプログラムを作るための勉強ブログです。 自動売買、システムトレードに挑戦!します。 勉強と習得の成果を記録です。
本ブログについて
本ブログは、プログラマー観点で投資への対費用効果を上げるために何ができるか?を考えていくブログです。
基本的には、ツール作成・公開、投資に関わるプログラム情報、最終的には 完全なる自動売買を目指しています。

現在、HPの方で現在作成中のツールや発注ロジックなどを公開中です。
クリック証券がWebサービスを終了するそうです。

https://www.click-sec.com/corp/guide/kabu/webservice/index.html
クリック証券Webサービスの新規ご利用受付は2009年2月2日をもって終了させていただきました。既にWebサービスをご利用のお客様につきましては、2009年2月14日にご利用を終了させていただきます。

メールでお知らせが来ているらしいのですが、私のところにはきてないですね・・・
迷惑メールにでも入っていたかな?

せっかく日本で先駆けてAPI公開を果たした証券会社だったのに、サービスがなくなるのは残念です。
市場暴落・不況のあおりを受けたんでしょうかね。
メリットがなくなったので、口座解約でもするかな・・・

これでWebサービスを使える証券会社がなくなってしまいました。
株式市場が復活すればWebサービスもまたでてくるかもしれませんが、まだまだ時間がかかりそうなので、自力でプログラム売買を行うには旧来のIE操作の手段に戻るしかなさそうです。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
スポンサーサイト



GMOインターネット証券のWebサービス 続×6 です。

今日一日でWebアクセスDLLを作り込みました。

とりあえずローカル環境では全メソッドがOKになりました。
あとはまとまった時間ができたら本環境で色々試してみて、
ある程度確認できたら公開します。
その前にHPのDLL説明ページも作らないといけないですね。
プログラムは楽しいですがこういった作業は面倒くさい。。。

配布形式はDLLバイナリ+サンプルソースにする予定です。
DLLソースは希望者は運営協力頂ければ差し上げる形にするかと。
VB2005なので、DLLのソースを流用して少しいじるだけで、
VBAでも使えるかと思います。
また、サンプルソースを参考に少しつくりこめば、
オリジナル発注ツール程度ならすぐに作れるのではないでしょうか。

まぁ、ただの発注ツールなら証券会社の高性能なツールの方が断然良いので、
どうせならこれらにはない機能をツールにしたいものです。
例えば、保有銘柄を監視し、設定した利確条件・損切り条件を満たせば
自動で返済売買するデイトレ損切利確補助ツールとか。

このくらいであれば頑張ればつくれるかなーって感じですが、
私は本業があるので使うことはないか。。。。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のWebサービス 続×5 です。

Webサービスを開始する為には、ブラウザからGMO証券のHPにログインして、
Webサービス開始設定を行う必要があります。

わざわざ設定をするのが面倒くさいので、
Webサービス開始設定をするプログラムをVB2005で作成しました。

以前作成したIEコントロールDLLを使っており
IEコントロールDLLの実装サンプルという形でHPに公開しています。

場所がちょっとわかりにくいと思いますので、更新履歴からとんで下さい。

今回はサンプルなので、ソースの公開です。
初心者の人にはVB2005&IE操作の参考になるかもしれません。
VBA使いやIEコントロールDLLを使わないって人でも、
アクセス部分は同じなのでちょっといじれば使えると思います。

DLLにするのも簡単にできると思うので、部品化したい人は是非。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のWebサービス 続々々々 です。

重い腰をあげてやっと再開しました。

しょっぱなからつまづきます。

以前のバージョンではXMLHTTPを使ってアクセスしていたのですが、
本物(Web)環境ではなぜかアクセスが拒否されてしまいます。

試行錯誤の結果、しかたなくWinHttp.WinHttpRequestを使うことに。
これで本物・ローカル環境でログイン・ログアウトまで完成。

さらに問題が発生。
ローカル環境で注文処理を実施して応答XMLを取得したのですが、
取得文字列XMLになぜか不正な文字がまぎれており、
XMLドキュメントとして処理ができない。

文字コードがどうこうという問題ではなさそうで、
どうやって解決しようか考え中です。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のWebサービス 続々々 です。

プログラミング&試験をする程の時間的余裕はないのですが、
どんな感じにするかを考えています。

アクセス用DLLについては
・前に作ったローカル環境用のDLLをベースに改造する
・ローカル環境・本物環境のアクセスモードを設ける
 DLLを使う側としては、モード設定を変えるだけで(ソースに手を加えることなく)
 本運用(Webアクセス)・試験(ローカルサーバアクセス)が簡単に切り替えられるように。
とするつもりです。

読者様より情報をいただきましたので(Ken様ありがとうございました)、
DLL作成はそんなに大変ではなさそうです。


あと、LocalApiServerのソースが解析できれば、
シミュレーション・テストの動作を行えるように改造したいです。

Pythonについての知識がないので、
まずはどんな機能があってどんな事ができるか、から調べる必要があります。

改造案としては、
・過去データを用意して注文を擬似実行
・口座管理を擬似実行
をイメージしています。

過去データを用意して注文を擬似実行させる機能は、
(実際の市場に注文したかのように、過去のデータから注文可否・値段などを判断して約定結果を返す。
成行だといくらで約定、指値だと約定するかしないか、などが実際の過去の値動きで模擬実行できる)
使い道はバックテストくらいしかなく、既にシステムトレードで行われているので、
この機能だけならあえて実装する意味はないです。

さらに口座管理の模擬実行を実装することで、
(資金・保持銘柄・信用など、証券会社の動きをシミュレート。
資金を超える発注にはNGを出したり、指値注文は約定するまでは取り消し可能だったりetc)
GMO証券のWebアクセスを使った「(自動)売買ツール」のテスト環境が整うことになります。

GMO証券がバージョンアップしてこれら機能をいつか実装してくれるとは(勝手に)思ってますが、
リリースのペースをみるとまだまだ先な気がします。

アイデアはあるものの、実際にやるとしたら大変そうですね。。。

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のWebサービス 続々 です。

仕様書をさらに読んでみました。

正式バージョンだけあって、
プログラム構築にあたって必要な情報が記載されていますね。

決してプログラム初心者向けの資料ではなく、
プログラムの知識がある程度ある人が理解できるレベルでの記載だと思います。

サービス仕様書では、前回のバージョンであった株式情報の取得が
今版では消えているっぽいです。
設備等により今回は見送られたのでしょう。

まぁリアルタイムで情報が取得できるわけではない
&楽天RSSほどの情報が取得できるわけではないので、
現時点ではなくてもかまいませんが。

楽天RSSを超えるような情報収集機能が用意されれば、
(取得項目というより接続の安定性とかそこらへんかな)
楽天の楽天RSSユーザをごそっとGMOに持ってこれるような気が
しますけどね。
(でもDDE通信なら安定性は無いけどEXCELで簡単に使えるか。。。)
今後に期待します。

これで発注プログラムの構築は行えるわけですが、
ソフトの設計は大変そうですね。

今までは発注の低速問題により、
人が手で行うデイトレードの個人のプログラミング化には
ある程度制限がありました。
この問題が解決した(たぶん)ので、上記の実現が現実的になり、
次の焦点は人の思考パターン・トレード手法のロジック化(プログラミング化)に移り、
さらに複雑さを増していくと思われます。

思考パターン・トレード手法のロジック化で簡単なのは、
巷にあるデイトレード本の手法を真似ることですね。

そういったサービスを行っている企業のサイトをみたことあります。
儲かっているのかは知りませんが。

それにしても、手法・理論が複雑なら儲けられるとも限らず、
徳山式のように単純な手法のほうが、
コストに対して利益があると思います。

徳山式の一括発注一括決済なら、GMOの発注はとても使える(処理が高速なので)と思いますし。
(でも徳山式は手法が広く知れ渡っているので、利益はだんだんと出せなくなるでしょうけど)

しかし、他の人が最新の複雑な方法で利益を出していると知ると、
そういう時代になったので自分もこの手法でないと利益が出せない、
って思いそうです。
自分はシステムトレードや自動売買に直ぐ飛びついてますしねw

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のWebサービス 続 です。

仕様書・ガイドを簡単に読んでみました。
以下、簡単に読んだだけで理解した内容を記載していますので、
実際と異なっている可能性があります。

前に提示されていた仕様からの大きな変更点として、
ログインの手順が複雑になっていました。
(セキュリティの観点ではあたりまえですけどね。
以前のLocalApiServerのログイン処理はこんなので大丈夫?と思ってましたが)

処理の流れなどは仕様書を参照してもらうとして、ポイントを簡単に。
・以前はサーバへのアクセスはURLのみだったが、URL・HEADER・BODYに情報を設定する必要がある(httpsで)
・応答メッセージから基底URL、SessionIDを取得し、以降でこれらを使用する
・応答の内容を判断し、複数回やり取りする必要がある

サーバへのアクセス方法(https,header,body等)については、少し調べればわかりそうです。
応答メッセージのXMLからの情報取得は以前作成したテストDLLで処理作成済みなので、
多少の変更で対応できそうです。
基底URLやSessionIDは文字列の取り出しでよいですし。

簡単にできそうな感じです。たぶん。
以前作成したテストDLLの処理が結構使えそうです。
役に立ちそうで良かった。

テストDLLの検討内容はブログの過去記事orHP参照ください。
DLLはHPで公開中です。
ソースは運営協力者に無料で配布しています(VB2005)。

プログラムの専門ではない人は、
これら仕様書を読んだだけでプログラムができるのでしょうかね?
挫折しそうな気が。。。

時間ができ次第プログラミングに入っていこうと思います。

夜間でもログインとかできるんでしょうかね?
駄目だったら試験ができない( ̄□ ̄;)!!

ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券がついにWebサービスを開始しました。

プラットフォームに依存しないXMLベースの仕様で、
GMOインターネット証券の取引システムへ接続を可能とするもので、
取引ツールの開発ができるようになります。
VBAでも.NETでもどの言語でもツールの開発は可能でしょう。

日本国内において、このような個人投資家向けのウェブサービスへの接続は、
GMOインターネット証券が初めてです。

デメリットもまだあると思いますが(過去の記事を参照)、
発注部分に関しては操作が非常に楽になると思います。

以前、ブログ、HPにてGMOインターネット証券で公開されたテスト用のサーバのツール開発について記事を書きましたが、
本運用が開始したので、これについても調べてみようと思います。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
HPGMOインターネット証券の「LocalAPIServer」アクセスDLLを公開しました。

「LocalApiServer」用なので、今は意味がまったくないと思いますが・・・。

正式サービスが開始したら、また正式なアクセスDLLも作る予定ですし。
どこかの有志が作ってくれそうですし。

ソースを見て勉強したい!という方がいらっしゃれば、
運営に協力頂ければ差し上げます。


せっかくの新しいネタだったのですが、
DLLも完成して尽きてしまいました・・・

でも、だいぶ仕事も落ち着いてきて、
中途半端になってたものを片付けるチャンスといえばそうなんですが。

何をどこまでやったかあまり覚えてないので・・・w


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング
GMOインターネット証券のLocalAPIServer活用その3です。

●XMLHTTP
ComのMSXMLを使えば、WebアクセスからXMLの扱いまでが簡単に
行えるようです。
バージョンは6.0が最新のようです。

Webへのアクセスは、
Private _objXmlHttp As MSXML2.XMLHTTP
・・・
objXmlHttp.open("GET", url, False)
_objXmlHttp.send()
urlに実行サンプルURLを入れてやれば、応答が格納されます。
あとは_objXmlHttp.response***で取得します。

ちなみに、アプリケーションを終了してもログイン状態は保持されています。
Cookieが継続される為でしょうか?ここら辺はちょっとわかりません。。。

参考
http://x7net.com/~access/AcTipsVbaXMLHTTP.html

●XPath
XPathなら、DosプロンプトでPathを指定するようにXMLを扱えます。

例えば、
_objXmlDoc.selectSingleNode("/loginResponse/message/text()").nodeValue()
こんな記述でアクセスできます。

この方が視覚的にわかりやすいし、変更も容易ですね。

銘柄情報取得メソッドのmarketからの値の取り出しに苦労しました。
複数証券取引所に上場している場合を考えないといけない為です。
サンプルでは東証のみになっているので、、
応答のテンプレートを複数銘柄に書き換えてテスト&処理作成しました。

XPathもまだよくわからないので、できたコードがこれ。
Dim looper
For Each attributeNode As Object In _objXmlDoc.selectNodes("//marketList/market/text()")
ReDim Preserve result.market(looper)
result.market(looper) = attributeNode.nodeValue
looper += 1
Next
もっと良い方法があると思いますが、現状はコレが限界です・・・

参考
http://www.gotdotnet.com/japan/student/column/xml/xmlprogramming8.aspx

●最後に

処理の実現方法がいくつかありましたが、
現状の規模ではどれも速度的には大差ないと思います。

プログラムの難度、コード量、配布サイズでどの方法で実現するか選ぶべきですね。

自分的なお勧めはMSXMLのCOMを使用する方法です。

MSXMLのDLLも配布する場合にサイズが大きくなるのは嫌ですが、
WebアクセスもXMLアクセスも比較的楽なコードで実現でき、
EXCEL_VBAにも流用できそうだからです。


あとは、実際にサービスが始まったときに、どのくらいの修正が入るかです。
まぁここまで理解できていれば楽勝ではないか?と思ったりして・・・。


今回作ったDLLは後で公開します。
まぁ「LocalApiServer」用なので使う意味はないと思いますけど。

コードが欲しい方がいらっしゃれば、運営に協力頂ければ差し上げる
予定です。


ブログランキングのクリックにご協力お願いします<(__)>
FC2ブログランキング
blogRanking
くる株・株ブログランキング
株・投資ランキング