おいしい情報

掲示板トップ≫掲示板をみる
57 takechanさん
おいしい情報をゲットすると、どうしても独り占めにしたくなるのが人情です。
でも、そんな了見の狭いことを言わずに、気前よく情報共有しましょうよ、というスレッドです。
2010/05/06 13:13
書き込みする

【新しい書き込み順に表示】古い書き込み順に表示

57_8 takechanさん
この情報は、めっちゃ高いっすよ。

読んだ方は、お一人様につき、金1万円を申し受けます。(笑)


メタトレーダーのEAによる自動売買で、たとえば、ポジションを最大でも1つしか持ちたくない場合、バックテストではうまくいくのに、なぜか実売買ではポジションが複数(時には何十、何百も)発注されてしまう事件(いわゆる「多重発注」)が後を絶ちません。

そこで、多重発注を防止するために、私の場合は、これまで以下のようなコードを書いてきました。

まず、

int pos = 0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue;
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL) pos++;
break;
}
}

として、ポジション数を確認します。その上で、新規発注をする際に、

if(売買条件1 && 売買条件2 && pos==0)
OrderSend(…);

として、ポジション数が「0」のときだけ新規発注できるようにするわけです。

しかし、このプログラムには、私自身ずっと疑問がありました。

1.OrderSend()関数が成功した場合

この場合は、ticket番号が直ちに返されるため、次にティックが更新された時にポジション数が「1」になるので多重発注は防止できます。

2.OrderSend()関数が失敗した場合

この場合は、実際にもポジション数は「0」のままなので、多重発注の問題ははじめから発生せず、あとは、OrderSend()関数のリトライの問題が残るだけです。

3.OrderSend()関数が成功も失敗もしない場合

疑問なのはこの場合です。「プログラミングの常識」からすれば、この場合メタトレーダーは、それより先のプログラムを読み込まずに、そこで、ストップ状態になるので、いくらティックが更新されても多重発注しないはずです。

しかし、この「プログラミングの常識」というのは、本当に確かなのか、という疑問です。

つまり、何らかの事情により、その先のプログラムが読み込まれ、それがティックごとに繰り返されると、ポジション数が「0」のままなので、複数のOrderSend()関数が実行され、多重発注が生じるのではないか、ということです。

このような疑問は、ずいぶん以前から持っていて、パパやママにも相談したのですが、「わしらにはわからんがねー。」と言われたので(笑)、自分なりにいろいろ調べたのですが、解答が見つからず、悶々としていました。

そこで、先日、「FXメタトレーダー実践プログラミング」の著者である豊嶋先生に、直接問い合わせることができ、豊嶋先生から驚くべきご回答をいただきました。

先生によりますと、EAを自作する人の多くは私と同じようなコードを書いて、うまくいっているのですが、ごく稀に多重発注されたケースがあるとのことです。

そこで、豊嶋先生が考えた解決策として、

int ticket = OrderSend(…);

というように、OrderSend()関数の返し値をいったん変数に置き換えることによって、なぜか多重発注がなくなるらしいです。

しかし、このへんのカラクリについては、豊嶋先生ご自身も釈然としないので、著書には触れていないそうです。

恐らく、OrderSend()関数の返し値をいったん変数に置き換えることによって、「成功」か「失敗」のいずれかが確定するまで、プログラムの読み込みを停止させる効果があるのだろう、と私は考えています。

私が知る限り、このようなコードを見たことがないので、ほとんどのEAプログラマーが知らない裏ワザなのかな、と思って投稿いたしました。

追伸

1万円は、私の口座に振り込んでおいてくださいね。(笑)
2010/07/04 23:43
57_7 takechanさん
本当においしい情報かどうかわかりませんが…。

ちょっと前に、自作したシステムです。

検証期間 08/6/16~09/7/31
トータル利益 494960円(単利計算)
トレード回数 112回
勝率 81.25%
最大DD額 -26180円
PF 4.73
PR 1.09
複利計算による資産増加率 16.16倍
複利計算による最大DD率 -15.84%

これは、日経225先物(ミニ)とTOPIX先物(ミニ)とのアービトラージ(サヤ取りの一種)戦略で、いわゆる「寄り引け」ではなく「寄り寄り」トレードのバックテストです。株式や先物取引の経験の無い方はピンとこないかもしれませんが、オークション方式の相場では、約定しないことがあります。とくにサヤ取りの場合、片方が約定しないと、命取りになります(損切りをつけないため)。この点、朝の寄り付きは、よほどのことがない限り約定するので、安全のために「寄り寄り」としたわけです。

検証期間が短いのは、TOPIX先物(ミニ)自体が新しい商品なので、仕方がありません。

私がこれまで作ったシステムの中で最高傑作です。というより、「この世の中」で最高傑作でしょうね。複利計算による資産増加率が16.16倍ということは、100万円が2年で2億5000万円になる計算です。しかも、最大DD率((ピーク時の資産-最大DD額)/ピーク時の資産)が、15%台ということは、非常に安定しています。言うまでもなく、その後のフォワードテストでも全く衰え知らずで、現在でも同じペースで勝ち続けている不死身の(堅牢性のある)システムです。

ところが、このシステムは、3~4回実運用をして、すぐに運用を中止しました。実運用上重大な欠点があったからです。すなわち、エントリー条件で当日の始値がカギになるところ、「寄り寄り」トレードのために、朝の寄り付き前に、「板情報」から当日の始値を予測しなければならないということです。しかし、この予測がどうしても当たらないわけです(建玉加重平均などを利用して必死に計算しましたがダメでした)。結局、このシステムは幻のシステムとして、私の心の中に封印されたままです。(泣)

前置きが長くなりました。ここからが本題です。

実は、このシステム、計算期間やエントリー条件などのパラメーター数が非常に少く、かつ、それらのパラメーターを多少変えても、不思議なことにパフォーマンスがびくともしないんです。

つまり、本当に不死身の(堅牢性のある)システムは、

1.パラメーターの数が少ない
2.パラメーターを多少変えてもパフォーマンスが落ちない

ということをこの時悟りました。とくに、計算期間のパラメーターを多少変えても大丈夫ということは、どんな時代、どんな相場状況でも生き残れる可能性が高いことを意味します。

なので、あるシステムが優れているかどうかは、最終的には実運用してはじめて分かることなのですが、上記1.2を基準にすれば、おおよその事前判断が可能なのではないかと私は考えています。

ところで、メタトレーダーのストラテジーテスターには、optimization(自動最適化)機能がついています。知らない方のために、簡単に説明させていただくと、optimization機能というのは、たとえば、移動平均線の計算期間を、10~30という具合に範囲指定すると、その中で利益の出そうな計算期間をメタトレーダーが自動で割り出してくれるものです。もちろん、これでガチガチに最適化したシステムは危険です。しかし、このoptimization機能は、システムの堅牢性を知る上でとても役に立ちます。

ご承知の方も多いかもしれませんが、optimization機能を使用した場合、PFが1.0以上のものしか表示されません。なので、たとえば、2本の移動平均線のクロスサインシステムの場合、長期線を10~50、短期線を3~10という具合に範囲指定して、optimization機能を発動すると、PF1.0以上の「優良候補」だけがいくつか表示されるわけです。ここで、もしも、その「優良候補」の数が多いシステムは、パラメーターを多少変えても堅牢性があることに他なりません。

ということは、あるシステムがあったとして、これにoptimization機能を発動させた場合、「優良候補」の数が多ければ多いほど、そのシステムには堅牢性があることになり、「優良候補」の数が少なければすくないほど、そのシステムには堅牢性が無いことになるわけです。

あるシステムが末永く使えるかどうかを、比較的簡単に予測するのに、メタトレーダーのoptimization機能は有効ではないかというのが、私の結論です。

まあ、最終的には実運用してみないと真偽はわかりませんが、少しでも、システムの堅牢性を事前にチェックするのには、いい方法かなと思っています。
2010/05/12 11:28
57_6 takechanさん
スラさん

トレード手法は、10人10色 千差万別…。

でも、スラさんがこの掲示板にはじめて登場してから、ずーっと思っていることですが、スラさんと私は相場に関する思考がほぼ同じなんです。

PCを使うか、裁量でこなすか、の違いがあるだけで。

追伸

また、スラさんのブログに遊びに行きますね。(^0^)V


2010/05/06 16:38
57_5 スラさん
つー事は・・・・
思考を巡らせる人の行き着くところは同じって事っすね~;

ん~~~すげー勝率あがりましたね~~

はぁ~~しかしスラの口座は・・・・ひぇ~~~
掲示板かいてる場合じゃないのに何を余裕かましてるんだか;
2010/05/06 16:23
57_4 takechanさん
なんだか、このスレッド封印したくなってきたなあ。

いやいや、そんな了見の狭いことでは、sarahさんのサインがもらえなくなるし。(笑)
2010/05/06 16:12
57_3 takechanさん

もーう、スラさんったら…。

私も両建ては好きなんです~~。

内緒にしてたのに…(笑)

USD/JPY5分足での両建戦略です。

勝率 77.8%
PF 1.74
最大DD額/初期投資金額(100万円) 4.1%
2010/05/06 15:49
57_2 スラさん
おおおおおおお~~~(・・)パチパチパチ
立証したわけですね~

今日から連休明けの平日で忙しいっす;

ちなみにスラはドテンをやったこと1回もないんですよ。。
頭では理論は分っているけど~どうもしたくない手法なんすよね。。

ではスラも、お返しにスバラシイ情報を。。
むしろシストレこそ、ちからを発揮できるのが両建てと思っています。
ある状況 で ある条件 が 揃った時に 両建て。
って~カッコイイ事いってもスラにはここまで。。
これらをシステム化には出来ませ~ん;

どうしてシストレに向いているのかって?
だって手動で利益出るもん。。。。
ただ手動の場合、、とてつもなく頭が混乱するデメリットがあるから。
PCならサクサク計算しますからね~;
2010/05/06 14:14
57_1 takechanさん

はっきり言って、この情報は高いですよ。(笑)

よほど迷いましたけど、トレコミュ様の熱意に敬意を表して公開することにしました。

画像の上のシステムは

勝率 27.38%
PF 0.67

のゴミ以下システムです。

画像の下のシステムは

勝率 58.9%
PF 1.39

の普通のシステムです。

実は、どちらも全く同じテクニカル指標を使いました。あの有名な、二本の移動平均線(5本と25本)のクロスサインを利用したシステムです。

一体何が違うかというと、

上は、利食いも損切りもなしでドテンを繰り返しています。

下は、ドテンサインを無視して、利食い(1.0円)と損切り(1.0円)をつけての持ちっぱなしです。

ドテンシステムがいかにダメかという証明です(もちろん例外はあると思いますが)。

ドテンを繰り返すと、ドテン(とんで)もないことになるぞ~~。
2010/05/06 13:34

スレッド検索
検索する

新規スレッド作成

外国為替証拠金取引の外為オンライン
トレコミュまじめなFX無料めるまが
トレコミュ掲示板
タートルズ達の成長日記
ターシャ
ターシャ

[02/07 08:02更新]

1勝1分

フリット
フリット

[02/05 16:24更新]

週末の反省

natumi
natumi

[02/04 12:55更新]

良ければポンっとお願いします ↓↓↓ 為替ブログ FX 女性投資家 30日(月)…-36.1pips 31日(火)…+10pips 1日(水)…+10pips 2日(木)…+10pips ちょっとづつ回復させ...

アイ
アイ

[02/03 15:27更新]

1月第4週目と1月の成績

レナ
レナ

[02/01 22:15更新]

1月の結果

Mihawkfx(ミホークエフエックス)
Mihawkfx(ミホークエフエックス)

[02/01 05:51更新]

デイトレ派のバナー・右プロフ画像下のバナーの応援クリックお願いします! 応援クリックをよろしくお願いします。 モチベーション維持や更新頻度・ブログレベルにかかわります。 ...

Gootin
Gootin

[07/23 22:24更新]

週トレード結果

DMM FXは初心者向け