プロが教える店舗&オフィスのセキュリティ対策術

従来、私は、エクセルを利用してバックテストしていましたが、MT4という優秀なソフトがあることを知り、MT4によりプログラムを書いてバックテストしたところ、エクセルでのバックテストと異なった結果がでるのです。具体的には、本来ならば決済注文が成立しているはずであるにもかかわらず(エクセルでは決済住みとなる)、成立していなかったり、
 orderCloes error 4051
invalid ticket for OrderClose function
などというエラーメッセージがでるのです。

また、プログラム(EA)のミスかと考え、ブログラムの内容も検証したのですが、特におかしな点もありませんでした。その証拠に、一定期間のデータによりストラテジーテスターにより結果をみると正常に機能しているからです。

以上、どうもストラテジーテスターによるバックテストには、あまり信頼性がないのではないかと感じるようになりました。
 エクセルによるバックテストとMT4によるバックテストではどちらが信頼性が高いのでしょうか。
 経験なども踏まえて回答していただければ幸いです。

A 回答 (3件)

FXDDでは9月に4つのEAが紹介されました。

プログラムについては完全にコンパイルされていて、内容はわかりません。しかしバックテストしてみると、共通していえることは正確なエントリーがされているということです。あなたはプログラムを自作できる方と思います。そこで、エントリーのタイプが似てる感じのEAを紹介します。それとEAとそのプログラムが閲覧できるサイトです。実際に運用できるかどうかは、自己責任でお願いします。EAは
http://codebase.mql4.com/4546
です。サイトは
http://codebase.mql4.com/experts/page1
です。
なお、MT5が近くリリースされます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私が考えたプログラムを記載しましたが、これを実行したところ、
期待した効果はでませんでした。
「数打てば当たる」的な発想で、繰り返し発注を行ったのですが、だめでした。
 基本に立ち戻り、「FX メタトレーダー入門」という本に記載されているサンプルプログラムをまねて、エントリープログラムを書いたところ、うまく発注できるようになりました。まずは、人真似を徹底的な行うことが近道だと感じました。
 さて、ご教示いただいたEAとサイトですが、英語ばかりで、解読に時間がかかりますが、少しずつ研究してくいつもりです。
 ありがとうございました。

お礼日時:2009/10/03 20:55

EAの改良の方向性・考え方としましては、3点あると思います。

ポジションのチェック構文をつける、エントリーポイントのチェック構文をつける、エントリーポイントの複線化(ポイントを前後にすこし幅をもたせる)等があるかと思います。
    • good
    • 0
この回答へのお礼

貴重なアドバイスありがとうございます。
さて、
エントリーを確実にするために繰り返し処理をしました。
以下のとおりです。
しかしながら、これでも確実にエントリーできません。

同じように、クローズを確実にするために以下のとおりのプログラムにしましたが、これでも確実にクローズできません。
 なにか、問題点があれば、教えてください。
//エントリー 買いシグナル
if(pos == 0 && Ask <= kijun )
{
while(ticket == -1)
{ ticket =
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",0,0,White);
}

if(ticket !=-1)
{
pos++;
close=Ask+haba;
slb1=Ask-sl*Point;

}
}


//買いポジションを決済する
if((pos==1 && Bid >=close) || slb1 >= Bid )
{
int n = OrderClose(ticket,Lots,Bid,Slippage,Yellow);
}
if(n !=false)
{
pos--;

}

お礼日時:2009/09/29 00:12

MT4のストラテジーテスターで検証する際には、Visual modeでもう1度テストしてみてください。

決済ポイントや新規注文ポイントがどれくらい正確にいっているかみてください。ずれている場合はプログラムを手直しする必要があると思います。具体的には、注文ポイントでのプログラムを1回の注文だけで終わらせず、約定するまで、繰り返し注文がでるように書き換えてみては、いかがでしょうか。完成度の高いEAは、ポイントのずれが少なく、比較的正確なポイントでエントリーしています。
    • good
    • 0
この回答へのお礼

 ありがとうございます。一読して、「ハッ」とさせられました。
 私は、今まで、プログラムどより忠実に発注されるものと誤解していました。手動発注の場合には、100パーセント約定するので、自動発注の場合も同様であろうと思い込んでいました。
 ところで、約定するまでの繰り返し注文というのは、具体的には、-1あるいは、falseが戻り値として戻ってこないまで繰り返すということでしょうか。

お礼日時:2009/09/26 19:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!