ラベル 5. FX売買システム開発・単一市場検証時代 の投稿を表示しています。 すべての投稿を表示
ラベル 5. FX売買システム開発・単一市場検証時代 の投稿を表示しています。 すべての投稿を表示

2011/01/23

FX売買システム開発・検証(単一通貨ペア)時代 - どうすればカーブフィッティングしなくなるの?


さて、前回はディレクショナリ・ムーブメント・システムを改良し、ユーロ円の9年間でなかなかの評価結果になり、別の通貨ペアの評価をしようと思ったところまで話しました。
今回は、他の通貨ペアで評価した時の結果と、今後の取り組みについて書いてみたい
と思います。

よっしゃ~!
ついに、他の通貨ペアでチャレンジや!

そういや、それぞれの通貨ペアの特徴ってなんかあるんかなぁ。
と思って購入した書籍が、「FXトレーディング」。3,990円
なるほど、流動性が高いのは、EUR/USD、GBP/USD、USD/JPY、USD/CHFかぁ。
プログラム対応してないから、USDの替わりに、JPYでためしてみよっと。

評価スタート!

まずは、GBPJPY。

見る見る減る資金残高。

あっという間に破産。

。。。た、たまたまかな。。。
ほんじゃ、趣向を変えて、AUDJPYもやってみるか。

あっという間に破産。

。。。。た、たまたまかな。。。。
・・・・じゃぁクセのなさそうなUSDJPY。これは流石にいくやろ。

あっという間に破産。

・・・・
お!!!そういや、サイジングが10万通貨ペア単位やったな。
普通の1万通貨単位でやれば、持ち直すかもしれんな。

そして、GBPJPY→破産

そして、AUDJPY→破産

そして、USDJPY→破産


あかん!!

まったくあかんやん!!
ひどいにも程がある!!!

オレの3ヶ月返せ~!!!!
ついでに書籍代も返せ~!!!
こんな事繰り返してたらいつまでたっても終わらん!!

ゼイゼイ。。いやいや、気を取り直して。
そもそも、システムトレードってもん、もうちょっと勉強した方がええんちゃうんか?

そして、購入した書籍が
「売買システム入門 」 8,190円

そして、読書感想
--------------------------
●6つの基本原則
 1.期待収益率はプラスでなければならない
   わかっとるわい!!
   どこのどいつがマイナスを期待してるねん!
 2.ルール数は少ない方がいい。10個程度以下が妥当
   うぉ!!思ったよりも少ない!!!
   シンプル・イズ・ベストとはこのレベルか!!
   前のシステムのルール数、数え方がわからんぐらい多いぞ!
   20ぐらいあるんちゃうか??
   しかもまだサイジングロジック入れてないんやで??
 3.パラメータの数値は堅牢なものでなければならない
   これは、前購入した「アルゴリズムトレーディング入門」でわかったよ。
 4.複数枚数取引が可能であること
   だからまだしてないって。それ以前の状況なんですけど。。。
 5.リスク管理、マネーマネージメント、ポートフォリオデザインが必要
   まだ、そのレベルにいってません。
 6.完全に機械化が必要
   はい。そのつもりです。最終的にはMetaTraderで実運用するつもりです。
-----------------------------
他にも、システム開発例、資金残高曲線分析、マネーマネジメントの概念等など。

あと、t-検定についてもこの本で初めて知った。
コレは便利そうや!!修正の結果が、有意な差異かどうかが客観的にわかるぞ!
つまり、追加したルールが堅牢である可能性が高いってことやないか??

ん?紹介されてるシステム例、思っている以上にシンプルやぞ!
でも、なぜその手法を思いつけたのかがわからん。。

そういや、カーブフィッティングを摘出する方法は勉強したが、
どういう風に戦略作っていったら、カーブフィッティングしにくくなるんや?
評価の後半で堅牢じゃないのわかったらショックやぞ。

そして、購入した書籍が
「マーケットのテクニカル秘録」6090円!!

相変わらず滑らかな右肩上がりの書籍購入累積代金

おう!この本や!
今のオレが求めてるのは!

この本、仕掛けと手仕舞いを別々に評価する手法が書いてある。
(あくまでも、トレンドフォローが前提)
--------------------------
●仕掛けのテスト手法
 ベンチマークとして乱数でロングかショートを決めて売買する。
 決済はNバー後に無条件決済。
 で、そのNバーを5~20の間を5刻みで検証して、勝率で判断。
 これを複数通貨ペアで実行する。
 理屈としては、正しい判断ならば、乱数で決めた結果より勝率が
 高くなるはずということ。
 で且、Nが大きいほど勝率が高ければなお良し。 
 #5~20は筆者が検討して決めた値。なので、本来は自分で考えること。

 よっしゃ、仕掛けは複数通貨ペアで試して、乱数に勝てばええんやな!
 やったろやんかい!
 しかも、t-検定で有意な差異になればええんちゃうか?

●手仕舞いのテスト手法
 発注は、2本の移動平均線クロス。短期線は5固定、長期線は10~40
 で、10期間刻みの4回。
 ベンチマークはドテンで、損益で判断。
 筆者自信はこの手法に完全には満足していないらしいが、オレのよりどころ
 はこれしかあれへん。
--------------------------

やったー!
これだと、一つのシステムで散々苦労して撃沈することないぞ!!(←甘いよ。。)
しかも、この本、いろんな売買手法まで紹介されてる。

よし!たくさんの通貨ペアのデータ取り込んでテストするぞ!

ほんで、ディレクショナリ・ムーブメント・システムにこだわるのヤメ!!
一目均衡表にこだわるのもヤメ!!
ボリンジャーバンド常用するのもヤメ!!
ストキャスよ、お前もや!!

そして、「FXシステムトレード初心者奮闘記」の売買システム開発・検証(単一通貨ペア)時代は終わり、複数通貨ペア評価時代へと進むのでした。
#ブログ書くと、過去読んだ本を読み返す事になるので、いい復習になるなぁ。



2011/01/22

FX売買システム開発・検証(単一通貨ペア)時代 - ディレクショナリ・ムーブメント・システムの改造



さて、前回はディレクショナリ・ムーブメント・システムで撃沈した後、正しい開発手順を勉強したところまで話しました。
今回は、前々回撃沈したディレクショナリ・ムーブメント・システムを改良していくサマを書いて行きたいと思います。

よっしゃー!
もっと長い期間で評価するぞ!
まず、4年で修正・検証して、9年でOKやったらまずはええやろ!

そして「ワイルダーのテクニカル分析入門」をもう一度読むと、
・・・・
ルールが漏れていたのにきづいた。。他にも重要な記述が。。。


ワイルダーよ、すまぬ。


なので、まずはPDI/MDIがクロスしたときの高値/安値を超える、ボリバン・一目均衡の各線にATRベースのマージン付の逆指値で発注する様に修正。

あと、色々試していると、ADXRの発注フィルター、20~25が推奨だったから安全とって25にしていたが、実はそれも裏目にでていたので、21付近の値に修正。
(PDI/MDIクロスでADXRが25超過しているケースが少ない)

しかし、CSI(ADXR×ATR×固定係数)の概念を取り込もうとするが、適正な値がわからない。
しかも、適正なCSI求めたとしても、他の通貨ペアでは意味が無い値になってしまうけど、仕方ないかぁ。。
あ!ボラティリティを標準化しようとしたら、ボリンジャーバンドのバンド幅使えるかもしれんから、ATRの替わりに、バンド幅を使う手もあるか。。

ストキャスもRSIも高値圏なら発注しない!

雲の近くはやっぱあかんから、フィルター!
等など、相変わらず増えていくフィルター。。。


学習しろよ。


で、1年の結果がそれなりに満足できる内容になったところで、4年間でテスト。

そして、撃沈。

さらに修正して、4年間でテスト結果、これはOK!

じゃあ、9年間でテスト

そして、撃沈。。

手仕舞いも見直しながら評価を進める。
前述書籍にADXとADXRの関係図を眺めてて、ふと思いたち、ADXRの向きによって手仕舞いの仕方をかえてみると、意外と効果アリ。

なるほど、手仕舞い重要なんやなぁ。
で、今度は手仕舞いをアレコレと。

しかし、なかなか9年間評価で後半がよくならんぞ!!
そういや、トレーリングしてなかったから、追加。

お!これは効果あり!!

それでも良くない9年間の後半の結果。

そして、ふと思い出し(←やっとか)フィルターを削除。

9年間評価結果向上!

もう一個フィルターを削除。

さらに、9年間評価結果向上!

そして、身をもって、フィルターがカーブフィッティングになるってことを経験したのでした。

それでもこんなシステム
--------------------------------
発注:
  ●前提条件
  以下の条件を満たしている場合、AかBかCの条件で発注
  1. ADXRが21より大きい
  2. ADXがPDIかMDIより大きい
  3. ADXR×14期間ATRが6.50より大きい
  4. 14期間ATRが0.15より大きい
  5. ADXR×バンド幅×100が 9.75より大きい
  6. ADXもADXRも40より小さいか、ADXがADXRより大きい
  7. ストキャスの%Dが85より大きなく、且、RSIが69.5以上でないこと
  ●発注条件
  A.PDI/MDIがクロスし、1期間ADXか2期間ADXが上昇している事
  B.ADXが20より大きな値で上昇しており、ボリンジャーバンドの-2σが下降
    且、バンド幅が1.1倍より大きく拡大
  C.MDI<PDIで、ADXがADXRを上抜き

発注逆指値:
  Aの場合:ADXがPDIかMDIのどちらかの上の上体でPDI/MDIクロスした時の高値を
       上回っている一目均衡各線かボリバン各線にマージン(※)
  B,Cの場合:ADXによらず、PDIとMDIをクロスした時の高値を上回っている
         一目均衡各線かボリバン各線にマージン(※)
  ※マージン:7期間ATRか14期間ATRで大きい方の0.25倍のマージン

ストップロス:
  7期間ATRか14期間ATRの大きい方の1.75倍の価格幅を発注価格から引いた値

決済:
  以下の条件のいづれかを満たしたら決済
  1. MDI<PDIで、BidがMDI/PDI逆クロスした時の安値を下回ったら決済
  2. 前バーのADXが、発注後の最大ADXの0.9倍を下回っている状態か、
    注文約定後3バー以内であれば、以下の条件をみたしていれば決済
    (前々バーの高値-前バーの終値)が7期間ATRか14期間ATRの大きい方の1.75倍
  3. 発注後の最大ADXの0.9倍を下回っている状態で、以下のいづれかの条件
    ・前バーの終値が転換線からマージン(※)分下回っていた場合
     で、且ADXがADXRより小さい
    ・前バーの終値が基準線のマージン(※)分下回っていた場合
    ※マージン:7期間ATRか14期間ATRの大きい方の0.25倍

トレーリング:
  1. 以下のタイミングで発注
    ・ストキャスの%Kが%Dを上抜いた場合は以下Aの価格
    ・ストキャス%Kが%Dを下抜いたか、%Dが80をした抜きか、RSIが70を下抜き
     した場合はBの価格
    ・上記いづれでもなければ下記Cの価格
  2.トレーリング時の価格計算
    価格A:以下の価格の内、一番タイトな値
        前バー終値の%bが0.95より大きい場合は、+2σからマージンを引いた価格
        転換線が基準線を上回っていれば、転換線からマージンを引いた価格
        基準線、基準線より下であれば、その他一目均衡表の各線か-2σ~0σ
    価格B:以下の価格のうち、一番タイトな値
        転換線が基準線を上回っていれば、転換線からマージンを引いた価格
        基準線、基準線より下であれば、その他一目均衡表の各線か-2σ~0σ
    価格C:ボリバンの-1σからマージン(※)を引いた値   
その他
  取引通貨ペア:ユーロ円
  サイジング:10万通貨単位
  時間足:1H
  当初資金:1万US$
  検証期間:2001年1月~2009年12月の9年間
  DMI/RSI/ストキャスパラメータ:14期間
--------------------------------
#ソースからルールを日本語化してると、ルールの多さに疲れちゃった。。

そうは言っても試行錯誤の中で、DMIで当時思った事
1.ワイルダーはADXRを20~25を推奨しているが、25は大きすぎ。
  ADXR20よりちょい上が妥当そう。
2.ADXが40以上でのPDI/MDIのクロスは単なる一時的な調整の表れ
  の様な気がする。→これへの対応が発注時前提条件の「6.」に相当
3.低すぎるボラティリティに弱い。そこでCSIが出てくるが、
  市場ごとに適正値違うし、標準化が難しい。
4.ADXの値は結構ブレる(ノイズに弱い?)から、決済のとき、
  単なる上昇か下降かだけの判断では利益を逃してしまう。
5.セオリーどうり、PDI/MDIクロス時の高値/安値を逆指値しただけでは、
  ダマシが多いから、なんかしらのマージンが必要

そして、資金残高曲線(9年分)
※モスグリーンの線が資金残高曲線

トレード数:1031回/9年
PF:1.24
RestorationFactor:3.95
12ヶ月利益ウィンドウ率:75%

お!固定サイジングのわりに、なかなかええやん。

やった~~!!!
9年分やってこれやったらだいぶいけるんちゃうん?

そして、「FXシステムトレード初心者奮闘記」の売買システム開発・検証(単一通貨ペア)時代は、その後の顛末もしらず、意気揚々として、別の通貨ペアの評価を試みが始まるのでした。

2011/01/21

FX売買システム開発・検証(単一通貨ペア)時代 - 正しい開発手順って?



さて、前回はディレクショナリ・ムーブメント・システムを開発・評価し、またして撃沈した話まででした。今回は、開発手順のお勉強について話したいと思います。

うーん。。。
本の通りにやっても上手くいかん。

そういやトレードアイデア以前に、
正しい売買システムの開発手順ってどんなんや???
正しい手順で開発せんとあかんに決まってるやん!!

そしてまたしてもネットで探して見つけた本が
 紹介した書籍です。


8190円!!
購入書籍累積代金だけは綺麗に右肩上がり!


この本、以前にも紹介したとおり、カーブフィッティング(売買ルールを過去データに過剰にフィットしてしまっている状態)を防止することが最大テーマのひとつ。
そして、ウォークフォワード分析を強く推奨。

以下、本書概略の自分の解釈
------------------------
1.戦略の策定と、その構成要素
  o 仕掛けと手仕舞い
   「フィルターの数が増えれば、オーバーフィッティングになりやすい」
    お!!まさに最初のシステムの修正版やん。。。
  o リスク管理
    トレードリスク、戦略リスク、ポートフォリオリスク、利益管理と幅広いんや。。
    ん??そういや利益管理(含み益を保護するマネージメント)って観点今までなかったぞ!
    やり方としては、トレーリングと決済指値。
    これからは、トレーリング追加や!!
  o ポジションサイジング
    これが一番大切とな。でもこの観点だけでも一冊の本がある。。
    うーん。まだ堅牢なシステムを作れていない以上、まだ早いかなぁ。。
    ※執筆時点では、この重要性がだんだん身をもってわかってきました
     方式次第で、PFが1未満から1以上に変わったりしよった。
     しかも、ポートフォリオ組もうと思ったら無いのが考えられん

2.戦略の具体化と予備検証
  具体化とは、自動売買を目指す場合、要は売買ルールをプログラムできるレベルまで
  詳細化して、プログラムを書くこと。
  予備検証はさらに細分化されいる。
  ・機能確認
   要は意図したとおりに戦略が実現されているかどうか。
   つまり、プログラムミスが無いかどうか。
   → コレ結構大切!! プログラムミスで何回再評価したことか。。
  ・収益性の確認
   → ざっくりと収益性を確認。売買頻度とかドローダウン時期が
     戦略に不利な状況なのか、有利な状況なのか確認。
  ・多市場多期間検証
   前の記事で書いた内容。FXで言うと、複数通貨ペアと複数ウィンドウ(※)
   で検証する。ここで(意図していない限り)特定通貨ペアだけすごくいいとか、
   特定ウィンドウだけすごくいいだとアウト!!
   ※ウィンドウ:全評価期間を複数に分割した内の1つの期間。

   ちなみに本記事の執筆時点で、私はここを行ったりきたり。

3.多市場多期間最適化
  ここはピークパフォーマンスになるパラメータのセットを見つける事ではありません!!
  パラメータを変化させてもパフォーマンスを一定水準でキープできるかを見て、
  戦略そのものの堅牢性を確認するところです!!

  PC性能が不安。。。

4.ウォークフォワード分析
  目的はこれもパフォーマンスが本物かどうかを見極めること。
  最適化を行った期間のアウト・オブ・サンプル(つまり処女データ)で評価する。
  これを最適化期間毎に繰り返して評価。
  この著者の特徴とも言える箇所。

  PC性能が不安。。。

5.パフォーマンスの評価
  要はこれまでの工程で堅牢であることがわかったあと、客観的にパフォーマンスを振り返る
  こと。
  ・利益性に意味があるか?
   いくら堅牢でも、例えば定期預金と比べて、利益率が低ければ意味ないでしょ?
   ってこと。
  ・最大ドローダウン、口座の必要資金、リスク調整済みリターン
   リワード・リスク比率、安定性等について評価
---------------------------------

他にも、評価方法として、完全利益とか、悲観的年率とかいろいろ。
私が感じたこの構築手法がいいのは、本番に入った時、過去の評価結果から
いろいろ判断できる材料が揃うこと。

という事で読書後の続き。

そうか!!
いろんな市場や、いろんな期間で評価せんとあかんねや!!

でも、まずはユーロ円でいろんな期間評価することにしよ!

所詮「初心者に勘なし」
試行錯誤多いはずやし。
#この格言、完全にトラウマ。。ふん!

そして、「FXシステムトレード初心者奮闘記」の売買システム開発・検証(単一通貨ペア)時代は、今度こそシステムの改良と評価に進むのでした。


2011/01/20

FX売買システム開発・検証(単一通貨ペア)時代 - ディレクショナリ・ムーブメント・システム



前回は、ボラティリティ・ブレイクアウトをベースにしたシステムにフィルタを追加しまくって、トレード回数が激減してしまった所まで話しました。
今回は、新たなシステム作りを始める話をします。

。。。。。
おかしい!!
1H足でトレードしてて、トレード回数が25回/年はあまりにも不自然やろ!!

ん?そういや、一目均衡表とボリンジャーバンドしか、ちゃんとしたこと知らんなぁ。
だいたい基本的に、ボリンジャーバンドは単体で使うもんとちゃうやん。

もうちょっと知識の幅広げた方がええんちゃうんか?

そういや、一回ADXとかDMIとかATRとか使ってみたが、そっちはどやねん?
だれが作った指標や? やっぱ作った人の本を購入して本来の使い方を知ったら、いろいろ幅広がるんちゃんか?

ネットでしらべて、っと。
ほう、ワイルダーっちゅーおっさんか。
そういや有名な人ちゃうかったっけ?

そしてネットでワイルダーの本を検索して見つけた本が

はい??
い~ちま~んえん???
大阪の立ち食いうんどん屋のおばちゃんとちゃうんやで!
100円の間違いちゃうんかい?
もう書籍代だけで、今までの裁量トレードの損失上回ってるんやけど。。。

いやいや、今後成功させる為には書籍代は惜しまれへん!
ヨメよ。すまぬ。周りに聞ける人おらんし。

そして購入。

お! ADXもDMIもATRもRSIも他にもいろいろ載ってる!
しかも、ワイルダーはシステムトレーダーちゅー話やん。

ん?今まで知ってたDMIの使い方と全然ちやうやん!
しかも、ADXRとかCSIとかいう便利そうな指標もあるやん。

しかもこの本によると、ADXRでトレンドの有無がわかるって書いてある!
しかも、CSIで、トレードに有利な相場状況がわかる!
こんだけわかったら無敵やん!!
しかも、なんなのかイマイチわかってなかったATRもわかったぞ!

そして、書籍のルールをアレンジして作ったDMIベースのトレンドフォローシステム
●売買ルール
---------------------------------
1.発注
   以下の条件を満たした場合に発注
   ADXRが25より大きく、ADXがPDIかMDIのどちらかが上回っている。
   PDIがMDIを上抜き。(ショートポジションは逆)
2.発注逆指値
  ボリンジャーバンドの+2σ、+1σ、0σ、-1σ、-2σ
  一目均衡表の各線、のうち現在価格に一番近い価格に、7期間ATRの20%の
  マージンをとった価格。
3.ストップロス
  発注価格から7期間ATR×1.5か60pipsの小さい方を引いた値。
  (ショートポジションは逆)
4.決済
  ADXがPDIとMDIよりも上で、ADXが低下した時。
5.その他
  取引通貨ペア:ユーロ円
  サイジング:10万通貨単位
  時間足:1H
  当初資金:1万US$
  検証期間:2001年1月~12月の1年間
  DMIパラメータ:14期間
---------------------------------  

そしてできた1年間の資金残高曲線がこれ
※モスグリーンの線が資金残高曲線


こら~!ワイルダー!!

全然あかんやないかい!!
いちまんえんもしたんやぞー!!!

と、八つ当たりしても仕方が無いか。。。

でもこの本、読めば読むほど深い。
ちゃんと指標の背景/思想が書いてあって、納得感がある。
もうちょっと背景を知れば、応用して本質的な改良できるんちゃうか?

そして、「FXシステムトレード初心者奮闘記」の売買システム開発・検証(単一通貨ペア)時代は、このシステムの改悪改善に進むのでした。
※「ワイルダーのテクニカル分析入門」とってもいい本です。
 背景が書いてあるので、ワイルダーのアイデアをヒントにアイデアを考える事もできます。
 オススメします。