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

0 件のコメント:

コメントを投稿