スポンサーサイト

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

1月のリアル運用結果(全自動EA)

2010/01/04?2010/01/31(サーバ時間)までに決済されたポジションについてまとめた。
もう二月末日になってしまった。つらい出来事が重なったことがあり掲載がまた遅くなった。
年明け一月は、結果が思わしくなかった。大きなマイナスにはならずに済んだ。

前回の記事で書いたように、昨年末をもっていくつかのEAを停止した。
代わりのEAを作り、フォワード・テスト等を進めてきてはいたものの、年明け一月からポートフォリオに組み入れることはできなかった。
今回は4つのEAのみによる運用結果である。

1.ポートフォリオとしての損益曲線
FXCum1001_Portfolio

2.EA毎の損益曲線
FxCum1001_Each

続きを読む...

スポンサーサイト

theme : システムトレード
genre : 株式・投資・マネー

tag : EA運用 ポートフォリオ トレード結果

EA(自動売買システム)への思い

私はシステムが好きだ。

何かの原理や法則が見つかって、そこからうまくゆく部分をうまく抽出して、
それを作った人が想定した通りに、与えられた役目を全うするために、
ただひたすら一生懸命に働き続ける、そういうシステム全般が好きだ。

自動売買システム(EA)は、波力発電システムに似ていると思う。

続きを読む...

theme : FX
genre : 株式・投資・マネー

tag : EA 自動売買 波力発電 システム

MT4のEA/Script/Indicatorの動作の違い?マルチスレッドの観点から

先日いただいたコメントについて自分なりに調べてみて分かったことがあるので、
それをメモがわりに記事にさせていただく。
一方、自作DLLでマルチスレッドの対応が必要となる理由について以前の記事で述べた。

EA/Script/Indicatorで表向きの動作がそれぞれどのように異なるかは、書籍、その他サイトで説明されているので周知の通り(実は意外と明確な違いについて知られていない?)だが、MT4の内部的にはどのように実現されているのだろうか?

これまで、「EA/Script/IndicatorはMT4ターミナルのメイン・スレッドとは別のスレッドを割り当てて動いているだろう。」と思っていた。スレッドを共有したり、使い回したりするかもと思っていた。
いただいたコメントについて考えてみると、スレッドの割り当てをどのようにしているかを調べることで
何かが判明しそうだ。EAとScriptは一つのチャート・ウィンドウに一つしかのせられないが、Indicatorは複数のせられる。この違いとMT4でどのようにEA/Script/Indicatorを動かしているかが密接だろうと思う。

EA/Script/IndicatorのそれぞれでWindowsAPIを使って自身のスレッドIDを取得、結果をチャートに表示させてみた。さらにタスクマネージャを起動して、"terminal.exe"のスレッド数がどのように変化するかを確認した。

結果として、EAをチャートにのせるとスレッド数が一つ増え、チャートから削除すると一つ減る。またチャートにのせる度に表示されるスレッドIDは異なる数値だった。何度やってもそうなった。Scriptも同様の結果となった。EAとScriptを二つ同じチャートにのせるとスレッド数が二つ増え、スレッドIDはそれぞれ別の値だった。

どうやら、「EAとScriptの場合は、チャートにのせる度に専用のスレッドを作成、割り当てて処理をさせ、チャートから削除されればスレッドも削除され、スレッドを共有したり使い回したりということはない。」といえそうだ。
(安直な調べ方なので、絶対にそうなっているとはいいきれない。。。)

しかし、Indicatorの場合はEA/Scriptと結果がちがった。

続きを読む...

theme : MT4自動売買
genre : 株式・投資・マネー

tag : MT4 EA Script Indicator DLL IndicatorからDLL マルチスレッド 排他制御 同期処理

MT4バックテストのモデルと指値注文の約定(バー実体部分に関して)

注文のオープン/クローズの価格とタイミングをTick毎に判断して成り行き注文をするEAでは、バックテストにおいて3つのモデル(Every tick/Control Points/Open prices only)のどれを選ぶかで結果が大きく異なってくるだろうということは周知の通りだと思う。

では、指値、逆指値で新規注文する場合、決済指値(T/P)、決済逆指値(S/L)を指定して発注するEAでは、バックテストの3つのモデルでどのように処理されるか、結果がどう違ってくるかが気にならないだろうか?

約定価格があるバーの実体部分にある場合とヒゲ部分である場合で結果が違ってくるかも知れないので、まずはバーの実体部分に約定価格が含まれる場合について調べてみた。

方法としては、経済指標トレード向けセミオートEA「DailyImpactV2x」を使って、先日の経済指標トレードのバックテストをすることで確認してみた。

結論としては、
・3つのモデルで約定価格、決済価格に差はなかった。
・価格がバーに含まれていれば、サーバ側はそのバーの時刻で指定された価格で注文が通ったことにする。
・Open prices Onlyのモデルでは、直前のバーに指定の価格が含まれていれば、次のバーのオープン時刻に指定した価格(このバーに含まれなくとも)で約定したことになる。

ということが分かった。

シミュレーション・モデルに関してOpen prices Onlyモデルは、
1.バーのオープン時のTickを取得、受信したことにする。
2.サーバ側の処理が行われ、直前の完成したバーに約定価格が含まれれば、このタイミングで約定したことにする。
3.EAのstart()関数を呼ぶ処理をする。
4.1に戻る。
のようになっていると推測する。

ヒゲの場合でも約定するかはあとで確認する。

比較結果の詳細を以下に示す。図が多いので追記の形にした。

続きを読む...

theme : MT4自動売買
genre : 株式・投資・マネー

tag : DailyImpact 約定 バックテスト

MT4EAに自作DLLを組み込む?その3(マルチスレッドの考慮)

自作したDLLを複数種類のEAから同時に共有して使う場合、またはDLLを使用する同じEAを複数同時に動作させる場合などを考慮すると、マルチスレッドの対応が必要になってくることを前回の記事で軽く触れた。

ただし、複数同時に動くEAがデータを共有したり協調したりということがなく独立して動作する関数を呼び出す場合、プログラムの記述でいえばグローバル変数や共通のクラスにアクセスするということがない関数であれば、マルチスレッドに対応する必要はない。
関数内で作成され破棄される変数やオブジェクトは、同時並行に動くスレッド間で独立したメモリ領域へのアクセスになるからだ。

DLLのグローバル変数等にアクセスする関数をEAから呼び出す場合、同じMT4ターミナルで実行される複数のEAでグローバル変数を共有して使用することができるので便利?である反面、スレッド間で同時アクセスによるデータ破壊を防ぐための排他制御、変更の通知などの同期処理が必要となる。

単純なグローバル変数でEA毎に独立でよいのならスレッド・ローカルの指定をすることで対応できるが、EA間で共有することが目的あるいはクラス・オブジェクトである場合は、WindowsAPIを使用したマルチスレッドの排他制御、同期処理が必要となる。

なお、同じPC上の別のMT4ターミナルで動作するEA間でデータを共有または協調動作させるために、DLLのグローバル変数を利用するやり方は使えない。
MT4ターミナルがそれぞれ別プロセスとして実行されており、DLLがアタッチされて使用するメモリ空間はプロセス毎に独立しているからだ。
これを実現するには何らかの方法でプロセス間通信をやる必要がある。
参考1:「MT4他業者の価格を表示させる。/共有メモリの活用。」

さらに、別のPC上それぞれのMT4ターミナルで動作するEA間でデータを共有、協調動作をさせたい場合、ネットワークでの通信処理が考えられるが実装が大変だ。
そもそもMT4がネットワーク処理をしまくっているのだから、こちらで実装することなくそれを活用できないか?
同じ口座であればメッセージやコマンド等を注文に埋め込んで、送信してしまうという手がある。
参考2:「同一口座の他PC間 MT4の通信?」

だんだんと話がズレてしまったが、MT4EAに自作DLLを組み込む場合にマルチスレッド・プログラミングが必要となる状況とその理由についてまとめてみた。。。が、十分ではないかも知れない。
WindowsAPIやマルチスレッド・プログラミングの説明については、参考書籍、参考サイトが沢山あるのでそちらに解説をゆずりたいと思う。

theme : Meta Trader 4
genre : 株式・投資・マネー

tag : C++ DLL EAからDLL MT4EAに自作DLL EAとマルチスレッド マルチスレッド プロセス間通信 排他制御 同期処理

☆当ブログとFX取引に関するご注意☆

もし、当ブログを閲覧、参考にしていただいた上で、FXまたはその他取引に関心を持たれた方は、以下の点にご注意して下さい。

・FX取引(外国為替証拠金取引)は元本や利益が保証された商品ではなく、市場環境の変化や相場の変動により損失が発生する場合があること。

・FXおよびその他取引をする場合は、各種のリスクを理解し、十分に検討し、かつ慎重に行う必要があること。

・当ブログで掲載、紹介している情報は、FXおよびその他取引、投資に関する勧誘、助言等ではないこと。

・当ブログで掲載、紹介している取引手法、ソース・プログラム等を用いた結果、いかなる損害が生じても当方は一切の責任を負わないこと。

投資、取引をされる場合は、必ずご自身の責任で行って下さい。
よろしくお願いいたします。
プロフィール

Dr.ヘパ


Author:Dr.ヘパ

カテゴリ&検索
最新記事
最新コメント
最新トラックバック
RSSリンクの表示
月別アーカイブ
カレンダー
01 | 2010/02 | 03
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 - - - - - -
つぶやき
★DailyImpact(有償版)★
リアル口座で運用できる有償版
販売開始しました!

ご購入、お申し込み等の詳細については、下記リンク先のブログ右上にショッピング・カート「ブーボーのトレーディングキット工房」へのリンクがありますので、お手数ですがそちらをご参照下さい。

ブーボーの
トレーディングキット

Ⅰ.経済指標トレード向けEA、DailyImpactは、経済指標発表による突発的な値動きを捉えることで、利益を得ることを目指したセミオートEAです。

Ⅱ.経済指標トレードは、「指標トレード」「News Trading(ニューストレード)」とも呼ばれ、最近注目されている手法です。

Ⅲ.経済指標発表によるトレードは、いつ大きく動く可能性があるかわかっているので有利です。

Ⅳ.一方、瞬時に大きな値動きが発生するので、手動での仕掛け、手仕舞いは難しいことが多いです。

Ⅴ.高速に計算・発注可能なEAであるDailyImpactにより、手動よりも素早く、同時に多くの通貨ペアで、しかもその場にいなくても経済指標トレードができます。
★DailyImpact(DL版)★
ダウンロード版
期間限定で試用できます!!

ダウンロード、使用方法の詳細は
以下のブログを参照して下さい。



DailyImpact(ダウンロード版):ブーボーのトレーディングキット

   ☆ブーボーの
トレーディングキット

↓↓↓アンケートにご協力お願いします。↓↓↓
ブログ・ランキング
リンク&ブロとも申請
アクセス・カウンタ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。