最近のシステム構築について

このBlogでのシステム構築関係の更新はできておりませんが、
システムの構築自体は継続して作成しております。
ここのところの大きな動きについて書いてみます。
まず、以前に作成していたシミュレーションシステムを利用して、
膨大な指標を長期にわたりシミュレーションしてわかったことがあります。
ある一定の時期に有効な手法は、これから有効とはかぎらない、ということです。
これはシステムトレードを構築していく上では当たり前のことであり、
いまさら・・という感じもありますが、長期のテストをすれば有効なものができると
思っていました。
当初2ヶ月のシミュレーションで、ある程度有効なものを抽出し、
その後、1年以上のシミュレーションで厳選した指標を使います。
実運用を1ヶ月間すると、それまでの1年2ヶ月に出てこなかった傾向が出てきてしまいます。
また、手法を複雑にすれば複雑にするほど、この傾向は顕著にでてきます。
いわゆるカーブフィッティングといわれるもので、
既知の問題ではあるのですが、自分で体験してみないとわからないですね。
あと、シミュレーションのシステムと、実取引のシステムはロジックは一致するようにしているのですが、
実際の運用を始めると微妙にずれが生じます。
システムの組み方がわるいのですが、これは別プログラムにするかぎり、
必ず出てくる問題だとおもいます。
それらを踏まえて、先日から運用しているシミュレーションシステムは、
シミュレーションに無駄がでても、実取引システムと同じロジックを通過させるように作りなおしました。
現在、そのシステムを利用して、以前のシミュレーションで、まったくダメと思われる指標を除いて、
シミュレーションを再開しています。
以前と違って、いきなり多くのシミュレーションをするのではなく、ある程度目星をつけた指標の
シミュレーションをし、そこで得られたデータをOpenOfficeのCalcで手作業で分析するようにしています。
シミュレーションの結果はMySQLで管理しているのですが、OpenOfficeであればMySQLからクエリで必要な情報を
簡単に作り出すことができます。
現在、通貨ペアをある程度限定してロジックを調整していますが、USD_JPYやEUR_USDなどで、
ある程度実運用に適いそうなロジックができつつあります。
できれば、この7月からは実取引に移行したいと思います。

シミュレーション結果の誤差

昨日つぶしたバグを修正し、長期間の再テストをしたところ、
また別のところで、シミュレーションと実取引システムで差を発見。
今回は30日に1回程度の頻度で誤差がでる・・・。
やはり、長期間のシミュレーションだと大きな差に成る可能性があるので、
きっちりと修正していきたい。
週明けから実取引しようとおもっていたが、間に合いそうもない・・
いつまでかかることやら・・・。(–;

シミュレーションやりなおしか・・

どうも、シミュレーションでの標準偏差の計算で、
特殊な場合に計算誤りをしてそう・・
特殊な場合が、どの程度の頻度ででるのか不明であるが、
標本数が相当の数なのでやりなおす必要がありそう。
一月くらいかかった処理を一からやり直しとは・・・トホホ
ただ、厳密な計算結果ではないが、大まかには間違っていないはずので、
とりあえずは、今の結果を使いながら検討していく。

トレードシステムのデバック

タイトルは、Macが株取引であるが、最近は技術的なことが多くなって、
なかなか株取引までたどり着かない。
しかも、現在は株でなくてFXだし・・・悲しい
で、またしても技術的な話になる。
ここ数日は、実取引に向けて、シミュレーションの結果の検証と、
併せて、取引システムでシミュレーションと同じ結果が出るかの検証を
続けている。
ここで差が出たまま運用しても、たまたまカーブフィッティングな
指標で取引をしてしまい、実際に利益に結びつけるのはできない。
当然、当初は完全に一致したシステムであったが、
多くの指標を追加し、ロジックを改良し、パラメータを増やしていくと、
どうしても、完全な一致が維持できなくなる。
ロジックベースでの検証はすでに目ではできないレベルのソース量になっており、
結局、計算結果の不突合を見つけて、検証していくことになる。
これが膨大な量で、ExcelとAccessとOpenOfficeをつかいつつ検証している。
膨大な時間がかかっているということは、突合できてないところがでてきているためで、
この作業に今週いっぱいくらいかかってしまいそう。(;;)

現在のFXシステムの状況

現在のFXシステムの開発状況です。
シミュレーションと取引用のシステムは、
相当前に運用を開始しており、現在は最適な指標のシミュレーションを
探している状況から、あまり変わっていない。
徐々にではあるが、損の出にくいシステムになりつつある。
投書は普通に移動平均乖離率やボリンジャーバンドの数値などをいじりつつ、
最適な指標を目指したが、見つけたように見えても、長期の運用シミュレーションを
くりかえすとどうしてもパフォーマンスがわるくなる。
ドローダウンも大きいときがあり、複利で運用しても結局は大きく原資が増えることはない。
そこで最近は数値だけでなく、組み合わせや独自のロジックを組み込みながら、
最適なシステムを構築すべく作業をしている。
最近わかってきたのは、標準偏差を利用したボリンジャーバンドを、
組み合わせて行くと、パフォーマンスの高いロジックができることだ。
ただ、本やネットにあるロジックを組み込んでも、長期のシミュレーションには
耐えられず、また、通貨ペアごとに特性があるので、万能なロジックは難しい。
また、具体的にロジックができれば、実運用をし、公開したい。
おとなしく株ロジックをすすめておいた方がよかったかもしれないが、
自分が居ないときに取引をするので、実運用の時には開発速度に差が付くと思うし、
とりあえずFXを成し遂げたい。
今、作成しているロジックは、FXだけでなく、株式、先物などにも使えるので、
FXの実運用をはじめて様子をみている間にでも作っていきたい。

FXシミュレーションの行方

相当の期間FXシミュレーションに明け暮れている。
うちはシミュレーション用のシステムと、リアル注文用のシステムを分けている。
最初にシミュレーション用のシステムで、一定期間での最適解を見つける。
(だいたい2,3ヶ月)
そこで見つけられた指標を、1年くらいのデータでリアル注文用システムの
テストモードでシミュレーションをする。
2,3ヶ月で良好な指標も、1年以上継続的に利益を出し続けるのは難しい。
最近、このパターンでは、ほんとに見つかるか不安になってきたので、
アプローチを変えて、最適な指標やロジックを見つけたいと思っている。
今、考えているのは、想定したロジックでシミュレーションを繰り返すのではなく、
実際に最適な売買のタイミングをこちらで指し示し、その結果になる指標を、
試行錯誤で自動的に算出するというものである。
最初は30ペアの1年分のデータにマークを付けていくのが無理と思ったが、
ある程度は自動化で、最適なポジションを示せると思うので、
その辺を考えていきたいと思います。
以前、なにかの本で、皆のやっているロジックは、長期では勝てないと書かれていたが、
実際にさまざまなシミュレーションをしてみて、つくづくそのとおりと感じた。

新しい指標の実力

1週間まえに新しい指標として、ボリンジャーバンドを追加して作業を行っている。
ボリンジャーバンド自体は結構ポピュラーな指標であるが、
今まで使って来なかったのは、
・ 最初の指標の組み合わせを変えて試行錯誤に時間がかかっていた。
・ 決済システムを作ってシミュレーションするのに時間がかかった。
と、いう理由であったが、
正直、もっと早くはじめとけば・・という状況です。
株の時には真っ先に導入したのですが、
あんまりパフォーマンスがよくなかったので、
最初の指標にいれてなかったんですが、
FXのデイトレでは結構良い感じでシグナルがでてくれてそうです。
一日で4,5回くらいは取引をするので、
チューニング次第では結構なパフォーマンスがでるかもしれません。
現在は、各通貨ペアごとの最適な期間や倍率を計算しているが、
前にも書いたファンダメンタルな部分も導入すると、
だいぶ精度が上がるように思う。
まだ、シミュレーションシステムの段階なので、
近日中に取引システムに移植して、仮想取引モードでも検証してみます。
とりあえず半年の利回りやドローダウンを検証して、
うまく行けば実取引にいきたいです。

新しい指標の追加

久しぶりの生書き込みです(^^;
なんせ毎日は鯖書き(サーバからの書き込み)で、
毎晩、それを微調整するだけですので・・。
生書き込みしていない毎日はなにもしなかったわけではなく、
日々、プログラムのチューニングと、シミュレーションを繰り返しております。
では、なぜ書き込みできなかったか・・
それは、毎日の作業があまりにも単調な作業の繰り返しで、
書き込み事がなかったからです(^^;
そんな、単調な毎日の作業とは・・
1 週末に新たな手法をプログラム
  例えば、利益確定を単純な基準額ではなく、基準額を超えると利益確定額と、
 損きり額を随時見直しながら、利益を追求しつつ、急落時には対応できるようにする。
2 シミュレーション用サーバの準備と実行
  日曜日の夜に、シミュレーションの種を植えたプログラムを用意し、
 シミュレーション用のサーバを準備し、稼働させる。
3 平日は計算の経過を観察
  平日は帰りが遅くなり新たにシステムを作ることもできないので、
 計算の経過を観察しながら、当初想定の計算をしているか見る。
  サーバの負荷のバランスが悪ければ、バランスを調整する。
などの作業をしています。
この2ヶ月くらいでわかったきたことは、
FXのシステムトレードは、
・ 過去一定期間(3ヶ月とか)で成績の良好なシステムやロジックは、
 過去の長期のテストでは成績ががた落ちし、赤転する場合もある。
・ 長期のテストの結果を基に、実時間トレードすると、なぜか成績が思い通りに
 ならない。
と、いうことです。
これは、いろんな指標やロジックを、あらゆる組み合わせで行っても、
思い通りのシステムにはなりません。
先日、成績を月別に並べてみました。
すると、同じ指標でも勝つ月と負ける月に明確にわかれます。
しかも一定の周期で勝ち負けがでてきていました。
これは、従来行ってきた、短期的なテクニカルだけでなく、
ファンダメンタルな部分も加味して、適切なテクニカル指標を選択していかなくては
いけないということだと認識しました。
ですのでパラメータとして、ファンダメンタルな部分を数値化して、
各通貨ペアごとに与えてやれば、ある程度思い通りのシステムになるのでは
ないかと考えます。
ただ、私はあくまで、人の手は全く触れずに、サーバのみで取引できることが
目的なので、この、パラメータ自信を、長期のテクニカル指標から、
もってくることができれば良いのではないかと思っています。
今日は、いつものように、あらたな指標を追加して、シミュレーションを1週間
させるつもりでいますが、今後は、ファンダメンタルな部分を数値して、
パラメータとして与えれるようにしたいです。ジョギング

取引指標の見直し

ひたすらにシミュレーションの毎日である。
従来おこなったシミュレーション結果の見直しや、
毎日取得しているデータの分析などをしているのであるが、
どうしても、短期的に良い指標があっても、
長期になるとドローダウンで引っかかったり、
複利で運用すると、成績に凸凹ができていて、うまく増えなかったり・・
そんなこんなで選択できる指標の追加を考えている。
やみくもに指標をふやしても、成績が上がるとは思わないが、
行き詰まり感があるので、新しいロジックを組むのも気晴らしになるかと思い、
昨日から作業をしている。
RSIをブレーク法に変えてみたり、複数の指標を組み合わせたりするものを
想定して作業をしているが、従来の単純な判定で対応できないところがあり、
難航している。
とりあえず、今晩中には作業を終了し、シミュレーションに入りたい。

FX 4ヶ月分実データシミュレーション終了

昨日、やっとの思いで、4月分のシミュレーションを終了した。
これで、やっと4ヶ月分のデータがあつまり、最適な指標の算出ができる。
今回も時間の関係で、アクセスを使う(^^;
(仕事で使っているので、さくさくっと作るのには楽です(^^;)
取引データを集約して、レート換算後の平均利益金額の高いものや、
勝率の高いものを選別する。
全体にはシミュレーションを繰り返すほどに、平均利益額が落ちて、
利益の上がっているものは減っている感じである。
ただ、前回の3ヶ月分のデータから作った、指標関係が未だに上位にきており、
ある程度の法則性も見えてくる。
今までは5指標で、実時間でのシミュレーション作業をしているが、
その中でも優秀な二つの指標を使って、実取引の処理を開始したいと思う。
最終はこの辺のシミュレーションのデータを常に計算し続けて、
定期的に自動で選択する指標も更新してくれると、
ほんとになにもしなくても良いんだけどね(^^;