MT4→自作ツールへの連携方式を改善中

取組中・自分用のメモです。

  • SteadyWinner 6.5へのバージョンアップのお知らせと、今回もEAのソースコードが届きました。机に向かう良いきっかけを頂きました。
  • 6月頃から、実口座で少量のロット数で運用を続けてます。「EURCHFの負けないやつ」を有難く使わせていただいてますが、6月に2勝した後、7〜9月は一度も決済なし(ほんのちょっと含み益)の状況です。

  • 不安要素(後述)を解消させてからロット数を増やそうと予定してます。

現行の仕組みは、おおまかに書くと下記となってます。

続きを読む

実稼働ラインナップを整理しました

「大石流_Asiantime_Logic_ver3」、二週間のフォワード稼働でもバックテストどおりの素晴らしい成績でしたので、主軸に据えさせて頂きます。
手元では、EUR/JPY、GBP/JPY、それとAUD/JPYの3通貨ペアが好調のようです。


「大石流_Linebreak_Logic_ver3」の調整も完了し、解析・検討した結果、USD/JPYより収益性の高かった、AUD/JPYを主軸に据えさせて頂きます。
取引数が2日〜3日に1度ぐらいと少なめですが、期待値は12pips・年間1000pipsほどと立派な獲得幅です。また、ブレイクアウト型にしては勝率が66%と高めのようです。


この週末、格安でソース付きEAの「SteadyWinner4」も調整にかけてました。
このEAはバックテスト時のTick精度によって成績がけっこう変動し、最低でもControlPointsが必須のため、このEA1つの調整完了までに40時間ぐらいかかりました。
半年前はすべて手作業で数週間かかってましたが、今回は週末を有意義に過ごしているうちに、ツールが頑張ってくれて自分好みのパラメータを見つけてくれました。

同一パラメータのまま他通貨で動かしても、そこそこ良好な成績になります。
取引回数が多く、決定係数も文句なしの数値。PFや期待値はそこそこですけど、半年前と変わらず信頼できる結果です。
こちらも問題なく主軸に据えます。


昨年、これひとつで猛烈に利益をあげてくれた「Forex Combo System」は、ツールにかけたところ今ひとつの調整結果で、他よりも明らかに見劣りするため、いったん稼働停止することにします。ときどき様子は見ます。

GMTオフセットの自分メモ

MT4は、どの国のサーバに接続するかで、時差がまちまちです。

ForexTester のデータ GMT offset 1 (Central European Time 中央ヨーロッパ時間)
FXDD GMT offset 3
Alpari UK GMT offset 2
FXPro GMT offset 3

ForexTesterで調整した「大石流_Asiantime_Logic_ver3」のトレード時間設定値は、FxProで実稼働する際に修正が必要なのかどうか・・・。

仕様では「世界標準時」で指定すると書かれてます。
たしか、バックテストにはサーバ時間調整が効かなかったような記憶があります。
そうだとすると、ForexTesterで調整したパラメータならば、1時間を引けば世界標準時になる・・・のかな? 検証せねば・・・。

PC故障→復旧と、最適化ツールが実用可能に

ディスプレイ無しで運用してた自動売買用のPC本体を、REGZAに繋いで起動してみたら、ブルースクリーンで「No bootable device」とのこと。
ハードディスクが致命的な状態です。
HP製の中古Core2Duoマシンを、3年ほど24時間稼働させてきたわけで、ここまでよく持ってくれました。お疲れ様でした。

さて復旧するにあたり、新品ハードディスクを買うか、容量が減っても良いからSSDを買うか、中古マシンを1台買うか、VPSを借りるかの4択で3日ぐらい悩んだのですが、絶対額が安くあがる新品ハードディスクを買うことにしました。
SSDとかは、将来、もっと利益が出たときの楽しみにとっときます。

今までは物理マシンで自動売買を稼働させてましたが、今後はVMWare上の仮想マシンで稼働させることにします。
マシンのパフォーマンス的には少し不利ですけど、日々のメンテや引越しがすごく簡単なので。
個人レベル・無償でも、こんな贅沢させてもらえる時代なのですねー。


最適化ツールは、調整前後の比較アルゴリズムを見直して、だんだんと自分好みに改善されてきてます。
見込んだとおり「大石流」のEAは、堅牢さや調整の余地が素晴らしくて、ツールに放り込むと見違えるような成績になりました。

明日から、「大石流_Asiantime_Logic_ver3」を通貨ペア「EURJPY」で稼働させてみます。


今のところの本命である、EURJPYの2005年〜の、最適化後の成績がこちら。
実際に利用しようとしてるブローカは、スプレッド1.0未満です。

  • EURJPY、スプレッド2.0

見事なグラフですね…。
Expected Payoffも十分な幅があり、誤差は出にくいでしょう。
ツールが、約1時間ほどでこのパラメータを探してくれました。
もし手作業だと、たぶん、休日丸二日を費やしてやっと見つかるかどうかだと思われます。


あと、堅牢さを確認するため、上記と全く同じパラメータのまま、他の通貨ペアでテストした成績がこちら。

  • USDJPY、スプレッド2.0


  • GBPJPY、スプレッド4.0


  • AUDJPY、スプレッド2.0


十分に堅牢なようで、個人的には一安心です。

明日から一週間ほど、最小限の資金で運用して、テスト時どおりの動作をしてくれるか確認してみます。

開発中の最適化ツールと、先週の成績

ツールは、一通りの機能実装が終わりました。
ある程度は期待どおりに動きますが、思ってたのと違う所も多いです。当面、改善を続けます。

地味な外観なのでスクリーンショットは無しです。


個人的に、MT4のオプティマイズ機能では物足りない点としては、

  1. 結果の保存や呼び出しが面倒で、時間をかけて得た結果を失いやすい
  2. 損益、PF、MaxDD、トレード数、勝率、期待値などだけでは見えない観点が多々あると思ってまして、特に、運用上の精神的負担や資金効率に効いてくる点を把握しにくいです。
    1. ドローダウンから平均で何日ぐらいで回復するのか?
    2. 月あたり何回ぐらいドローダウンが発生するのか?
    3. 1日の取引頻度はどのぐらいか?
    4. ポジション保有時間は平均どのぐらいで、バラツキはどのぐらいか?
    5. 月あたりの資金増加の傾きのバラツキはどのぐらいか?
  3. 1通貨・1期間での狭い最適化に陥りやすいです。普遍的なロジックならば市場の変化(多通貨・いくつかの期間に分割)にも対応可能なはず…と考えてますが、この確認が手間で、抜け漏れが起きやすいです。
  4. 統計的に有意な結果なのかどうかをチェックできません。


これらを、今までExcelによる分析で補完してましたが、手作業と時間と根気がたくさん必要だったので、自動化したかったのです。


ツールが根気よく見つけてきたパラメータは、PF、MaxDD、損益、勝率などが20%〜30%向上してます。
8年ぐらいの期間に渡って、良い傾向が続いてます。
全く同一のパラメータで他の通貨ペアで8年ぐらいのテストをすると、やはり成績が向上してます。

…ちょっと喜んだのですが、結果を点検していると違和感が強まってきて、変に良すぎる気がしてきます。
特に勝率。
元が勝率約60%だったのが、勝率約90%に向上してます。
パラメータ調整ぐらいで、ここまで傾向や性質が変わるわけがないという気がします。


試しに、別の証券会社から取得したローソクでテストしてみると、元より悪くなりました。
感じた違和感は正解だったようで、悪いカーブフィッティングに陥ったみたいです。

ただし1000回の試行のうち、500回めぐらいのパラメータならば、問題なかったです。
でも良化の程度は小さいので、採用するかどうか微妙なところです。

この最終結果は破棄ですが、得るものが多くありました。

反省点は下記です。主にExcelを改善する必要があります。

  1. 直前結果との良化・悪化の判断しかしておらず、徐々に悪化していく項目があっても検知しにくい。もともとの結果とも常時比較して、じわじわ悪化していくのを抑制する。
  2. 良化・悪化を数値化して比較しているが、極端に良化した項目が一つ出現すると、そこそこ悪化した項目が打ち消されて、見えにくくなる。全体が徐々に良化するべき。良化・悪化の程度に重きを置かず、良化・悪化した範囲の広さを評価するべき。
  3. 資産増加の滑らかさも評価するべき。ギザギザ・バラツキ・急激で深いドローダウンなどを起こすものは、運用していくうえで心理的な負担が大きいので、そういう傾向は避けたい。(この目的で1取引あたりの偏差を評価しているが、それより、1月ベースでの中期的な偏差評価や線形回帰分析へと代えたい)


先週の実稼働中システムの成績は、週初めにスキャルピング型の大きめの連勝が続いて、喜んだあと、中盤から大きな損失が何度も続きました。
いっときけっこう増えたのに、ほぼ一ヶ月前の水準まで資金が戻ってしまいました。

あと、自動売買用のPC本体が不調…というか故障みたいです。
普通のPCで24時間稼働を2年も続けてきたので、どこかの部品が寿命かもしれません。
ディスプレイを繋いでないので、すぐには判らないのが困ります…。

こういう時にすぐ代替できるように仮想環境を整えている最中でしたが、故障が先に起きてしまいました。


いろいろ、なかなか、軌道に乗ってくれないです。
山も谷も楽しみながら、成功するまでがんばります。

異なる通貨ペア用のEAを検証中

いま有望だと思われるEAは、標準設定だと手元ではこんな成績でした。

※以下すべて、2005-01-01〜2012-04-30 / Spread2.0 / ControlPoints

   
EA名称(有望) 大石流_Asiantime_Logic_ver3
トレード性質 アジア時間逆張り
推奨通貨 USDJPY
時間足 M5
USDJPYの成績 ○PF1.28/+3013/905Trades/Exp3.33/53.59%
EURJPYの成績 ○PF1.18/+3368/861Trades/Exp3.91/55.98%
GBPJPYの成績 ◎PF1.24/+5150/899Trades/Exp5.73/57.62%
AUDJPYの成績 △PF1.11/+1718/822Trades/Exp2.09/54.14%
EURUSDの成績 ×PF1.00/-28/777Trades/Exp-0.04/49.94%
GBPUSDの成績 ×PF1.05/+832/848Trades/Exp0.98/54.72%
   
EA名称(有望) 大石流_Divergence_Logic_ver3
トレード性質 ダイバージェンス
推奨通貨 USDJPY
時間足 M5
USDJPYの成績 △PF1.13/+2117/1509Trades/Exp1.40/55.14%
EURJPYの成績 △PF1.06/+1819/1580Trades/Exp1.15/55.51%
GBPJPYの成績 ○PF1.17/+5927/1774Trades/Exp3.34/58.57%
AUDJPYの成績 ×(不適)
EURUSDの成績 ×(不適)
GBPUSDの成績 ×(不適)
   
EA名称(有望) 大石流_Linebreak_Logic_ver3
トレード性質 ラインブレイク
推奨通貨 USDJPY
時間足 M5
USDJPYの成績 △PF1.15/+2329/721Trades/Exp3.23/66.30%
EURJPYの成績 ×(不適)
GBPJPYの成績 ×(不適)
AUDJPYの成績 ◎PF1.26/+6619/943Trades/Exp7.02/66.07%
EURUSDの成績 ×(不適)
GBPUSDの成績 ×(不適)
   
EA名称(有望) 大石流_Weakness_Logic_ver3
トレード性質 押し目買い
推奨通貨 USDJPY
時間足 M5
USDJPYの成績 △PF1.09/+1201/609Trades/Exp1.97/80.30%
EURJPYの成績 ×(不適)
GBPJPYの成績 ×(不適)
AUDJPYの成績 ×(不適)
EURUSDの成績 ○PF1.12/+2123/773Trades/Exp2.75/80.34%
GBPUSDの成績 ×(不適)
   
EA名称(有望) 大石流_Range_Logic_ver3
トレード性質 レンジ逆張り
推奨通貨 USDJPY
時間足 M5
USDJPYの成績 ×(不適)
EURJPYの成績 ×(不適)
GBPJPYの成績 ×(不適)
AUDJPYの成績 ×(不適)
EURUSDの成績 ×(不適)
GBPUSDの成績 ×(不適)

ここ半月ほど、多通貨ペア・統計的な安定性を重要視した、自分好みの最適化を自動で行うツールをがんばって作っていました。
これまではMT4と自作のExcel統計解析もどきツールを往復して、こつこつ何週間も手作業で行なっていた、「未来に通用するか?」が決まる重要なプロセスです。
うまく動いてくれれば、調整の労力が大きく減るうえ、資金も今よりもっと安定して増えるはず。


いま、前述の有望なEAを、今から自作の最適化ツールに投入してるところです。
明日の昼ぐらいに、1つめの最適化が完了する予定です。
どんなパラメータが選択され、成績はどう変化するのか、大変楽しみです。

プライベートで無料のSubversion

自動売買のロジックや、リアル口座との同期システムは、一頃に比べるとずいぶん安定稼働しており、かなりほったらかしです。

しかし時折、その時節や情勢に合わせたロジックの調整作業がこの先ずっと必要だと考えています。
あとリアル口座との同期も、取り扱い通貨ペアやスプレッドの条件の良いブローカへの対応を強化したいところです。

これを一人で続けていくのは無理があると思っており、コーディング技術を持った方と共同作業して改善していける環境を、こつこつと構築中です。


今日は、unfuddleというソースコード管理サービスの利用を開始しました。

・容量200MBまで
・作成できるプロジェクトは1つのみ
Subversionリポジトリ数は無制限
・バグトラッキング機能使用可能
マイルストーン機能使用可能
RSS機能使用可能
・ノートブック機能は3ページまで
・メッセージ機能使用可能
・ファイル添付不可

あとはSubversionリポジトリの中身の構成を作るのと、手持ちのヒストリカルデータをバックテストに適用できるようにしたら、一区切りです。
がんばらねば・・・。