初勝利!2012年システムトレード成績

12/28に全ロボットが決済をし、2012年の取引を終えました。

年間損益: +3,680,175

2008年からトレードロボットの研究をしてきましたが、年間損益がプラスになることは初めてで初勝利となります。これまでバックテストの結果は良くても、実際に日々ロボットを動かしてみると損失を積み重なるというパターンを繰り返していました。いろいろ取引方針の転換をしていますが、その中でも

デイトレード → 短~中期の相場

日経225先物一本 → 日経225先物、FX、商品先物

これらの方針変更が一番大きかったのではと考えています。

バックテストの結果と今年一年の仮運用でだいぶ自信がつきましたので、来年からはこのロボットを使って実際に取引をしてみようと思います。ただ、アベノミクス?の期待からか現時点で株価もだいぶ上がってしまっていますので、エントリするのが少々怖いですね。(^-^;

2012

| | コメント (2) | トラックバック (0)

手軽にホームページビルダー17のWordPress連携機能を試すWebサーバーを無料で構築

これまでホームページビルダー12を使ってきましたが、先日、ホームページビルダー17(hpb17)を購入してバージョンアップをしました。
本バージョンからWordPressとの連携ができるようです。ホームページ・ビルダーサービスを利用してサーバーを借りれば手軽にはじめられるようですが月額利用料金がかかりますので、LAMP(CentOS6.3、Apache、MySQL、PHP)+FTPの環境を作ってホームページビルダー17のWordPress連携機能を試してみました。
以下はそのWordPressサーバーの構築メモです。内部LANで使うお試しサーバーなので極力設定変更をしない、最短手順としています。セキュリティに配慮していませんのでご注意ください。

  1. CentOS6.3のインストール
    (1)インストールDVDを入れて起動後、「Install or upgrade an ...」を選択。
    (2)ホスト名入力画面の「ネットワークの設定」ボタンをクリックし、有線タブの「System eth0」を選択して編集ボタンをクリックする。
    →「自動接続する」をチェックする。
    →「IPv4のセッティング」タブで固定IPの設定をしておく。
    (3)「システムクロックでUTCを使用」のチェックははずす。
    (4)インストールの種類を選ぶ画面では「Desktop」を選択する。
    (5)インストール完了後、「ソフトウェア更新」を実行する。
  2. パッケージインストール
    rootで以下を実行。
    yum install httpd php mysql-server php-mysql php-mbstring php-gd vsftpd
  3. vsftpの設定
    rootで以下を実行。
    gedit  /etc/vsftpd/vsftpd.conf
    開いた設定ファイルの以下のように編集
    (1)userlist_enable=NO←YESからNOに変更
    (2)手順1(CentOSインストール)で設定した一般ユーザーを以下のファイルの最終行に追記します。
    /etc/vsftpd/user_list
  4. apacheの設定
    rootで以下を実行。
    gedit /etc/httpd/conf/httpd.conf
    開いた設定ファイルの以下のように編集
    (1)#UserDir disable ← #を追加(コメントアウト)
    (2)UserDir public_html ← 行頭の#を削除(コメント解除)
  5. WEBユーザーディレクトリ作成とホームディレクトリのパーミッション変更
    (1)手順1(CentOSインストール)で設定した一般ユーザーのホームディレクトリにpublic_htmlフォルダを作成する。以下はrobotbrainというユーザーだった場合の例。
    mkdir /home/robotbrain/public_html
    (2)手順1(CentOSインストール)で設定した一般ユーザーのホームディレクトリのパーミッションを変更します。以下はrobotbrainというユーザーだった場合の例。
    chmod +rx /home/robotbrain
  6. ファイアウォールの無効化
    メニューより「システム」→「管理」→「ファイアウォール」と進み、無効ボタンをクリック後、適用ボタンをクリックする。
  7. SELinuxの無効化
    rootで以下を実行。
    gedit /etc/sysconfig/selinux
    開いた設定ファイルの以下のように編集
    SELINUX=disabled ← disabledに変更する。
  8. サービスの有効化
    「システム」→「管理」→「サービス」と進み、以下サービスを選択して有効ボタンをクリックする。
    mysqld
    httpd
    vsftpd
  9. ここでいったんOS再起動
  10. MySQLの設定
    手順1(CentOSインストール)で設定した一般ユーザーで以下を実行
    (1)mysql -u root -p
    (2)パスワード問い合わせに対しリターンキー押下
    (3)create database <DB名>;
    (4)grant all on <DB名>.* to <DBユーザー名>@localhost identified by ‘<DBパスワード>’;
    (5)exit
  11. ホームページビルダー17でWordPressサイトの公開をする時、「その他のプロバイダを使用する」を選択する。
  12. 公開先情報の設定画面で以下のように設定する。以下の項目以外はデフォルト。
    (1)プロバイダの選択:その他
    (2)FTPサーバー名:手順1の(2)で設定したIPアドレス
    (3)FTPアカウント名:手順1で設定した一般ユーザー名
    (4)FTPパスワード::手順1で設定した一般ユーザーパスワード
    (5)参照ボタンをクリックしてpublic_htmlフォルダを選択する。
    (6)WordPress設定名:任意の名前
    (7)データベース名:手順10で設定したDB名
    (8)データベースのホスト名:localhost
    (9)ユーザー名:手順10で設定したDBユーザー名
    (10)パスワード:手順10で設定したDBパスワード
    (11)サイトのURL:以下のように指定
    http://<上記(2)のIPアドレス>/~<上記(3)のアカウント名>/
    (12)「完了」ボタンクリック   

以上の方法でWordPressのサーバーを無料で構築できます。
WordPressを使ってみましたが便利な機能ですね。ですが、どこかセキュリティホールがないのか?と疑ってしまうのは私だけでしょうか・・。

| | コメント (0) | トラックバック (0)

PSVITAのバイリニアフィルタリング設定画面

PSPのゲーム(今回はモンハン2ndG)をPSVITAでダウンロードして遊ぶ時に

・バイリニアフィルタリング

・右スティック

・カメラ

・カラースペース(PSP)

という設定をする画面が出せます。

これは画面をタップし続ける(画面に指をおいてしばらく待つ)と表示されるようです。

意識して操作しないと戦闘中に設定画面でてしまいます・・

バイリニアフィルタリングをすると画面のカクカクがなめらかになりいい感じです。

| | コメント (0) | トラックバック (0)

PSPからPSVITAへのセーブデータ移行

PSPで使っていたモンハン2ndGはPSVITAでPlayStationSTOREからダウンロードして使えました。また、セーブデータの移行も行えました。移行方法は以下のとおりです。

(1)PSVITAでモンハン2ndGをダウンロードする。

(2)PSVITAで「NEW GAME」でゲームを開始して、いったんセーブする。

(3)PCでPSVITAのコンテンツ管理アシスタント(PC用ソフト)をダウンロードし

  セットアップする。「PSVITA コンテンツ管理アシスタント」でググるとでてきます。

(4)PCとPSVITAをUSB接続し、PSVITA側のコンテンツ管理でPSVITAのセーブデータ

  をPCにコピーする。

(5)PC側でマイドキュメント→PS Vita→PSAVEDATAとたどって、さらに下層に

  進むとPSVITAからコピーされたセーブデータがあるので、これをPSPの

  セーブデータで上書きする。

(6)PSVITA側でコンテンツ管理を使いPCのセーブデータをPSVITAにコピーする。

| | コメント (1) | トラックバック (0)

GWTで作成したWebアプリケーションをtomcat上で動かす方法

GWTで作成したWebアプリケーションをコンパイルしてtomcat上で動かす手順をまとめました。(GWTサンプルプログラムのShowcaseを例にしています)

  1. EclipseでGWTのWebアプリケーションプロジェクトを開いた状態で、ツールバーから Gwtcp [GWT コンパイル・プロジェクト]ボタンをクリックします。
  2. コンパイル画面ではとりあえずデフォルト値で[コンパイル]ボタンをクリックします。コンパイルが終わるとコンソールに"Compilation succeeded"とでます。
  3. Windowsのエクスプローラでtomcatのwebappsフォルダを開いておきます。
  4. Eclipseのパッケージ・エクスプローラーのwarフォルダを前項で開いたwebappsフォルダにCtrlキーを押しながらドラッグ&ドロップします。
  5. コピーした"war"フォルダを"Showcase"にリネームします。
  6. tomcatのサービスを起動して、ieなどのブラウザでサンプルプログラムのページを表示します。ローカルで見る場合は"http://localhost:8080/Showcase/Showcase.html"というようなURLになります。

| | コメント (0) | トラックバック (0)

GWTのサンプルプログラムをEclipseで参照・編集・実行できるようにする方法

GWT(GoogleWebToolkit)のサンプルプログラムをEclipseのプロジェクトに取り込んで、サンプルソースの参照・編集や実行をできるようにする手順をまとめました。

まず開発環境の整備

1.Eclipseのインストールと日本語化の手順はこちら

※インストール先はC:\直下などに入れたほうがいいです。マイドキュメントの下などに入れるとGWTプラグインのパスが長くなってしまい、フォルダの移動や削除時に「ファイル名または拡張子が長すぎます」というエラーがでてしまいます。

2.GWTプラグインは以下の手順でインストール

  • Googleのトップページから[もっと見る]→[さらにもっと]→[Code]→[Google Web Toolkit]とたどり[ダウンロード Google Web Toolkit]ボタンをクリックする。
  • [Download Plugin & SDKs]をクリックするとEclipseのバージョン別にUpdateSiteのURLが記載されているのでこれを控える。(たとえばEclipse3.6の場合はhttp://dl.google.com/eclipse/plugin/3.6)
  • Eclipseを起動し、メニューから[ヘルプ]→[新規ソフトウェアのインストール...]→とたどり前項で控えたUpdateSiteのURLを作業対象のところに入力してEnterキーを押します。
  • 画面に[プラグイン]と[SDK]というチェックボックスが表示されるので、両方ともチェックして[次へ]ボタンをクリックします。
  • さらに[次へ]ボタンをクリックしていき、[使用条件の条項に同意します]を選択し[完了]ボタンをクリックします。
  • 署名なしコンテンツのインストール確認については[OK]を選択。
  • 最後にEclipseを再起動するか問い合わせがありますので再起動します。

次にサンプルのダウンロード

  • Googleのトップページから[もっと見る]→[さらにもっと]→[Code]→[Google Web Toolkit]とたどり[ダウンロード Google Web Toolkit]ボタンをクリックする。
  • [Download GWT SDK]をクリックしてアーカイブをダウンロードする。

プロジェクトの作成とサンプルの取り込み(サンプルShowcaseの例)

  • ツールバーからGwtnew [新規Webアプリケーション・プロジェクト]ボタンをクリックする。※Windowsセキュリティの確認ダイアログがでたら[ブロックを解除する]を選択。
  • プロジェクト名に"Showcase"、パッケージに"com.google.gwt.sample.showcase"を入力する。
  • [Google Webツールキットを使用]のところにある、[指定したSDKを使用]のコンボボックスからSDKを選択。
  • [Google Appエンジンを使用する]のチェックをはずす。※ローカルでテストするため。
  • [Generate GWT project sample code]のチェックをはずす。
  • [完了]ボタンをクリックする。
  • Eclipseから[ウィンドウ]→[ビューの表示]→[ナビゲーター]とたどりナビゲータを表示する。
  • さきほどダウンロードしたGWT SDKのアーカイブを展開し、その中の"samples/Showcase"の下の"src"と"war"フォルダを、Eclipseのナビゲータ上の"Showcase"プロジェクトのところ(ツリーの最上層)にドラッグ&ドロップします。
  • コピーの問い合わせについては[Copy files and folders]を選択。
  • 上書き確認は[すべてはい]を選択。
  • コピーが終わったらEclipseで[ウィンドウ]→[設定]とたどり、ツリーから[一般]→[ワークスペース]を選択する。この中のテキストファイルのエンコードを"UTF-8"に設定する。
  • Eclipseのパッケージ・エクスプローラからソースを参照できれば成功。エントリポイントの"com.google.gwt.sample.showcase.client.Showcase.java"などを見てみる。
  • 実行する場合はパッケージ・エクスプローラで"Showcase"プロジェクトのところ(ツリーの最上層)で右クリックし[実行]→[Webアプリケーション]と進む。[Development Mode]タブのところにURLが表示されるのでこれをダブルクリックすると、ブラウザでWebアプリケーションを使うことができる。

| | コメント (0) | トラックバック (0)

Eclipse3.6(Helios)用のVisualEditor1.5.0リリース

Eclipse3.6(Helios)用のVisualEditor1.5.0がようやくリリースされました。(^ ^)

http://www.eclipse.org/vep/

| | コメント (0) | トラックバック (0)

確定申告書等作成コーナーで先物取引明細を自動入力するソフト「TaxBot」を公開しました。

日経225先物取引の確定申告を国税庁の確定申告書等作成コーナーを使って行う場合、全取引の明細を「先物取引に係る雑所得等」というページで入力しなければなりません。これを手入力で行うと大変な手間がかかりますが(特にデイトレーダーの場合)、本日公開した「TaxBot」を使えば取引履歴のCSVを読み込んで自動入力することができます。メインサイトで公開していますので、よろしければどうぞ。

| | コメント (0) | トラックバック (0)

取引回数とシュミレーション結果の信頼性について考える-2

2008年1月~2009年2月に使用した「2008年モデル」と2009年3月から使用している「2009年モデル」の性能を、今年の日経225miniのデータでシュミレーションし比較してみました。結果の損益グラフは以下の通りです。
Graph_2

青い線が「2009年モデル」、赤い線が「2008年モデル」です。どちらもトレンドフォロー戦略ですが、2009年モデルの方が慎重に行動する(取引回数が少なくなる)よう作っています。旧式のシュミレーション結果の方が2倍以上の損失ですので、3月の変更は間違いではなかったように見えますが、現状のシステムを使い続けることには疑問を感じてます。去年の10月中旬以降のようなチャンスがこないとも限りませんので、今年も去年と同様のルール(損失がシュミレーション時の最大ドローダウンの2倍を超えた場合リアル取引中止)で観察しようと思います。ここ数ヶ月のデイトレは逆張りでしか取りようのない相場に見えますので、今の戦略が脆弱で将来的にも無用なのか、ただ不運が続いているだけなのかの判断が難しいです。

| | コメント (0) | トラックバック (0)

オープンソース(LGPLv3)のトレードシステム部品をSOURCEFORGEで公開しました

トレードロボット基本コンポーネントパッケージをRobotTraderLibraryに名称変更し、ソースをSOURCEFORGEで管理するようにしました。バージョンはv2.00にアップしています。ソースの入手方法などメインサイトに載せています。このライブラリは現状本稼動中のトレードシステムで実際に使っており、現在ほとんどバグは出ていませんので比較的安定しているのではと思います。

また、ライセンスを今までのBSDライクなものからLGPLv3に変更しました。これでRobotTraderLibraryから派生したライブラリはオープンソースであることを義務付けられ、将来的にこのライブラリを独占されることはありません(私を含めて他の誰にも)。また、ライブラリの母体となるアプリケーション(呼び出し元)はオープンソースにしなくてもよいライセンスなので(詳しくはGNUからでているライセンスを参照ください)、安心して利用できるのではと思います。

トレードシステムの肝心要な売買ルール部分は誰も公開しないと思いますが、証券会社との通信処理やテクニカル指標の算出など共有可能なプログラム部品については、いろいろな開発者の方々の手によってメンテ、機能アップされた方が全トレードシステム開発者にとってメリットであると思いオープンソース化しました。ぜひ皆様もお気軽に開発に参加していただければと思います(Eclipseがあれば実現できます)。参加希望の方はメールをいただければ必要な情報を返信します(メールアドレスはメインサイトを参照ください)。

| | コメント (0) | トラックバック (1)

Eclipse3.5(Galileo)を使い始めました

Eclipse3.5(Galileo)を使い始めました。Eclipse3.5(Galileo)のインストール手順やPleiadesによる日本語化の方法、GUIアプリケーションの開発効率をあげるプラグインVisualEditorのインストール方法をまとめてメインサイトにアップしました。

| | コメント (0) | トラックバック (0)

https通信の内容をモニタして解析する(フリーソフトBurpSuiteでキャプチャ)

証券会社のサイトからの気配情報取得や発注処理を作りこむ時、なかなかうまく行かず壁にあたってしまった場合はIEなどのブラウザから実際に発注をしてみて、その通信内容をキャプチャしたいところですが、通信内容がhttpsで暗号化されているため、wiresharkなどのパケットモニタツールでは内容を解析することができません。このような場合はBurpSuiteというツールを使うと便利です。IEなどでこのBurpSuiteをProxyに設定して通信をすると、通信内容のすべてを見ることができます。使い方は以下のとおりです。

(1)BurpSuiteを以下の場所からダウンロードする。
http://portswigger.net/burp/download.HTML

・上記のページで「Free Edition」をダウンロードします。
・jarファイルがダウンロードされます。この記事を書いた時はburpsuite_free_v1.5.jarでした。

(2)ダウンロードしたjarファイルをダブルクリックします。画面がたちあがります。

(3)ブラウザでlocalhostのポート8080をproxyに設定します。
IEの場合はツール→インターネットオプションで接続タブを開きLANの設定ボタンをクリックします。その中の「LANにプロキシサーバーを使用する~」にチェックし、アドレスにlocalhost、ポートに8080を入力します。

(4)証券会社のサイトにアクセスします。するとburpsuiteの画面のproxyタブの文字色が変わるのでこれをクリックします。

(5)リクエスト内容が表示されています。「forward」ボタンをクリックして通信を進めます。ブラウザが通信中でなくなるまで「forward」ボタンをクリックし続けます。

(6)historyタブを開くとそこまでの通信履歴を見ることができます。さらに表から各通信をクリックするとrequestとresponseタブでそれぞれの通信内容を見ることができます。

| | コメント (0) | トラックバック (1)

証券会社PCサイトでの自動発注(クリック証券に挑戦)

トレードロボットの自動発注処理は携帯サイトやPDAサイトなどのようにHTMLがシンプルなサイトを選んで作りこんでいますが、今回クリック証券のPCサイトでの発注に挑戦してみました。トレードロボット基本コンポーネントパッケージを使って気配情報取得や新規発注を実装しましたが、携帯サイトやPDAサイトなどと違いJavaScriptとhtmlが複雑に絡み合っていますのでどうしても手間がかかります。

JavaScriptなしのサイトはHtmlParserクラスのparseHtmlFormメソッドを使って生成したHtmlFormに発注数や発注条件をセットしてsendForm(Webクラス)するだけでよく、hidden項目などには何もしなくていいのですが、PCサイトではHTMLに書かれているformの要素をJavaScriptで編集しているケースが多く(クリック証券の場合はToggle系やformの送信先URL)、この部分の解析とプログラミングに時間がかかります。

今後FXの自動発注処理を作っていく予定ですが、HTMLがシンプルなサイトを選ぶことになりそうです。

| | コメント (0) | トラックバック (0)

トレードロボット基本コンポーネントパッケージv1.20とシグナルボックスエディタβ2.10を公開しました

トレードロボット基本コンポーネントパッケージv1.20とシグナルボックスエディタβ2.10をメインサイトで公開しました。大きく変わった点は以下の通りです。

  • トレードロボット基本コンポーネントパッケージ
    今までSignalStreamやSignalBlockのgetSignalメソッドでシグナルを取得していたところをgetJudgmentResultメソッドで取得するように変更しました。
  • シグナルボックスエディタ
    リレーション削除の操作方法を変更しました。
    リレーション削除ボタンをクリックしてキャンバスをドラッグすると線が表示されるようになっています。この線を削除したいリレーションと交差させるとリレーションが削除されます。複数リレーションを一度に削除できるようにするためこのように変更しました。

| | コメント (0) | トラックバック (0)

JavaのHttpURLConnectionのdisconnect()メソッドで認識違い(FIN,ACKパケットは流れない)

トレードロボット基本コンポーネントパッケージのWebクラスではWebサイトからhtmlを取得する時の処理の流れを以下のようにしています。

(1)HttpURLConnectionのconnect()を実行
(2)HttpURLConnectionのgetResponseCode()をした上でgetInputStream()からhtmlを取得
(3)HttpURLConnectionのdisconnect()を実行

このそれぞれの処理で以下のようなパケットのやりとりを想定していましたがⅡの方が大きな間違いでした。

Ⅰ.上記(1)のconnect()でSYN→SYN,ACK→ACKのパケットが流れてTCPのコネクションが確立される。
Ⅱ.上記(3)のdisconnect()でFIN,ACKのパケットをやりとりしコネクションを切断する。→×

wireshark(フリーのパケットキャプチャツール)でパケットのやりとりを見てみますとHttpURLConnectionのdisconnect()を行ってもFIN,ACKのパケットは流れません。
FIN,ACKはConnectionヘッダーのデフォルトをKeep-Aliveにしていたためか、(2)を行った後、数秒何もしないとサーバー側から送られてきていました。
Connectionヘッダーをcloseにすると(2)でhtmlを受け取った後、ただちにFIN,ACKパケットがサーバーに送られます。

今までWebクラスのgetHtmlメソッドやpostHtmlメソッドの中が上記の(1)~(3)のような処理でしたが、Keep-Aliveの時に連続してgetHtmlメソッドを実行すると問題が発生しそうです。以前HTTPのレスポンス受信時にIOException"Connection reset"が発生するトラブルがありましたがこれが根本原因なのかもしれません。修正版(getHtmlとpostHtmlメソッドの中のdisconnect()呼び出しをやめる)の基本コンポーネントパッケージを近日中に公開したいと思います。

なお上記以外にも以下のようなことがわかりました。
・Keep-Aliveで接続が持続されている状態でHttpURLConnectionのオブジェクトがスコープを外れるなどして破棄される時にはRST,ACKパケット(強制切断)がサーバーに送られる。
・HttpURLConnectionのconnect()はコネクションが確立していればSYN→SYN,ACK→ACKのパケットが流れない(これはjavadocに書いてありますね)のでKeep-Aliveには対応できる。

| | コメント (6) | トラックバック (0)

非専業システムトレーダーにとって重要な異常通知機能

常にPCの前にいて取引できる専業のトレーダーの方々と違い、私のような普段会社勤めをしている非専業のシステムトレーダーにとっては異常通知機能が大変重要になってきます。特にポジションを持っている状態で異常が発生した場合などは強制決済をしなければなりませんのでなるべく早く異常をキャッチする必要があります。

私の場合は以下の3段階で確認できるようにしています。

(1)トレードロボットのプロセスとは別にトレードロボットが動作しているか確認するプロセスを起動しておいて、トレードロボットと通信ができなくなった時に携帯電話に異常通知メールを送る。

→トレードロボットのプロセスが停止した時に通知を受けられます。基本的にはこれで十分なはずですが・・

(2)メインサイトのトップページに各ロボットがLastUpdate時刻を記録する。(20秒おき)

→トレードロボットとトレードロボット監視プロセスの両方が停止しても、このLastUpdate時刻を見れば異常をキャッチできます。

(3)メインサイト自体が見れない場合は光回線のDSU(ADSLの場合はADSLモデム)に異常があると判断します。

| | コメント (0) | トラックバック (0)

トレードロボット基本コンポーネントパッケージ(オープンソース)がv1.10にバージョンアップしました

トレードロボット基本コンポーネントパッケージ(オープンソース)がv1.10にバージョンアップしました。Web通信(http,https)クラスでCookieを自動処理するよう機能改善しています。今までのバージョンではCookieの送受信処理を自分で実装しなければなりませんでしたが、jp.robotbrain.net.Webクラスのgoメソッド(新)とsendFormメソッドを使うことにより基本コンポーネント側でCookieの送受信が行われます。これにより今まで面倒であった証券会社のPCサイトへのログインが携帯サイト、PDAサイトと同じようにシンプルなコードで実装できるようになりました。メインサイトでクリック証券、SBI証券、カブドットコムへのログイン処理のサンプルJavaソースをアップしましたのでよろしければご覧ください。

| | コメント (1) | トラックバック (0)

取引回数とシュミレーション結果の信頼性について考える

3月から実戦トレードロボットを旧式のnikkei_dolphin_sig001から現nikkei_ape_sig001に切り替えました。2008年度の実績をもとに算出した日経225mini1枚あたりの1取引(往復)のコスト(スリッページ+手数料)\1,200で2000年~2008年を旧式で再シュミレーションしたところ総損益マイナスの結果となったため、ロジックやパラメータを見直して新しいロボットに切り替えたのですが不安材料がいくつかあります。まずは旧式のロボットにくらべ現ロボットの年間平均取引数が少ない点。日経225miniのデイトレード(イブニングは除外)で旧式の平均年間取引数は278回ですが、現ロボットは157回です。これが多いか少ないかは1年くらい実トレードしてみないとなんとも言えませんが、2009月3月度だけを見るとまずまずの結果になりました。以下の表は旧式(青い線)と現ロボット(赤い線)の2009月3月度のシュミレーション結果ですが、現ロボットの方がドローダウンが小さく、最終的な損益も旧式よりも若干上まわりました。今後も旧式との比較をしながら、どのくらいの取引数が妥当か研究していきたいと思います。

0803_0903_2

| | コメント (0) | トラックバック (0)

HTTPのレスポンス受信時にIOExceptionの"Connection reset"発生

新規注文のhttp通信時にIOExceptionが発生するトラブルが3/13に起きました。

ログを見たところ新規注文のhttpリクエストは問題なく送信されていたようで、その後のhttpレスポンスを受信時にIOExceptionが発生していました。メッセージは"Connection reset"でした。(例外は発生しましたが新規注文は約定されていました)

具体的なエラー発生箇所ですが、トレードロボット基本コンポーネントのjp.robotbrain.net.WebクラスのpostHtmlの中にある以下の行でエラーになっていたようです。

returnValue = getResponseText(p_charset);

レスポンス受信時になんらかの理由でコネクションが解消されたようですね。1年3ヶ月運用してきてはじめて発生する現象ですので再現性はかなり低いと思いますが、年に1~2回しか訪れない大チャンスで再現されたら、たまりませんので以下のような対策をしました。

(対策)

新規注文時の処理は大きく以下のような流れになっています。

------------------------------

(1)新規注文フォームをPOST

(2)上記(1)のレスポンスを受信

(3)建玉一覧のページをGET

(4)上記(3)のレスポンスを解析して建玉がある場合は約定したと判断する。すぐに約定しない場合があるので10数回は(3)~(4)を繰り返す。

------------------------------

このようになっておりまして、約定確認は建玉一覧ページを見て行っていますので(2)のレスポンスは受信はしますが、処理上使っていません。ですので(2)で例外が発生しても無視して(3)に進むように処理を変更しました。

また、この対応を可能にするためにトレードロボット基本コンポーネントのjp.robotbrain.net.WebクラスのsendFormで送信用と受信用の例外をそれぞれHttpSendException, HttpRecvExceptionのように分けました。(v1.02まではIOExceptionで一本化されていましたので送信と受信どちらのエラーか判別できませんでした)

昨日公開したトレードロボット基本コンポーネントパッケージv1.03は上記の対応をしたバージョンになります。

| | コメント (1) | トラックバック (0)

オープンソースのトレードロボット基本コンポーネントパッケージV1.02とシグナルボックスエディタβ1.7を公開しました

久しぶりにトレードロボット基本コンポーネントパッケージとシグナルボックスエディタをバージョンアップしました。メインサイト(robotbrain.jp)で公開していますのでよろしければダウンロードしてください(Vectorでは2週間後くらいに公開となります)。なお、今回のシグナルボックスエディタのバージョンアップで保存ファイル(SignalBoxDesign)の形式変更を行っておりまして、これが旧バージョンとの互換性がありません。ご注意ください。

| | コメント (0) | トラックバック (0)

週末は引越しです~YahooBBの解約で失敗~

週末は引越しのため2/27(金)夜から週末にかけてメインサイトにアクセスができなくなります。あらかじめご了承ください。(FXロボットは先日からすでに止めています)

さて、私は今までYahooBBを使っていましたが、引越しなどでYahooBBの解約を予定されている方はなるべく早くお電話することをおすすめします。私は電話1本で解約が済むものと思っていたのでぎりぎりまで電話をしなかったのですが、実際には解約手続書がYahooBBから送られてきて(電話をしてから4日後に到着)、これに署名などをして返送しそれがYahooBBに到着した月が解約月になるようです。わたしは今日(2/27)この解約手続書をポストに入れますので微妙なところですが、おそらく来月分の料金も発生してしまうと思われます。4000円程度ですが、すごく損をした気分になりますね。

| | コメント (0) | トラックバック (0)

スターアセット証券の商品先物電子取引サービス終了

商品先物用の口座をスターアセット証券に持っていましたが、平成21年3月27日(金)をもって電子取引サービス「I・トレード」が終了になるようです。先日、クリック証券のWebサービスが終了になりましたが、証券会社はサービス規模縮小の方向にあるのでしょうか。メインで使っている証券会社にはなんとか持ちこたえていただきたいものです。

| | コメント (0) | トラックバック (0)

平成20年分日経225mini先物取引の確定申告をe-Taxで送信しました

平成20年分の確定申告ですが、先週の内にe-Taxで送信しました。どうやら1/19から送信可能だったようですね。もう少し早くやっていればよかったです。

さて、e-Taxは去年から使い始めましたが、最初は ICカードリーダー を買ったり、いろいろなソフトやルート証明書などのセキュリティ系のセットアップなどがあってかなり面倒でした。2年目以降は楽できるのかなと思いましたが、各種ソフトのほぼすべてがバージョンアップされており、またセットアップのやり直しとなりました。初回ほどではありませんがやはり面倒です。

毎年このような調子になりそうですが、それでもe-Taxには大きなメリットがあります。先物取引の場合、その取引明細を1件ずつ(日単位ではなく新規→返済の1件ずつです)、すべて提出しなければならず、私の場合、今年は700トレードを超えていましたのでこれを紙で出力するとA4用紙200毎以上となります。これはかなり紙とインクの無駄になりますね。e-Taxではこの部分を節約できて、かつ税務署で行列しなくてよいというメリットがあります。

これらのデータは国税庁の確定申告書等作成コーナーで入力しますが、700件のデータを手入力する根気はとてもないので、先物取引明細のCSVをインプットにしてブラウザに自動入力するツールを作って対応しました(これはさすがにJavaでなくC++のWindows専用アプリですが)。ツール自体は去年の確定申告の時に作成済みで、今年の平成20年分ではお小遣い稼ぎのためシェアウェアとして公開しようかと思っていましたが、シグナルボックスエディタなどのフリーソフトで手一杯でまったく準備ができませんでした。ニーズはあると思いますので来年こそは実現したいと思います。

→ 先物明細自動入力ソフトTaxBotについて

私が使っているICカードリーダー

| | コメント (0) | トラックバック (0)

クリック証券のWebサービスが終了

クリック証券のサイトのWebサービスのページを先ほど見たところ「クリック証券Webサービスの新規ご利用受付は2009年2月2日をもって終了させていただきました。既にWebサービスをご利用のお客様につきましては、2009年2月14日にご利用を終了させていただきます。」とのことでしたので、明日からの取引は予備の証券会社に切り替えます。そしてクリック証券からは全額出金しました(出金が殺到しそうですね)。せっかく作ったのに・・はぁ。

| | コメント (0) | トラックバック (1)

クリック証券のsakimonoMeigaraJohoList.doリクエストでタイムアウト

今年に入ってからクリック証券のWebサービスを使って実取引をしていますが、本日(09/02/02)の8:40から11:00くらいまでクリック証券のsakimonoMeigaraJohoList.doに対するリクエストでタイムアウトになる事象が発生しました(ログインは通るがsakimonoMeigaraJohoList.doのリクエストでタイムアウト。何度やっても同じ。)。少し時間をずらして午後に実行してみたところレスポンスが返ってくるようになっていました。プログラムや環境を変えていないのでクリック証券のサーバー側がおかしいのかと思いクリック証券に調査依頼しましたが「再現しません、お客様のプログラムを再確認してください」との回答でした。今となってはこちらでも再現しないので困ったものです。手数料面でクリック証券は有利なのでもう少し使ってみて、もう一度同じ事象が発生したら予備の証券会社に切り替えようかと思います。

| | コメント (0) | トラックバック (0)

取引コスト(スリッページと手数料)の過小評価

日経225miniの1枚あたりの取引コスト(スリッページと手数料)を今まで往復500円でシュミレーションしていましたが、これはかなり甘い見込みだったようです。往復500円の取引コストで2008年度をバックテストした結果とリアルの取引結果にかなり乖離がありましたので、取引コストをいくらにしたらリアル損益とつり合うのか調べてみたところ、2008年度については日経225mini1枚あたり往復1200円でリアル損益とつり合いました。日経225miniの2ティック+200円といったところですね。今後はこの値でシュミレーションしていこうかと思います。

| | コメント (0) | トラックバック (1)

シグナルボックスエディタβ1.4とオープンソースの基本コンポーネントパッケージ(2009.01.13版)を公開しました

GUIでトレードロジックを構築できるフリーソフト、シグナルボックスエディタβ1.4とオープンソースの基本コンポーネントパッケージ(2009.01.13版)をメインサイトで公開しました。

| | コメント (0) | トラックバック (0)

トレードロボット基本コンポーネントパッケージ(09/01/07版)とシグナルボックスエディタβ1.3を公開しました。

フリーソフトのシグナルボックスエディタβ1.3とオープンソースの基本コンポーネントパッケージ(2009.01.07版)をメインサイトで公開しました。

| | コメント (0) | トラックバック (0)

FXロボットの研究をはじめました

今年からFXのトレードロボットの研究を始めました。メインサイトで試作品の動向をチェックできるようにしています。また、去年までは気配値取得や発注のトラブルの対応策として証券会社2社分の2台のロボットを使ってリスク分散していましたが、今年からはログイン時に証券会社のサイトのフォーマットチェックをして問題があれば別の証券会社に切り替える機能をつけましたので1台運用にしています。FX、先物どちらのロボットもメインサイトで公開しているフリーソフト「シグナルボックスエディタ」とオープンソースのトレードロボット基本コンポーネントパッケージを使って作っています。

| | コメント (0) | トラックバック (1)

気配値取得や発注のトラブル

今年も気配値取得や発注のトラブルに悩まされましたが原因は基本的に以下の2つのどれかでした。

(1)ログイン後の約諾書同意画面への遷移

先物取引の約諾書に変更があった場合、ログイン直後にその約諾書の同意画面(新約諾書へのリンクと同意ボタンがある画面)に強制的に遷移して同意を促す証券会社があります。このような場合に普段はログイン→トップメニューという遷移のところが、ログイン→約諾書同意画面→トップメニューという流れに変わってしまい、気配値取得や発注ができなくなる場合がありました。

→(考えられる対処方法)ログイン直後にメインメニューに行けない場合は予備の証券会社に切り替える。

(2)証券会社のシステムトラブル

証券会社のシステムにトラブルがあり気配値取得や発注ができなくなることが何度かありました。今年は楽天証券が目だって多かったです。

→(考えられる対処方法)今のところロボットの緊急停止しか考えられません。自動で行うにしてもポジションを持っている状態で発注不能になった場合は対処が難しいです(今年は実際にこのような状況に陥りました)。

| | コメント (0) | トラックバック (0)

«シグナルボックスエディタβ1.2を公開しました