けトレードの合計金額。取引1回あたりどれくらいの利益が期待できるかということになります。・絶対ドローダウン初期資金がいくら減ったか。・最大ドローダウンテスト期間において最大の損失額。・相対ドローダウン資金が最大何パーセント減ったか。・総取引数テスト期間において取引した回数。・売りポジション(勝率%)売りトレードの回数と勝率。・買いポジション(勝率%)買いトレードの回数と勝率。・勝率(%)全トレードに対する勝ちトレードの割合。・負率(%)全トレードに対する負けトレードの割合。・最大勝トレード1回のトレードで勝った最大額。・最大敗トレード1回のトレードで負けた最大額。・平均勝トレード勝ちトレードで勝った金額の平均。・平均敗トレード負けトレードで負けた金額の平均。・最大連勝(金額)連勝の最大回数と、その時の利益。・最大連敗(金額)連敗の最大回数と、その時の損失。赤色で書いた、特に重要な項目について少し補足します。■純益このEAがどれだけ利益を出すのかになるので、まず確認すべき項目です。バックテストでプラスにならないEAが使われることはまずないと思います。■プロフィットファクタリスクに対してリターンがどれだけ大きいかを表します。1未満だと損失が出ていて、1より大きいと利益が出ていることになります。これも大きいほうが良いのですが、バックテストでのプロフィットファクタは大きすぎると逆に注意が必要です。プロフィットファクタが大きすぎることは、カーブフィッティングが疑われるからです。カーブフィッティングとは、バックテスト期間の相場にぴったり合うように、パラメータ等を過剰に最適化することです。過去の相場はあくまで過去のものなので、未来の相場には当てはまらず役に立たない、逆にマイナスになる、という場合も多々あります。それを理解して、あくまで参考程度に留めましょう。一般的に1.5~2.0くらいが優秀と言われます。■最大ドローダウン連敗も含めて、実際に連続で失った金額で、最も負けた時の負け幅です。これだけのリスクは覚悟する必要があるという意味になるので、これらを元に用意すべき資金などを判断するのに使用します。■総取引数これ自体は成績には直接関係ありませんが、この数字が小さいと各指標の信頼性が下がります。最低でも100以上が望ましいです。平均敗トレード勝率だけではあまり重要ではありません。勝率の数字は1回の勝ち/負けの金額に関わらないので、例えば9回負けて1回勝っても(勝率10%でも)その1回でトータルがプラスになることもありますし、その逆の勝率90%でも1回の負けでトータルがマイナスになることもあるためです。これはEAの特徴によりますのでどちらが良いというものではありませんが、このように勝率に加えて、平均の勝ち/負け額とのバランスで判断することが重要になります。レポートは保存することができます。[レポート]タブの中で右クリックし、[レポートの保存(S)]をクリックすると、保存先を指定して任意の場所に保存できます。レポートの保存レポートはグラフの画像と共にHTML形式で保存されるので、後から見るのにも便利です。保存されたレポート次の回へ「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。本格的にEAを作ってみよう。テクニカル指標を使用するいよいよテクニカル指標を使って本格的にEAを作ってみましょう。本格的に、と言ってもまずはシンプルに、移動平均線に対して終値が上抜ければ買い、下抜ければ売る、という戦略にします。1ポジションのみで両建てなし、いわゆるドテン注文です。時間軸を1時間、25本での単純移動平均として作りましょう。始めに断っておきますが、この戦略が有効だという意味では全くありません。テクニカル指標を使ったEAを作る例としているだけです。それでは前に作った簡単EAと同様に、[テスト]フォルダの下に[EA_MA]という名前のEAを新たに作成しましょう。やってみよう!簡単EA作成1そして、次の変更を加えます。他のEAと当らない値を使用する。}//+------------------------------------------------------------------+今までの説明で、内容も大体理解できるのではないかと思いますが、前の説明と重複する部分を除いて説明していきます。使用する移動平均線の条件です。入力パラメータとして宣言しています。);ここでまず終値を取得しています。標準で用意されている、終値を取得するiClose()関数を使用しています。iClose()関数の引数は以下のとおりです。symbol終値を取得する通過ペア名。timeframe終値を取得する時間軸。時間軸は、以下のように定義されています。shift終値を取得する足の位置。(0~)最後の引数は0から始まる足の位置を指定しますが、数字が小さいほど新しい足を表すため0が最新の足になります。ここで最新の足とは、現在形成中の足のことですので、取得される値が変わる事があります。確定済みの値を使用したい場合、1が確定済みの最新の足ということになります。このコードでは1つ前と2つ前なので、確定済みの最新2本の終値を取得しています。チャートの価格を取得する関数は、iClose()の他にもiOpen()、iHigh()、iLow()があります。名前から分かると思いますが、それぞれ始値、高値、安値を取得する関数です。使い方はiClose()と変わりません。);ここでは移動平均の値を取得しています。標準で用意されている、移動平均を計算するiMA()関数を使用しています。iMA()関数の引数は以下のとおりです。symbol移動平均を計算する通過ペア名。timeframe移動平均を計算する時間軸。時間軸は、以下のように定義されています。period移動平均の期間。ma_shift移動平均線をシフトする本数。ma_method移動平均線の種類。種類は、以下のように定義されています。applied_price移動平均を計算する価格の種類。種類は、以下のように定義されています。shift移動平均の値を取得する足の位置。(0~)終値と同じように1つ前と2つ前の位置の移動平均を取得しています。引数として渡す条件が、入力パラメータとなっています。標準で用意されているテクニカル指標を取得する関数も、iMA()の他にもたくさん存在します。以下を参考にしてください。}ここはコメントにも書いてあるので分かると思いますが、上抜けた場合と下抜けた場合に、それぞれの注文の方向を決めています。close1とclose2が1つ前と2つ前の終値、ma1とma2が1つ前と2つ前の移動平均線の値なので、直近のclose1がma1を超えていて、その前のclose2がma2未満の場合、上抜けたと判断しています。下抜けはその反対ですね。後はorderCmdに代入された注文種別によって取引を行っています。この辺は簡単EAとほとんど変わりませんので分かるかと思います。コンパイルが通ったら、バックテストをしてみましょう。赤い線が移動平均線で、上抜けと下抜けで売買していることが確認できます。成績は見てもらえば分かるので載せませんが、まぁずいぶん負けてますwこんな単純な戦略だけで勝てたら誰も苦労しないという話ですよね。実際は独自の複雑なインジケータなども組み合わせながら戦略を立てるかと思います。次は、独自のインジケータを使ったEAを作ってみたいと思います。次の回へ「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。インジケータ一覧Twitterもよろしくお願いします。https://twitter.com/mt4programブログランキングにご協力よろしくお願いします。m(._.)mにほんブログ村お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。★相互リンク募集中★トレードステーションと株・FX自動売買で暮らす茶トラがFX検証中。人気の投稿[MT4プログラミング]MT4のチャート上に矢印を表示する。バックテストを活用しよう。本格的にEAを作ってみよう。カスタム指標を使用する[MT4インジケータ]フラクタルバンドを販売開始しました。バックテストを活用しよう。本格的にEAを作ってみよう。