2009年02月17日

うっかりしてたら・・・

ブログランキングでとうとう50位以内に入ってしまいました。

まだこれといって成果出してないのにいいんですかね?

まさかこんなにちょろ(ry

ひょっとしてこのカテゴリって過疎(ry

みなさんの応援のおかげです。

ありがとうございました。




でもこのへんでいいです。気楽なので。w
posted by (;D)笑男 ◆LeBIz0ZWfs at 15:55| Comment(0) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

レンジとトレンド

最近考えてるのは、レンジとトレンドの相関です。
トレンドの強さを表すADXやボラティリティを表すATRを応用するアイデアはあるんですが、もっと根本のことを考える必要があると思うんです。

10Pips抜きたい!って考える人に都合のいいレンジと、50Pipsを目標としたい人が乗りたいトレンドって、それぞれどう定義したらいいでしょうか?

というわけで、以前Winnerというインジケータを作ってみました。

目標Pipsを設定すると、過去に遡ってどのポジションが現在の足で目標を達成したかを逆検索するインジケータです。

目標を20Pipsに設定して1分足で見ると、相場がおとなしいときは200とか数字が出るんですよ。
つまり200分前にポジっててやっと20Pipsゲットできているということです。50pips目標だと1000分とか。
また、この増減はダイナミックに変化し、また変化の度合いは一定しないので予測ができません。

目標を10・20・30と増やしていくと、時間が指数関数的に増えていく感じです。目標を2倍にしたら時間は1.7の2乗かかる・・・・とか。時間に対する値幅はベキ乗分布に従うわけです。
そして、一回で狙うPips数の目標が多いほどエントリーチャンスが少ないはずです。そんなイメージです。

Exitタイミングもインジケータに頼るシステムは、こういう時も自動的にExitしてしまうので、結果として取れるPips数が増減するわけですが、そのシステムはあるレンジのトレンドが終わったと認識しているわけです。

別の言い方をすれば、そのシステムは、ある定義された範囲内に統計的に一番多く現れるレンジトレンドに対してエントリーしていることになります。が、発想を変えると、トレンドは目標とするPips数によって定義される範囲がいつも変化しているわけです。

レンジブレイクが成功を収めやすいのは、レンジの壊れた瞬間に狙いを定めているから、ということになりますね。
しかし、いままでのレンジブレイクはやはり先に範囲を決めてそこにレンジが収まってる間はエントリーしないことになってます。
先にレンジを設定してしまっている点で、先のシステムと同じです。

以前にレンジブレイクのレンジをつぎつぎとバトンタッチしていくシステムを構想したことがあったんですが、うまく継承していくことができないケースが多くて無理をすると損失を出してしまうわけですね。

下層レンジのあげた利益が上層レンジのLCに丸々含まれてしまう場合、下層レンジのエントリーポイントはなんだったのかって話です。

しかし、レンジの考え方を柔軟にすれば、場合によって継承され、場合によって決済する判断がよりスムースになると思うんですが・・・

どうですかね?w
posted by (;D)笑男 ◆LeBIz0ZWfs at 15:21| Comment(0) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2009年02月15日

MSSGA改善会議

さて、急ピッチで進むMSSGAのバックテストですが、現時点でこれはいいーっ!って結果が出てきていません。
一時的にうまくいっても、必ず賞味期限が切れて、そしてその後にいつまでも変わりの手法が現れてこない結果がほとんどなんです。
焼きなましを繰り返してもダメだと最適化問題のそとにはみ出してることが考えられます。

さて、そこでさらに改善をしていく必要があるんですが、ざっと考えてエントリー・イグジットを別々に扱う、さらにTP・LCも別々に扱うということが考えられます。
また、売りと買いを別々に扱う、というのも考えられますね。

しかしそれよりも、ある程度勝つ確証のあるストラテジを盛り込むってのがあると思います。

EAの作者って2種類あると思うのですが、有名なテクニカル手法やインジケータを使って統計的な手法でコツコツとエッジを探していくタイプと、独創的なインジケータを作るのが好きでその検証のためにEAに組み込んでるタイプ。

わたし後者なんですよ。

自分でもワケのわかんないレアインジケータやオリジナルインジケータを数え切れないほど作ってます。
・チョピネス
・フラクタル
・Winner
・VC
検証をしないでいきなり作っちゃうんですよね。
だから検証に基づいたエッジの探し方のスキルがぜんぜん足りないんですよ。
GAに組み込んであるMA、RSI、レンジブレイク、ボリンジャーなどでも、上手にフィルタリングしたりして右肩上がりなEAは作れるハズだと思うんです。それなのにGAに行き着いたのはカーブフィッティングから逃れたいってのが大きいんですが、フォワードテストできちんと結果を出してるほかのEAって統計的な手法を上手に使ってると思うんですよね。

そもそもGAで使ってるテクニカルのパラメータもそれぞれ10箇くらいしか用意してませんから、抜け穴だらけなんじゃないでしょうか・・・

どのくらいの間隔で使えばいいかのチューニングセンスがあればもう少しまともな形になっていくんじゃないかなーって思います。

今日もぼーっと考えてたらまた独創的なインジケータのアイデアが出てきてしまって・・・あかんwあかんぞwww
posted by (;D)笑男 ◆LeBIz0ZWfs at 16:43| Comment(0) | TrackBack(1) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2009年02月01日

MSSGA2だったりして

MSSGAを改造してみました。

改造点は、長時間レンジテクニカルのパラメータの大幅な見直しですね。
小さな改良を続けたMSSGAをドル円、ポンドルで走らせてみた結果、まったく売買しなくなってしまったのが発端です。

これは一瞬だけトップに出てきてすぐに沈んでいくライフの注文フラグをランキングが下がった時点で消してしまうことによって、ユーロドルでのスキャルピングの精度を上げた反動です。

次々とランキングが入れ替わるドル円やポンドで売買が停止してしまったわけですが、結局のところ、ランキングが下がったライフのシグナルは雑音になることが多く、破産はしなくてもたいして儲けも出ていなかったわけです。

ドル円やポンドドルなどユーロドルより値動きが激しい通貨は長時間レンジのテクニカルのシグナルが必要とされるのですが、MSSGAは30分足から日足までのレンジをかなりおおざっぱに扱っていました。
そのせいで最適解を見つけられずにつぎつぎと子孫が入れ替わるだけの短命微生物のスープになりはててしまっていたわけです。

というわけで、長時間レンジのシグナルを増やすとともに演算でかかる負荷を減らすために同じ計算を繰り返さない工夫をちょっとだけ付け加えました。
結果は、とりあえずランキングに長時間居座るライフが増えてきてデモ売買がはじまりました。
そして、ちょっと動作が速くなりました。

各時間足ごとにチャートが更新されるタイミングを切り分けていけば60分足の指標は60分に一回とか計算すればいいわけで、もっともっと高速化できると思います。
高速化ができれば指標を増やす余地もいっぱいあるわけですね。
ざっと計算してもいまの60倍は楽勝で速くなるでしょう。

指標が増えれば増えるほどライフの進化には時間がかかるようになるでしょうが、より高度な進化も期待できる・・・・のでしょうかね?
いずれにしても計算時間を早くすれば、ライフを進化させるテストもいくらでもできるようになるのですから、急務です。

しかしまぁ、売買結果をまったく意図せずライフの環境を変化させていくだけで結果がよくなってくるんですからなんか不思議というか、おもしろいです。

ちなみに、とりあえず日本ブログ村のランキングに参加してみましたので応援いただけるとうれしいですね。

ブログランキングのトップで情報商材やアフィリを売るのが(まだ)目的ではないので、本文中には応援強要リンクは入れませんが、右のバナーを押していただけると嬉しいです。

まぁ、明日の朝にはトップ50にはいりますよね?
posted by (;D)笑男 ◆LeBIz0ZWfs at 20:44| Comment(4) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年07月12日

さらにその後のMSST2

さて、お約束のようにあのブログの直後にドローダウンがはじまりまして。


前回と同じかよ!!


めったに更新しないブログでネタの重複じゃ飽きられるよ!!


と心配したところ(心配の方向が若干違いますが)なんとか一日がかりで回復してきてくれました。

TesterGraph080712b.gif


ちょうど地合いが転換して2001年まで売りで儲けてたのが、それ以降買いオンリーに変化してきています。
シフトチェンジにコストがかかってしまったようですが、これには対処法を考えてありますので、今回のテストが終了したらさっそく改良して比較してみましょう。

さて、構想中のロジックなんですが、例えば、雪崩なら局所で発生してだんだん広がっていくのですが、為替はいきなり山全体が動きながら局所で崖を小石が駆け上ります。

ハイレバだとこの小石にあたって結構死にます。

別の見方をすれば、事象に切り分けてもタイムフレームによって見え方が違っちゃうわけです。
5分足のレンジブレイクが15分足の逆張りサインだったり・・・・

そんで、まーいろんな事象の解釈をすべて用意してあとはただ「儲かってる解釈に盲目的に従う」のみ・・・
もちろん、結果に再現性がないとまったく駄目なんですが、意外にいっぱい出てくるんです。再現性が。

なんだか楽しくなってきました。
posted by (;D)笑男 ◆LeBIz0ZWfs at 23:58| Comment(7) | TrackBack(7) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年07月11日

その後のMSST2

ご無沙汰してます。
もうね。バックテストに時間がかかる、かかる。
しかも、テスト中に閃いたりしてしまうので、コードを書き換えてテストを最初からとか、たんまりやってます。

で、現在ですが、最新のMSSTとMSST2はかなり違う進化を遂げまして、年率1800%のMSST2は一旦MSSTに逆戻りして現在もテスト中です。こいつは、ポジションサイズ、ロット(%)、ロット数、目標利益、ロスカット、評価関数設定値A、評価関数設定値B、の7つのパラメータを残してまして、その組み合わせでもっとも安全な組み合わせを探しているところです。が、組み合わせが多い上に、そもそも2400程度の内臓パラメータを毎回比較しているせいで、結果がまったく出てきません。壊れたかと思うくらい無言です。
かれこれ2週間以上動かせてますけどね。まだ全体の1%も計算が終わりません。(笑)

で、MSST2では目標利益とロスカットを取り除いて新たなロジックで作成してみました。
その甲斐あって、開始早々に一応なんとかなるだろう程度の設定値が見つかったのでそれをまったく違う時期に適用してバックテストを動かせて見ました。
本来はこんなことやるとCPUの計算負荷が更に増えて上記のテストが更に遅くなるのですが、だんまりMT4を毎日眺めていてもヒマでヒマで・・・・(それにあまりにブログ更新しないから死んだと噂されてるようですしww)

そんなわけでそのバックテスト(予定8年)のうち最初の1年4ヶ月がこんな感じです。

TesterGraph080711.gif

ロジックに関してはロットのサイズとロット数だけがパラメータで、あとはロジックを評価する関数のパラメータだけでこんなふうにプラス曲線が出てきてくれました。
カーブフィッティングの余地はないと考えていいのではと思います。
年利でおよそ300%強くらいですね。縞馬さんにまた怒られそうですが、最初に見つかったパラメータなのでこんなもんでしょう。

もっとも、それ以降やはりダンマリですが・・・wwww
最適化が終わるのはいつでしょうねぇ・・・

さすがに2週間もノートパソコンを起動しっぱなしにしているといろいろおかしくなってきますね。もはやトラックポイントは初期値にもどってしまって使いづらいし、再起動したいです。
いつフリーズしてもおかしくないので、フォワードテスト用のアメリカのサーバーでも並行して同じテストをやってます。
ただ、こちらの方が2週間先をいってるので、フリーズするまでとりあえず動かして置くことにしました。
posted by (;D)笑男 ◆LeBIz0ZWfs at 00:14| Comment(6) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年06月13日

その名もMSST2

衝撃のドローダウンから一夜、このドローダウンには根本的な対策が可能かどうか考えてたときにまたひらめきました。

要するにバリエーションの問題なんです。

MSSTは売買のルールのパラメータをおよそ500持っています。そして、そのパラメータすべてで売買履歴をつけて、調子のいいパラメータに従います。しかしそれでもドローダウンが発生した。この時点でもパラメータの入れ替えは行われたはずですが、結果として効果がなかったわけです。
そこで、まず入れ替えても効果がないようなわずかな違いのパラメータを大幅に削りました。全体をおよそ、1/3にしました。
それから、目標利益と損切り設定を排除しました。これを固定パラメータとすると、逃げ場がなくなるからです。昨夜話した150Pipsのストップロスですが、なにもそこまで我慢しなくていいと気がついたわけです。
そこで、パラメータのバリエーションに撤退ルールを加えることでパラメータのバリエーションを2500にまで増やしました。

バックテストだと3日のシミュレーションに1時間かかります。爆
とりあえず、最初の1ヶ月で月利100%越えてます。爆
気がついたら縞馬さんの厳命月利300%も目前まできています。
なんか余計に過激になってしまったみたいです。

3年分のバックテストにどれだけ時間がかかるのか・・・・

しかし、実際の相場では時間はたっぷりあるので大丈夫です。
posted by (;D)笑男 ◆LeBIz0ZWfs at 21:20| Comment(3) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年06月11日

その名もMSST

お待たせしました!
MSSの新バージョンのテスト結果がでましたので発表します。

StrategyTesterMSST18.gif


























通貨ペアEURUSD (Euro vs US Dollar)
期間1分足(M1) 2006.10.02 00:00 - 2008.03.07 22:59 (2006.10.01 - 2008.03.08)
モデルEvery tick (the most precise method based on all available least timeframes)
パラメーターMagicNumBase=80425; PFPeriod=80; MaxPos=4; Filter=0.03; TakeProfitPips=50; StopLossPips=150; TMRLotspoint=0.1;
Bars in test449458Ticks modelled2121862Modelling quality25.00%
Mismatched charts errors0
Initial deposit10000.00
Total net profit188935.70Gross profit298514.30Gross loss-109578.60
Profit factor2.72Expected payoff1015.78
Absolute drawdown3893.70Maximal drawdown37341.95 (63.61%)Relative drawdown63.61% (37341.95)
Total trades186Short positions (won %)0 (0.00%)Long positions (won %)186 (87.10%)
Profit trades (% of total)162 (87.10%)Loss trades (% of total)24 (12.90%)
Largestprofit trade9120.00loss trade-9033.00
Averageprofit trade1842.68loss trade-4565.77
Maximumconsecutive wins (profit in money)35 (156655.95)consecutive losses (loss in money)3 (-23269.40)
Maximalconsecutive profit (count of wins)156655.95 (35)consecutive loss (count of losses)-23269.40 (3)
Averageconsecutive wins12consecutive losses2


いかがでしょうか?
2006.10.01 - 2008.03.08のEURvsUSDです。
一年と半年で利回り1800%!!
縞馬さんの厳命月間300%には遠く及びませんが、なかなかのパフォーマンスではないでしょうか。

しかし、たまたま今年の3月までしかテストしてなかったのは悔やまれますね。そこで、再度テストして今月の頭までテスト期間を延長してみました。

それがこれです!


StrategyTesterMSST182.gif



























通貨ペアEURUSD (Euro vs US Dollar)
期間1分足(M1) 2006.10.02 00:00 - 2008.06.03 12:17 (2006.10.01 - 2008.06.11)
モデルEvery tick (the most precise method based on all available least timeframes)
パラメーターMagicNumBase=80425; PFPeriod=80; MaxPos=4; Filter=0.03; TakeProfitPips=50; StopLossPips=150; TMRLotspoint=0.1;
Bars in test527990Ticks modelled2743212Modelling quality25.00%
Mismatched charts errors0
Initial deposit10000.00
Total net profit195282.45Gross profit916231.80Gross loss-720949.35
Profit factor1.27Expected payoff756.91
Absolute drawdown3893.70Maximal drawdown412084.50 (83.05%)Relative drawdown83.05% (412084.50)
Total trades258Short positions (won %)0 (0.00%)Long positions (won %)258 (85.66%)
Profit trades (% of total)221 (85.66%)Loss trades (% of total)37 (14.34%)
Largestprofit trade21600.00loss trade-73887.90
Averageprofit trade4145.85loss trade-19485.12
Maximumconsecutive wins (profit in money)40 (208084.30)consecutive losses (loss in money)5 (-269731.20)
Maximalconsecutive profit (count of wins)313483.15 (23)consecutive loss (count of losses)-269731.20 (5)
Averageconsecutive wins12consecutive losses2


ちょwwwww

おいwwwww

見事なカーブフィッティングでした。

本当にありがとうございました。

最後のドローダウンはほんとにひどいですね。
約80%の種を飛ばしてしまいました。
このストラテジは調子がよくなると最大で4つのポジを同時に持ち、それぞれが種の10%を証拠金として100倍で運用します。そしてストップロスは150Pipsに設定してありますから、1つのポジが15%のロスを発生させます。それが4つですから60%。連続で食らったのでたいへんなことになりました。

が、それでも後半盛り返して1800%は死守してますね。なんせ瞬間最大4500%です。
確かにドローダウンは怖いですが、利回りがこれだけいいと元金なんてあんまり関係なくなってきますからね。
PFを維持してくれるならこれもありではないでしょうか。
たぶん100万円もあれば2年で1億いくわけですから。
それ以後は100回破産しても元金はあるわけです。

というわけで、いよいよこのストラテジはアメリカに輸出してアメリカサーバで稼動テストへと移行したいと思います。
せっかくでかいドローダウンしたところですから、さっさと本稼動させてみたいですね。

時間に余裕ができたらこのストラテジのポジションサイズを調整して年率50%MAXドローダウン10%くらいのストラテジを作って公開したいなぁとか思います。

ぜひ、ブログランキング応援してくださいね。
下のランキング投票ボタンをポチ・・・・・


ランキングに登録してねーよ!!おい!!
posted by (;D)笑男 ◆LeBIz0ZWfs at 23:35| Comment(4) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年06月10日

のどに刺さった魚の小骨

原因不明のエラーに悩まされています。

double stoplossA = OrderStopLoss();
double stoplossB = ST_OpenPlice+ST_StopLoss*Point;

 ・
 ・
 ・
 ・

 if(stoplossA>stoplossB) {
 if((stoplossA-stoplossB)!=0) {
 Print("SM>>,",Time[0],",",index,",ModifySell,", stoplossA,",",stoplossB,",",stoplossA-stoplossB);
}
}

ってこんな比較文なんですが、要するにstoplossAとstoplossBが同じ値だったらPrint関数は呼び出されないはずなんですが、呼び出されてしまうんですね・・・なんでだろ?

2008.06.10 15:48:12 2007.03.09 14:42 MSST EURUSD,M1: SM>>,1173451320,114,ModifySell,1.3068,1.3068,-0

出力を見るとstoplossAとstoplossBは同じ値なんです。
stoplossA-stoplossBは-0ってなってます。
マイナスゼロ?ナニソレ・・・

あんまりCの構文には慣れてないんで致命的な誤解をしてるんですかね?
今のところこのエラーが出るからといって問題はないんですが、こんなエラーを出力するようでは、コンテストなんかには提出できませんし、EAの公開とか恥ずかしくてとても・・・・

ま、いいや。


っとまぁ、エラーを出しながらもロジックのテストは進んでいます。
MAXで2年で1800%の利回りをマークしてます。(爆笑)
それなりのレポートができたら公開します。

お楽しみに。
posted by (;D)笑男 ◆LeBIz0ZWfs at 16:08| Comment(2) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年05月05日

その名もMSS

さて、複数のストラテジを同時運用できてしまうシステムですがMSSと名づけました。マルチストラテジシステム。まんまやんけ(T^T)。
で、いろいろ有用そうなストラテジを『拾ってきて』組み合わせてみています。

mss.gif

でまー口座が満杯とか普通に達成できてるんですが、結論だけいうと
MT4のバックテストはある条件下ではまったくあてになりませんね。wwww

わたしはいままでどっちかというと鬼ホールド系のトレンドフォロアーなストラテジを中心に研究してきたんですが、実際に運用するにあたってはやはりキレイに右肩上がりなEAがいいなーと・・・そこかしこのMT4ブログを眺めながら思ってたんですよ。
それでMSSにもそういうストラテジを組み込んでるんですが、ここのところの沈黙の間にフォワードテストがまったく振るわない現象でそろそろ目をそらせてきたことに目を向けないといけない気がしてきたわけです。

キレイに右肩上がりになるEAのほとんどはTP(決済値)6〜8、SL(ロスカット)30〜とか小さく勝ち逃げして万一予定外に相場が動いたら大きめのロスカットに刺さるまで耐える仕組みですね。シグナルはボリンジャーやRSIとかストキャとかで発生させ、MAなどでフィルタリングしてます。
試しにランダムエントリーにTPとSLだけで最適化をかけても黒字化する設定はみつかりませんでしたから、シグナルはそれなりに機能しなければならないわけです。

以前から指摘してる通り、MT4はデータを最小単位では一分足で持っています。
Tickのシグナルは一分足のOHLCからMT4が生成しています。
そしてMT4の関数と配列においてAsk()、Bid()、Close[0]は生成されたTickデータを毎時返して来ます。
また、内部のテクニカル指標関数でもPRICE_CLOSEとBarShift=0を引数に渡すとTickデータで計算されてしまいます。

で、そのエントリーシグナルのためにEveryTickでテストを行うと使用しているタイムスケールのシグナル以外の場所でエントリーしてしまいます。

そして、バックテストにおいては必ず同じポイントでシグナルが発生するようなので、MT4が生成するTickデータは必ずしもランダムではありません。

つまり、パラメータの最適化段階ではMT4のTick生成ロジックに対してもっともフィッチしたパラメータがもっとも利益を出してしまう可能性があります。

ただ、最適化の結果とバックテストも必ずしも一致しないこともあるんですよね。これは直近2週間のデータはデータセンターのデータではなく使用しているサーバのデータを使っているからという説もありますし、そこまでは検証していませんのでこの話の中には多くの仮定も含まれているのは事実です。

ただ、はっきりしているのは、上記のような値をシグナルに使っているストラテジは同じ期間のフォワードテストとバックテストの結果が合いません。

これだけははっきりしてます。
一定期間フォワードテストを行い、データをある程度取ってから同じ期間のデータでバックテストを行うと、たいていの場合フォワードテストではシグナルが減り、勝率が落ちます。

missmatch1.jpg

この減った分のエントリーはまさにMT4が生成したシグナルであり、落ちた分の勝率はまさにMT4のシグナルジェネレータに対して行ったカーブフィッティング部分だと考えて差し支えないと思います。

したがって、非常に美しい収益曲線を描くストラテジを開発し、それを配布し(有償だったり無償だったり)、そして消えていくブログが多いのは、こういうことなんだと思います。
もちろん、バックテストの結果そのものの勝率を期待するのがそもそもの間違いではありますが、バックテストの弊害の中にMT4の癖による弊害も必ず認識すべきだと思います。

最後に、前回も書きましたが、実はバックテストですばらしい勝率を出すストラテジの中にもTickデータに左右されないものもあるし、上記の通りの状況に陥ってるEAもソースコードを変更することでMT4のクセから抜け出し、かつ利益を上げることのできる有益なソースコードも多々あります。

ただ、それらがバックテストと同じ結果をフォワードテストで出せるかというとそれは別の話です。もっといい場合もあれば、もっと悪い場合もあるでしょう。過去の出来事だけから未来を語るのはおろかな話です。

MSSを作ったおかげで、そこらへんの微妙な調整はざっくりとシステム任せにして、いくつかの違うパラメータを持った同じEAを同時に走らせておけばいい、という戦略ですから多少は気が楽ですけどね。

以上、ブログ休止中に考えてたことを一気に書いてみました。
え?なげー?

すみません。
posted by (;D)笑男 ◆LeBIz0ZWfs at 10:23| Comment(9) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年04月14日

アメリカに売買用サーバ建ててみたよ

まずは画像をご覧ください。
mydsk.jpg
Vistaのデスクトップには葉月アイコンがありまして。
そのウィンドウの中に2000のデスクトップが見えてますね?
これはアメリカに借りたサーバのデスクトップでその中でメタとレーダーが動いてます。
今はシンプルで地道に稼いでくれるEAのフォワードテストを実行中です。
こうやってどこからでもアクセスできるアメリカのサーバの中で電源を落とすことなくフォワードテストやバックテストができるわけです。

で、例の複数ロジックを同時に動かすEAですが、例のランキングのアルゴリズムの改良待ちの状態のまま組み合わせるストラテジを捜し歩く日々を送ってます。
どうやら組み合わせるロジックによってチューニングが必要っぽいのであんまり作りこむこともできないわけです。

人として終了のお知らせを発しつつ、地道にやってるわけです。
posted by (;D)笑男 ◆LeBIz0ZWfs at 22:37| Comment(9) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月29日

ミックスドストラテジ あかんとです ><。。。

一回目のバックテストを一通りやりながらちょっと困ったことが。

同時に走らせてるストラテジの優位性をランキングしてその上位任意数のストラテジのシグナルに従うわけですが、この優位性の評価方法がなかなか難しいですね。最初はトータルの利益をトータルの損失で割ってPF、いわゆるプロフィットファクターを計算してたんですが、トレンドフォロー系だといきなり瞬間最大風速でPFが30とか出てしまうわけですね。
そうするとコツコツ地味にやる系がコツコツとPF2とか出してても当分出番がないわけです。
ところがPF30のストラテジが1.5とかくらいまで落ち着く間ってずっと上位にランクされっぱなしですが、その間ずっと赤字だったりするわけです。
そんなのに長期間居座られても困るわけで・・・

それでトータルの利益とトータルの損益に減衰係数かませてみたわけです。
TotalProfit=TotalProfit*0.9+NewProfit
こんな感じですね。これでトータルの利益は一回計算されるたびに0.9が掛けられて減衰していくので調子を落としていけば加速度的にポイントを減らしていく・・・はずだったんですが。
これでも例えば年に数回しかシグナル出さないストラテジは相当な期間有効なストラテジの邪魔をしてしまうわけです。

ここはやはり利回りで計算するのがベストだと気がついたわけですね。

あと、実際に稼働させる場合ですが、今はこのデータがすべてメモリ上にあるので、テストが終わると評価が消えてしまうわけです。テストからメモリ上のデータを生かしたままで実際の売買へと移行することはできません。
実際に稼働させてもデータが一度白紙になりますから、システムが安定するのに一年くらいかかってしまいますね。

これは評価をファイルに書き出し、読み込みすればいいので簡単に対応できそうです。この方法だと途中で評価を強制的に変更することもできますしね。

というわけで、テスト結果の発表まで至りませんでした。
しばしお待ちを。
posted by (;D)笑男 ◆LeBIz0ZWfs at 21:45| Comment(2) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月26日

ミックスドストラテジテンプレートを作ってみたよ

さて、前回の話でVCと某右肩上がりの拾い物を組み合わせてみるという試みをやってますが、ついでなのでいくつでもストラテジを組み合わせることができるようにしてみました。テンプレート方式でシグナル関数と初期化部分を追加していけば、いくつでもストラテジを動かせるようなプログラムにしちゃいました。
そして、バーチャですべてを実行させておいてプロフィットファクターのいいやつから何個と選んで実際に売買をやらせてみる、というわけです。もちろん、どんどん順位が入れ替わります。
chart080326-2.gif
右上に数字が並んでますね?
これはいま10個のストラテジが同時に動いてて、そのバーチャ成績を表示してます。
テストでは直近のPFの平均が1を超えててなおかつ成績が優秀な上位3つのストラテジの注文を発注する仕様でうごかしてます。
勝率はいいけど売買回数が少ないっていうストラテジをばんばん組み込めばおもしろいことになりそうですね。

まぁ懸念は相当重くなるだろうってことですね。w
posted by (;D)笑男 ◆LeBIz0ZWfs at 17:42| Comment(5) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月19日

VC改と拾い物EA

EAというのは、MetaTraderで使える自動売買プログラムのことです。
エキスパートアドバイザーてのかな?

前回の記事で書いたものをテストしてますが、なかなかいいです。
当初あまりにグラフがきれいなのでバグかと思ってコードをみたらClose値を使ってるのでがっかりしてたんです。
Close値というは始値高値安値終値の終値のことですが、MetaTraderでは現在の足のClose値を読み取るとTickの現在値が返されます。
で、例えば一時間足でプログラムを動かしてたとして、リアルタイムなら問題ありませんが、過去の一時間足データでバックテストするとTickの値段はMetaTraderがフラクタル理論に基づいて自動で生成してるんですね。それを比較関数に使うと実際にはありえなかった売買条件で約定しちゃったりいろいろ問題があるわけです。

そもそも、現在の足の終値を問い合わせるということじたい間違ってますからね。

で、コードをOpen値に変更したら損益グラフがマイナスになったのでやっぱりと思ってたわけです、でも、そのコードで最適化をかけてみたらClose値と違うパラメータがぞくぞく出てきて、利益率は同じでした。
結果の信憑性はちょっとあがった感じです。
なにしろ勝率90%マックスドローダウンが20%以下です。
まぁ、その分利回りはあまりよくなくて年率20%くらいですけど。
で複利効果の相乗効果とドローダウンの打ち消しで、VCのロングレンジバージョンに組み合わせると面白いかと・・・

そのVCですが、いままでは売り買いのサインのたびにドテンするだけのロジックだったものを利が乗った時点でトレールするように改造してみました。トレール値をパラメータ化しないためにポンさんから教えていただいたトゥルーレンジを使う方法をちょっとアレンジしてみました。

現在そのロジックでユロドル10年分のバックテスト中です。
でも、とりあえず1時間足でいっぱいあった利益設定がひとつもなくなってしまいました。
これは改悪??? ><。。。。

いまは一分足で精密にチェック中です。
この改造がだめだったら、VCに組み込むサブロジックは拾い物でやっちゃった方がいいかもです。
posted by (;D)笑男 ◆LeBIz0ZWfs at 23:40| Comment(2) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月17日

VCで$5000ゲット

はい、バーチャです。w
デモ口座を使って実際にVCで売り買い注文出してみてます。
こういうのをフォワードテストっていうわけです。

で、あの地合いでしょう。
あんまり考えもせずユロドル・ドル円・キウィ・羊に投入したらいきなり爆益です。デモ口座でドンチャンが結構な負けを出してて、当初5000$あった口座残高が$2000まで落ちてたんですが、含み益だけで種と同じだけあります。しかも逆マーチンゲールを使ってたので枚数はそれぞれ0.3枚なのですよ。
それで$5000簡単に儲かるなんて・・・・

まー、順張り系のロジックなら何をやってても勝てるタイミングだっただけですけどね。

しかも、リアルで負けて、バーチャで勝って、某所では笑いものにされてしまいましたけどね。。。

WVCの進捗状況ですが、現在ショートレンジでの適当なレンジを探しているところです。これが通貨ごとに違うわけです。しかもあんまり見つかりません。あんまり見つからないということは、やっと見つけたパラメータもほぼ使い物にならないってことでしょう。
ちょっとガッカリです。

そんなわけで最適化中に暇なのでお散歩していたところ、おもしろいロジックを発見しました。じわじわと右肩上がりになるロジックと去年のコンテストプログラムを抜いてしまうロジックです。
・・・って書くと熱心な方ならどこから見つけてきたのかすぐにわかると思いますが。
世の中にはまだまだおもしろいものがゴロゴロしてるわけですね。

さっそくにもテストにかかりたいわ。WVCの最適化でまったくほかのことはできないわでちょっとジレンマです。
posted by (;D)笑男 ◆LeBIz0ZWfs at 22:00| Comment(8) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月13日

その名もWVC

為替がえらいことになってますね。
わたしはちょっとやられてしまいました。><。。
注意はしてたんですが、まさかのLCでした。
まさか2円も動くとは思いませんものね。
でも、為替も株も値幅の分布はベキ乗分布なんです。
自然分布とは違って、まさかがあるのが普通なんですね。

VCをショートレンジとロングレンジで動かすWVCをコーディング中です。
まず、使ってるチャートのタイムフレームに依存しないようにマルチタイムフレーム化をやって、過去の結果と照合してうまく一致することを確認してから、二つのストラテジを同時に管理するプログラムへと進化させます。
とはいっても、マルチタイムフレーム化ができた時点でほとんどコーディングは終わってて、ショートレンジで同じ関数を呼び出すだけですから簡単だと思います。

VCの他通貨でのテストも続行中です。
ドル円が芳しくないってのと、最適化で出てきた結果とバックテストの結果がまったく違うという悩ましい現象が出てます。いろいろ平行してやってるとわけがわからなくなってきますね。とりあえず再テスト中です。

・・・・ふむ。VCでのドル円のテストは微妙に違うものの、一致といっていい結果がでました。違ってるのは最終損益とPFで売買回数や最大ドローダウンは一致します。どうやらテストが終了した時の手仕舞いの損益を入れる、入れないとか、そんな違いがあるのかも知れません。

posted by (;D)笑男 ◆LeBIz0ZWfs at 23:23| Comment(6) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月12日

逆マーチンゲールの威力

さて、ショートレンジでテストして放置してたvcを出来心で逆マーチンゲールはずしていじっているうちにロングレンジで利益設定帯を発見したわけですが、やはり10年トレードして500%の利益では物足りません。ここへきてプログラムをもとに戻して逆マーチンゲールを仕込んでみました。

BEFOR


Strategy Tester Report
VCSystem1
MetaQuotes-Demo (Build 211)

通貨ペア EURUSD (Euro vs US Dollar)
期間 1時間足(H1) 1999.01.08 19:00 - 2008.03.12 01:00
モデル Every tick (the most precise method based on all available least timeframes)
パラメーター Mlimit=1000; Filter=1; jgA=1; StopLoss=3500; TakeProfit=3500; TrailingStart=0; TrailingStopLoss=25; TrailingStep=5;
Bars in test 57193 Ticks modelled 16023456 Modelling quality 89.84%
Mismatched charts errors 6
Initial deposit 10000.00
Total net profit 65012.10 Gross profit 147949.20 Gross loss -82937.10
Profit factor 1.78 Expected payoff 369.39
Absolute drawdown 299.40 Maximal drawdown 16424.90 (37.78%) Relative drawdown 37.78% (16424.90)
Total trades 176 Short positions (won %) 88 (22.73%) Long positions (won %) 88 (23.86%)
Profit trades (% of total) 41 (23.30%) Loss trades (% of total) 135 (76.70%)
Largest profit trade 10207.00 loss trade -2058.20
Average profit trade 3608.52 loss trade -614.35
Maximum consecutive wins (profit in money) 3 (8118.30) consecutive losses (loss in money) 23 (-11327.40)
Maximal consecutive profit (count of wins) 11885.80 (2) consecutive loss (count of losses) -11327.40 (23)
Average consecutive wins 1 consecutive losses 4
Graph

一番いい設定を使ったので600%を越してますが、それでも10年かかってということを考えるとうーむ。。。

さて、ここで逆マーチンゲール登場です。

AFTER

Strategy Tester Report
VCSystem1
ODL-MT4 Demo (Build 211)

通貨ペア EURUSD (Euro vs US Dollar)
期間 1時間足(H1) 1999.01.08 18:00 - 2008.03.12 01:00
モデル Every tick (the most precise method based on all available least timeframes)
パラメーター Mlimit=1000; Filter=1; jgA=1; StopLoss=3500; TakeProfit=3500; TrailingStart=0; TrailingStopLoss=25; TrailingStep=5;
Bars in test 57192 Ticks modelled 16006423 Modelling quality 89.84%
Mismatched charts errors 0
Initial deposit 10000.00
Total net profit 551723.80 Gross profit 1718763.90 Gross loss -1167040.10
Profit factor 1.47 Expected payoff 3134.79
Absolute drawdown 304.00 Maximal drawdown 691878.70 (68.23%) Relative drawdown 75.93% (62984.40)
Total trades 176 Short positions (won %) 88 (21.59%) Long positions (won %) 88 (26.14%)
Profit trades (% of total) 42 (23.86%) Loss trades (% of total) 134 (76.14%)
Largest profit trade 427454.40 loss trade -65072.00
Average profit trade 40922.95 loss trade -8709.25
Maximum consecutive wins (profit in money) 3 (251468.40) consecutive losses (loss in money) 23 (-47710.40)
Maximal consecutive profit (count of wins) 427454.40 (1) consecutive loss (count of losses) -520626.70 (15)
Average consecutive wins 1 consecutive losses 4
Graph

いきなり利益率5500%になりましたね。
それに伴って最大ドローダウンが68%と増えてますが、利益の増え方を考えると許容せざるを得ないですかね。。。
このようにリスクとは利益とセットになるものなのでしょう。
それにしても最後の土壇場でのドローダウンはもったいないですね
さて、このように複利効果とはなかなか偉大なものなのでした。

しかし、縞馬さんの要求は年率300%・・・まだまだです。

グラフを見てわかる通り、小さく負けて大きく勝つシステムですが、小さな負けがジワジワと種を縮小し、それがポジの縮小につながってます。
売買回数も年間平均17回ではあくびがでます。

そこで、小さな負けを減らす方法を考えてみました。
例えば、もっと回数が多くて利益率の悪い手法と組み合わせてみたらどうなるでしょう。もともとの利益率は悪くても、十分に安定したシステムなら、メインシステムが種を増やしてくれるのでポジが増えて必然的に実力以上の複利効果を出すことが期待できます。
当然、ポジが増えれば最大ドローダウンは増えますので、もともとドローダウンの少ない手法が適しています。

そうです。ショートレンジのvcなら条件に合うような気がします。
しかもレンジが違えばドローダウンの場所が違うので、互いにドローダウンを相殺することも期待できます。
posted by (;D)笑男 ◆LeBIz0ZWfs at 22:48| Comment(1) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

局所最適化の罠

パラメータの最適化を進めていって、利益の出るパラメータの分布には大きく分けて2つあります。
ひとつは、パラメータの値が飛んでいて一様に分布している場合。
これは、損益分岐点上にパラメータが固まっていて、たまたまテストを終えた時期に黒字だったり、赤字だったり、というケースに別れていることがわかります。
状況としてはまさにあと一歩!というところです。
この状況でパラメータ弄りにふけっていても時間の無駄です。
ロジックを変更して収益率の底上げができればほとんどのパラメータが黒字になり、ストラテジは完成目前、という感触が得られます。

もうひとつが、利益の出るパラメータが固まって出現する場合です。
そして、ひとつの最適値パラメータを頂点に利益曲線が山なりになってきます。

ここで注意しなきゃいけないのが、局所最適化というものです。
当初VCはインジケータとして作りました。
だから目視で使いやすいパラメータを適当に設定してチェックしていました。
そこから自動売買プログラムを組んでバックテストをしたところ、わずかに小さな山が出現しただけでした。

そのトピックがこれですね。
http://warao-sikyo1.seesaa.net/archives/20080109-1.html

コンピュータによる最適化にしろ、人間による最適化にしろ、すべての組み合わせを総当りでチェックするには膨大な時間がかかります。そこで、最適化を進めていって利益曲線が上昇し、降下してしまうとそこで検証作業を終えてしまうことがあります。
実はそのまま続けていればその先にもうひとつ利益の出るパラメータ群が出現し、もしかしたら、それは先に出たパラメータ群の最大利益より大きいこともあるわけです。
このように小さい最適化郡で頂点を見つけたつもりになってしまうことを局所最適化といいます。

さて、VCを得意のユーロドルで再検証してみました。
前回は1分足から4H足までひとつのパラメータを20から500の幅で検証して15Mでひとつのピークを発見しました。

そこで、1Hで50から1500までを再検証した結果がこれです。

No.最終
利益
売買
回数
プロフィット
ファクター
最大
利益
最大
ドローダウン$
最大
ドローダウン%
パラメータ
113360.505201.0725.6928432.6087.84%Mlimit=350
214655.204821.0830.4027509.2085.03%Mlimit=400
36535.403881.0416.8421904.5096.80%Mlimit=550
49525.203541.0626.9122445.8071.02%Mlimit=600
57824.503341.0523.4328254.6092.47%Mlimit=650
614417.803061.1047.1227532.9092.57%Mlimit=700
729113.702701.23107.8324160.7062.79%Mlimit=750
846479.802341.42198.6325279.0050.83%Mlimit=800
954135.402261.53239.5419149.5037.01%Mlimit=850
1054429.302101.55259.1918175.3038.43%Mlimit=900
1157941.401961.62295.6217172.7037.97%Mlimit=950
1265103.101761.78369.9016424.9037.78%Mlimit=1000
1364233.601561.82411.7515691.0031.16%Mlimit=1050
1450105.101581.57317.1217389.3039.92%Mlimit=1100
1537282.401661.38224.5918118.4042.94%Mlimit=1150
1638851.201581.41245.8916380.1037.65%Mlimit=1200
1731862.401581.32201.6618114.5040.19%Mlimit=1250
1824248.501521.24159.5318216.6042.91%Mlimit=1300
1921328.501521.21140.3219148.8049.55%Mlimit=1350
2025458.201441.27176.7921546.4043.97%Mlimit=1400
2126538.601401.29189.5616873.9050.38%Mlimit=1450
2222499.301321.24170.4525639.6055.43%Mlimit=1500
最終利益は約4万ドルです。期間は1999/1/1〜
パラメータを変えていくと徐々に最終利益が増えてPFが改善していきます。すばらしいのは、パラメータの350から1500まですべての設定で利益が出ている、ということです。地合いが変化して最適値がずれてしまっても、安心、ということですね。
そして、パラメータ1000あたりにしっかりピークがあり、山にいびつさがありません。
これは間違いなく、いいロジックです。

ただ、残念なことに売買回数の少なさが目につきます。しかも十年かかって4倍・・・国債の方がまし?w
最大ドローダウンは前回より改善されていますが、種割れが一年とか続いてそのままこれを使い続けられるかどうか・・・
微妙なところではあります。

しかし、前回は15Mで相当な売買回数をこなして利益を出していますし、もうちょっとでなんとかなりそうな気配がしてきました。
posted by (;D)笑男 ◆LeBIz0ZWfs at 12:46| Comment(3) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月11日

逆マーチンゲールの落とし穴

逆マーチンゲール法というのは、ポジションサイジングのひとつの手法で、負けたら投資額を減らす、勝ったら増やす、という方法です。
といっても過激に増やすと一気に種割れということになりますから、常に全資産の何%の投資額と決めるわけですね。勝って資産が増えたらその分投資額も増えるわけです。いわゆる福利効果ですね。
以前に触れたことのあるマーチンゲールは負けたら投資額を増やす・・・つまりナンピンを続けて強引に利益を出す方法ですが、ナンピンしすぎて含み益が増大すると一気に破産します。
その点逆マーチンゲールは破産に近づくとポジを縮小していくので破産しにくくなるという利点と、資産が増えるとポジが増えて資産増加率がよくなるという利点があるわけです。
そのかわり、種が割れるとポジが減るので回復には時間がかかります。

さて、ポンさんストラテジなどを検証中に途中でテストが止まってしまうことがたびたびあって・・・
それは日経先物を買うために必要な資金が途中で足りなくなるので投資資金アップで対応していたんですが、やがて日経miniでは多すぎるほど注文枚数が増えてしまってテストが止まるわけです。
で、何気に逆マーチンゲールのロジックを止めてみました。枚数が同じなら資産が増えてもテストは止まらないからです。

するとすると、あれあれ。
利益がでる設定がまたまたゾロゾロでてくるじゃありませんか。
MT4は設定をいろいろ変えて利益がでる設定を自動的に探してくれる便利な機能があるんですが、新しい設定がぞろぞろ出てきます。

なんじゃこれ?

ためしに実際の売買と同じようにビューモードで売買をさせてみました。すると新しい設定はゴール直前でドローダウンしてそこから回復する設定でした。
逆マーチンゲールをかけているとドローダウンから回復する前にテストが終了しちゃってたんですね。

すると・・・いままで逆マーチンゲールだけでテストしてた結果っていったい・・・

ふと思い立って自作ストラテジのVCを走らせてみました。
すると、ないと思ってた最適値が結構出てきます。
1999年からのドル円で時間足売買を数百回繰り返して破産しない設定も出てきました。
まぁ、利益は年率30%くらいだし、ドローダウンが80%以上でこのままじゃどっちにしても使えませんが。
以前にも書いたとおりVCには回数が多い割りに資産維持率がいいという利点があります。
はっきりいって、インジケータひとつのサインで売り買いを続けて1999年から8年間売買を繰り返しても破産しないインジケータってないんじゃないの?って思います。RSIもRCIもMACDもボリバンも一目もMAも・・・・すべてを凌駕するわがVC?かっこいいかも?

いや他でもあるかも知れないな。明日確かめてみよう。
posted by (;D)笑男 ◆LeBIz0ZWfs at 02:06| Comment(7) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

2008年03月08日

ランド円ワロッシュww

zarjpy080104.gif

これは・・・MT4のデータが壊れてるだけですよね???

いや、すべての足値がこうなってますが・・・
売買成立してるんですかね?
この値動きでwwww

今日はドル円もキウィもすごかったですね

posted by (;D)笑男 ◆LeBIz0ZWfs at 00:57| Comment(5) | TrackBack(0) | 為替・FX・MT4 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。