ぼなんさのMT4自動売買でがっちり!

MetaTrader4のコツコツがっちり型のEA開発の記録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

121証券の約定遅延対策リリース

FN, GNシリーズにおいて、121証券での約定遅延や約定不成によってポジションがクローズされないという現象に対応すべく、新たな仕様を追加したバージョンをリリースしました。

先週、約定遅延が出ている121証券のライブ口座にて新規仕様のONとOFFとでの違いを検証してみたのですが、OFFの場合、決済のシグナルが約定不成で蹴られてしまうような場合でも、ONにしていたEAではキチンと決済されていたので、磁気によるひらめきどおりに追加した仕様が機能しているようです。

なお、残念ながら先週・先々週のようなEAの戦略にマッチしない相場に対しては、今回の新規仕様は効果がありません。あくまでもクローズの際に約定遅延や約定不成がおきるような状況に対して効果があるということなので、誤解(過度な期待)のないようにお願いします。

また、エントリーに関しては追加した新規仕様は機能しません。一応、リトライ機能を一部改良したので以前よりは安定するかと思いますが、リトライしてもエントリーがはねられてしまう様な場合は、お手上げと言う感じになります。

今週以降も先週同様の相場が続く可能性もありますので、リスクマネージメントは各自でしっかりと行っていただくようお願いします。
スポンサーサイト
  1. 2009/01/27(火) 07:01:14|
  2. 開発方針
  3. | コメント:1

121証券対策

121証券で約定に関してあちこちでいろいろと問題になっているようです。以前から約定遅延が見られちょっとは気になっていたのですが、これまでは無事にポジションが閉じられていたので、特に問題視していませんでした。
スプレッドが広がりすぎていて使い物にならないODLなどに比べれば、まだスプレッドを狭く保っている121証券の方が多少約定が遅延してもまだましだと思っていたのですが、ODLから引き出した資金のほとんどを121証券に移動した矢先に落とし穴が開いていました・・・。

先週の金曜日は、クローズするシグナルがでて利確する予定のポジションが閉じられず、そのままズルズルと含み損を抱え、最終的にはストップにかかってしまったと言うケースが頻発し、かなりの損失を被りました・・・。FXDDやFxProでも損失が出ていたので、すべてが約定遅延・約定不能のせいではありませんが、利確予定のポジションがストップにかかってしまったのはかなりショックでした。

またブローカーの引越しか・・・と半ばあきらめていたのですが、先週人間ドックに行って脳MRIを受けている時にあるアイデアがひらめきました。磁気が影響したのか、あの不気味な騒音が影響したのかわかりませんが、普段と異なる環境に缶詰になると思わぬ考えがわいてくるのかもしれませんね。

普段は、こういう思い付きとか改良のアイデアと言うのは、パートナーに相談してコード化してもらうのですが、あいにく他の作業で手一杯だということで後回しにされてしまったので、この週末いろいろと試行錯誤して何とかひらめきどおりの動作をするものに仕上がりました。

しばらくフォワードテストしてみて、既存のEAよりも安定しているようなら、ユーザー様に配布しようと考えています。

  1. 2009/01/20(火) 07:22:27|
  2. 開発方針
  3. | コメント:4

GBPCHFって・・・

fx-onさんの掲示板の方にGBPCHF対応のEAを作ってくださいというコメントをいただきました。
登録されているEAにGBPCHFを対象とした「PipBazooka System GBPCHF」というものがあり、なかなか好調なようです。

以前バックテスト結果を見た際には、2006年以降の成績が右肩下がりになっていて、これはライブでは使い物にならなさそうに思っていたのですが、どうやらバグがあったようで現在は右肩上がりのバックテスト結果に置き換えられています。
BN531の対象通貨EURCHFは121証券での取扱いが中止になったこともあり、恐らくはそちらの成績および運用実績を見て、GBPCHF対応のものをというリクエストなのだと思います。

GBPCHFはスプレッドが最低のところでも5pipsと広く、また通貨ペアとしてのボラティリティも高いので、BNシリーズには不向きと思っていて、検討対象外の通貨ペアと考えていました。でも今回のコメントを受けて、少しPipBazookaのポジショニングを見ていたら、FNシリーズのロジックならGBPCHFでも通用するんじゃないかと思って、いろいろとテストを始めました。

実は一度はFNシリーズでGBPCHFは検証しているのですが、収益性やProfitFactorとしてはかなり良いものの、MaxDrawdownが大分大きく、またTP=100、SL=200と言うようなこれまでとはかなり違う設定になってしまいまいした。ボラティリティの高い通貨なら当然の数値なのかもしれませんが、コツコツがっちり型ではなくなってしまったので検証をストップさせていました。

少し方向性が変わってしまうかもしれませんが、新たな領域開拓と言うことで少しチャレンジしてみたいと思います。
  1. 2008/12/13(土) 10:45:12|
  2. 開発方針
  3. | コメント:0

スワップ3倍デーの罠

水曜日(日本時間の木曜日の朝)のロールオーバー時には、スワップが3日分付きますが、そのためにODLでは困ったことが起こることがわかりました。

11/12(水)(日本時間の13日(木)の朝)にエントリーしたEURJPYのBN430とBN820のショートポジションが無事にリミット決済されたもののマイナススワップが3日分付いてしまい、トータル収支がマイナスになってしまいました。

3xSwapDay.png

現在のODLのEURJPYのショートポジションのスワップは1ロット(10万通貨)あたり-2000円となっています。スワップ3倍デーだと-6000円になりますね。
一方、BNシリーズではTakeProfitを5pipsにしていますから、1ロットのポジションがリミット決済されると5000円の収益になります。
と言うことで、エントリーしただけで1ロットに付き-1000円が確定することになり、損をするためにエントリーしていることになってしまっています。

今までにこの現象に気が付かなかったのには理由があります。BN430とBN820のエントリー時間は日本時間の朝6時からとなっているのですが、夏時間の間はロールオーバーが日本時間の朝6時だったので、ロングでもショートでもスワップは一切付かなかったんです。それが冬時間に移行してロールオーバーが日本時間の朝7時に変更になったため、6時台のショートエントリーが決済されず7時以降に持ち越された場合にマイナススワップが付くようになってしまったわけです。

水曜日のBN430とBN820の最初の1時間のエントリーはロングのみにするように設定した方がよいことになりますね。また他の通貨ペアのEAについてもスワップ3倍デーのロールオーバー前にマイナススワップが付く方向へのエントリーは控えるようにした方が良さそうです。

(追記)
上の売買履歴から計算してみるとUSDCHFもマイナススワップが大きく、水曜日はスワップ負けしてしまうことがわかりますね。スワップ3倍デーのマイナススワップ方向へのエントリー回避を仕様として組み込んでみようと思います。
  1. 2008/11/14(金) 07:32:35|
  2. 開発方針
  3. | コメント:0

ATRを用いたストップロス設定

先日よりATRを用いたストップロスの設定をいろいろと試しています。

ATRと言うのは、Average True Rangeの略で、True Rangeと言う、前日の終値と当日の高値と安値から計算できる最大の値幅の過去数日間における平均値のことです。
ATRを用いたストップロス設定は、ボラティリティ・ストップの一つとして有名なようで、過去10日間のATRの3倍(2.7~3.4倍)を設定するのが一般的なようです。

MT4ではiATRというATRの値を求めることが出来る関数があるのでそれを使っていますが、一般的な設定を用いて検証してみてもなかなかうまく行きません。うまく行かないと言うよりも、パフォーマンスは向上するけれども実用的ではないように思われる設定になってしまうと言うところでしょうか・・・。

例えば、BN430で今年2008年のデータを用いて検証した結果を紹介します。
ATRストップを用いるとProfitFactorや勝率と言ったパフォーマンスを評価する指標を見ると格段にパフォーマンスが向上しているように見えますね。いや見えるだけじゃなく確実に向上しているんです。
収益グラフ上では負けなしになっているのに、詳細データ上では2敗分がカウントされているのは、TakeProfitに達して決済されたものの、マイナススワップ分が加算されて収益としてはマイナス勘定になってしまったポジションがあるためです。

BN430オリジナル
BN430-2008-8.gif

BN430+ATRストップ(10日間のATRの3倍)
BN430-2008-8-ATR.gif

実はこの好成績にはちゃんと裏があって、ATRストップを用いた場合のストップロスの設定値を確認してみると、最小259pips、最大840pips、平均約450pipsと、たった5pipsを取るためのストップとしてはとてつもなく大きな設定になっていることがわかりました。過去のデータ上では確かに負けを回避できるストップロスの値なのでしょうが、将来のことはわかりませんので、万が一負けたりすることがあったりするとなかなか損失を取り戻すことが難しいほどの設定のように思われます・・・。

やはり適度に負けて、もし負けたとしても十分損失から回復するぐらいの設定でないと導入には踏み切れませんね。
例えば、ATRの2倍の値をストップロスの値として用いてみると、以下のようになります。ストップロスの設定値は、最小173pips、最大560pips、平均約300pipsとなっています。実際の負けトレードの損失は約195pipsと165pipsでした。値としてはまだまだ大きいように思えますが、何とかその後のトレードで損失からは回復してくれるレベルのように思います。

BN430+ATRストップ(10日間のATRの2倍)
BN430-2008-8-ATR2.gif

もっと精神的に安心できるレベルの設定がないかいろいろと検証していますが、なかなかこれは良いと思われるような設定にたどり着きません。もっと期間を短くしてみたりとか、ATRの時間軸を変えてみたりとか、組み合わせを考えると途方も無くなります・・・。最適な設定も各EA毎に違う出違うでしょうし・・・。

BNシリーズのユーザーの方でATRを用いたストップロス設定について検証してみたい方、いらっしゃいますか?ご連絡いただければ、ご利用中のEAにATRストップのコードを追加したファイルをお送りしますよ。
  1. 2008/09/14(日) 07:23:55|
  2. 開発方針
  3. | コメント:2

ストップロス設定変更

現在のライブ口座でのフォワードテストのストップロス設定は、過去18ヶ月のデータを用いてバックテストを行い、最適値を求めています。
8月末までのヒストリカルデータが取得できたので、2007年3月から18ヶ月分のデータを用いて再度最適値を求めてみました。またフォワードテストに新たなEAを追加したので、それらについても同様に最適値を求めてみました。これらの最適値は今週からのフォワードテストの設定としたいと思います。
新規追加分の設定の他、変更があったのはBN328だけです。最適値が初期設定に近くなると心強いですね。

今週より設定するストップロスの値は、以下の通りです。
BN328(EURUSD):135⇒95
BN323(USDJPY):145
BN417(USDJPY):145
BN430(EURJPY):60
BN531(EURCHF):150
BN728(USDCHF):80
BN820(EURJPY):180

この値を求めるために使うデータの18ヶ月分という期間には特に根拠はありません。ちょうど検証する際に2008年6月までのデータがあり、2007年1月から始めるのがキリがよいと思ったから設定しただけなんです・・・。
この期間について、先日アメリカのパートナーとディスカッションしました。実は18ヶ月と言う期間にはそれなりのテクニカルな意味があるそうなのですが、いろいろ説明を受けたもののテクニカルな知識と英語理解力が乏しいために、残念ながら十分納得するまでにはいたりませんでした。
まぁ何かしらの意味のある期間ならそれでも良いのですが、自分はもう少し短い期間でバックテストするのが良いように思います。ですが、あくまでも感覚的なものでしかなく、その主張を通すだけの論理的根拠がありません・・・。まぁ論より証拠と言うことで、いくつか期間を設定し検証して、より良い結果が得られることを示せば良いだけなんですけどね・・・。

あと、先日コメント欄にご意見頂いた、相場のボラティリティをストップロスの値に反映させる方法として、ATRを用いたストップロス設定を再度検討していますが、なかなか全体的なパフォーマンスの向上には繋がりません・・・。何事も一朝一夕には成し得ないということで、引き続きコツコツといろいろ設定を試してみたいと思います。
  1. 2008/09/08(月) 07:21:56|
  2. 開発方針
  3. | コメント:0

EA公開中止の可能性

現在公開中のEAについては、特にパフォーマンスの著しい低下等、使用に耐えないものになってしまわない限り公開を続ける予定でしたが、現在状況が少し変わりつつあります。

実は、海外の投資グループとの間でのライセンス契約の話が進行中で、その交渉の流れの中で、取りあえず試用版の配布、及び海外向けのEAの宣伝・配布をやめることになりました。ライセンス契約を結ぶ際に日本国内での販売権はそのまま自分が保有できるように交渉しているところですが、先方からの条件次第では、これまでの成果について丸投げすることになるかもしれません。

EAの性能について非常に高く評価してもらっているのは大変ありがたいのですが、今後の可能性を含めてこれまで築き上げてきたものをすべて譲渡してしまうのは、ちょっと抵抗感があるので、うまい落としどころを交渉中です。当初は結構強気で交渉していたのですが、今月に入ってからの大幅なドローダウンを受け、あまり強気には出にくくなってしまいました・・・。

本来ならこの手の話はまだオープンにしてはいけないと思うのですが、いきなりの公開中止と言うことになると、また多くの方にご迷惑をおかけしかねないと思い、取りあえずEA公開中止の可能性があることを事前にお伝えしておきたいと思いました。

なお、もしすべての権利を譲渡するとしても、既存のユーザーの皆様にはバージョンアップを含め、現状と変わらないサポートが行われるよう先方と十分に交渉したいと思いますので、その点についてはご心配のないようお願いします。
  1. 2008/08/15(金) 07:37:12|
  2. 開発方針
  3. | コメント:10

フォワードテスト設定変更

週末にバージョンアップしたEAをご利用者の方々に配布しました。

フォワードテストは、以前と同じ設定内容でテストを続けたいと思っていたので、新たに加えたパラーメータはフォワードテストでは設定内容を変更しない予定でしたが、ストップロスの設定を変更することにしたので、それに併せて新たなパラメータについても変更し、TemporalTP=8、TPadjustment=trueとしてテストしてみることにしました。

ストップロスの設定変更と併せて、今後のパフォーマンスの改善に期待したいです。
  1. 2008/08/11(月) 17:48:28|
  2. 開発方針
  3. | コメント:0

ストップロス設定変更

先週は大分やられましたね・・・。フォワードテストの口座ではでこれまでに積み上げた利益の半分をこの一週間で吐き出してしまいました。
5つのEA合計での成績は34戦27勝7敗と圧倒的に負けが多かったです。各EAとも負けがあったわけですが、中でも新規に追加したBN728(USDCHF)が3敗もしてしまい、大きく足を引っ張る形となりました。BN728をフォワードテストから外して、再度調整することも考えたのですが、BN728はそのままとし、ストップロスの設定変更を試してみることにしました。

先日、ストップロスの幅を変更した場合のパフォーマンスを検証しましたが、一部のEAではよりストップロスの幅を大きくしたほうが、勝敗と損益とのバランスがより良い結果が得られることがわかりました。
もしその際に得られていたストップロスの最適値を設定していた場合、7敗のうち4敗(BN323、BN531、BN728×2)は回避することが出来ていたことになります(うちBN531は未約定)。
ただ、残り3敗分についてはストップロスの幅を大きくした分、損失額は大きくなってしまうので、トータルとしての損失額はこれまでの3敗分の損失に比べると大きくなってしまうのですが、それでも7敗するよりははるかに損失は少なくて済んだことになります。

そこで、新たに得られた7月末までのヒストリカルデータを使って、最近1年半の期間で再度最適値を計算しなおし、今週から新たな設定で試してみることにしました。

今週より設定するストップロスの値は、以下の通りです。
BN328(EURUSD):135
BN323(USDJPY):145
BN430(EURJPY):60
BN531(EURCHF):150
BN728(USDCHF):80

BN430以外は初期設定でのフォワードテストをやめてしまうことになりますが、バックテスト結果と比較して、設定変更のメリットが見られるかどうか確認したいと思います。
バックテスト結果が必ずしもフォワードテスト結果と一致していたわけではないので、あまり意味のない比較になってしまうかもしれませんが・・・。
  1. 2008/08/11(月) 07:04:14|
  2. 開発方針
  3. | コメント:4

TPadjustmentについて

TPadjustmentについてどのような仕様なのかというご質問をメールで頂きました。
なかなか文章だけでは表現しにくいところもありますので、バックテスト結果の画像を交えて説明したいと思います。

一例としてテスターの結果に表示されている売買履歴を示します。
関連するパラメーターの設定はTakeProfit=5、Fitted_to_ODL=true、TemporalTP=10、TPadjustment=trueとなっています。
TPadjustment.png
注文番号14がTPadjustmentの機能が作動した結果です。
ロングしたポジションには取りあえずTemporalTPで指定した10pips分の決済指値が入っていますが、その後プライスが下がっていったために、徐々に決済指値を変更しているのがわかります。決済指値の変更は、オーダープライスからTakeProfitで指定した5pipsのところまで行われます。
なお、この例では値動きがゆっくりだったために1pip毎の決済指値変更になっていますが、必ずしもそうなるわけではありません。

注文番号14の取引を1分足のチャートで示したのが下図になります。ロングした後、プライスが下がっていってしまったので決済指値が変更され、その後変更された指値で決済されているのがわかると思います。
TPadjustment#14

また、売買履歴にある注文番号13のショートポジションについても1分足のチャートを示しますが、こちらはプライスがそのまま下がっていったので、TPadjustmentの機能が作動せず、オーダーより5pips下がったところで、EAがその値動きを検知してクローズ注文により決済されています。
TPadjustment#13

今回の仕様変更により、Fitted_to_ODL=trueとした時の決済をより確実に行うことになると思いますが、バックテスト結果を比較してみると、TPadjustment機能を作動させると若干収益性が低下してしまうようです。
これは恐らくプライスの急変の時などに暫定的に置いた決済指値にてリミット決済される場合の決済値がTPadjustment機能により、TakeProfitで指定した値に近くなっていることがあるためだと思われます。
どちらがより良いのかは、それぞれのお好みで設定していただけたらと思います。
  1. 2008/08/07(木) 07:43:57|
  2. 開発方針
  3. | コメント:2
次のページ

Visitors since Apr. 2008

オススメ情報

推奨国内VPS:CPI

推奨国内VPS:使えるねっと レンタルサーバーなら使えるねっと

推奨米国VPS:SWVPS SWVPS.png

推奨英国VPS:SWTECH SWTECH.png

EA月額レンタル:fx-on.com システムトレードポータルサイトfx-on.com

メールフォーム

名前:
メール:
件名:
本文:

プロフィール

ぼなんさ

Author:ぼなんさ
MT4のEA開発を始めました!
プログラミングは素人なのでオリジナルを作るだけの能力はありません。
開発というよりは改良の方が正しいかもしれませんが、いろいろと勉強しながら良いパフォーマンスのEAを作って行きたいと思います。
めざせMT4自動売買でがっちり!

最近の記事

最近のコメント

カテゴリー

MT4・自動売買関連リンク

このブログをリンクに追加する

各種ランキング参加中

シストレナビ
FC2 Blog Ranking
にほんブログ村 FX
人気ブログランキング
FXブログランキング
ポプログ人気fxブログランキング
FXブログランキング
FXランキング
外為ランキング
CoRichブログウォッチ!
マネポケブログランキング!
先物・為替・投資サイトランキング
FXランキング
ランキングウェブ
有名ブログランキング
FXランキング

RSSフィード

リスクについて

・FX取引(外国為替保証金取引)は、元本が保証された取引ではありません。
・レバレッジにより大きな利益が得られる可能性がある反面、取引開始後、ご自身にとって為替レートが不利な方向に変動した場合は大きな損失を被るリスクがあるのでご注意ください。
・FX取引をなされようとする場合は、ご自身でリスクをご理解し、十分にご検討されるようお願いします。
・本ブログに掲載している情報はFX取引やその他、投資に関する勧誘、助言などでありません。
・掲載された情報をご利用される場合は、ご自身の責任として頂きますよう、よろしくお願いします。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。