地味でも勝てるEA

EA制作の記録

単純移動平均線のシステムをATRとPipsで比較

今回は、前回まで利確と損切についての検証をしていましたが、

 

単純移動平均線のシステムにATRとPipsによる利確と損切について

 

比較していきたいと思います。

 

今回は1時間足のEURUSDで検証していきます。

 

ヒストリカルデータはTDS(Tick Data Suite)を使用しています。

 

TPSLについてはざっくりとした数値で、損小利大のものを選んでみていきます。

 

それでは見ていきましょう。

 

まずはPipsから

 

結果がこちら

 

↓Pipsロングとショートポジション

 

↓Pipsロングポジションのみ

↓Pipsショートポジションのみ

続いてATRを見ていきましょう

 

ATRロングとショートポジション

ATRロングポジションのみ

ATRショートポジションのみ

上記の結果だけを見るとATRに優位性が見られますが、Pipsのほうがトレード回数が

 

多いため、値動きの大きい時期に損切や利確が早いペースで行われたのではないかと

 

推測されます。

 

しかしながら、ATRを使ったTPSLでは、割とショートとロングのバランスが悪くないと

 

思います。

 

次回はこのシステムにテクニカルクローズロジックを搭載し

 

比較していきたいと思います。

 

使用時間足 1時間足

 

使用スプレッド 15

 

使用通貨ペア EURUSD

 

使用関数 

double  iATR(
   string       symbol,     // symbol
   int          timeframe,  // timeframe
   int          period,     // averaging period
   int          shift       // shift
   );

double  iMA(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   int          ma_period,        // MA averaging period
   int          ma_shift,         // MA shift
   int          ma_method,        // averaging method
   int          applied_price,    // applied price
   int          shift             // shift
   );

利確と損切りについて その3

今回は、前回から続いて利確と損切について検証していきたいと思います。

 

今回は、フィルターなしのトリガーのみで構成された前回とは別の簡単なEAを使い

 

ATRとPipsを比較し、別のシステムでもATRに軍配があげるのか、

 

またはPipsが上回るのかを見ていきたいと思います。

 

今回は使用時間足を5分足に設定し、通貨ペアは同じくEURUSDを使用します。

 

いろんな時間足、異なるEAで見たときにどちらが有効であるか分かったらよいと

 

思います。

 

それでは見ていきましょう。

 

まずは、ATRから。

 

結果がこちら。

 

ATR・ロングとショートポジション

 

 

↓こちらはATR・ロングのみ

 

 

↓続いてATR・ショートポジションのみ

 

ロングもショートも勝率は低めで損小利大の傾向でドローダウンは11%と

 

単純なトリガーのみですがまずまずです。

 

それでは次に、Pipsの設定を見ていきたいと思います。

 

結果がこちら

 

↓Pips・ロングとショートポジション

 

 

↓Pips・ロングのみ

 

 

↓続いてPips・ショートポジションのみ

 

 

こちらも損小利大傾向なシステムですが、ATRに比べると勝率、ドローダウンの

 

改善が見られます。

 

PF・損益は同じくらいですがATRよりはよい結果となりました。

 

今回もATRとPipsについて比較をおこなってみましたが、前回とは違い

 

Pipsに軍配が上がったようです。

 

Pipsも捨てがたいですねぇ。

 

こう考えるとPipsと値幅計算を組み合わせたLegatoUSDJPYは自分の中では

 

理にかなったTPSLを保持したシステムであると思います。

 

↓ Legato USDJPY についてはこちら。

www.gogojungle.co.jp

 

 

使用時間足 5分足

 

使用スプレッド 15

 

使用通貨ペア EURUSD

 

使用関数 

double  iATR(
   string       symbol,     // symbol
   int          timeframe,  // timeframe
   int          period,     // averaging period
   int          shift       // shift
   );

 

※バックテストにはTDS(Tick Data Suite)を使用しております。

※バックテスト分析にはQuantAnalyzerを使用しております。

利確と損切りについて その2

今回は、前回に引き続き利確と損切について検証していきたいと思います。

 

前回はPipsとATRを損小利大になるパラメータから選択して比較していきました。

 

今回はその逆の損大利小になるもの選んでみていこうと思います。

 

前者がスイングトレード寄りの考えで、後者がデイトレスキャル的な感じに

 

なるのかなぁと思っています。

 

それでは見ていきましょう。

 

結果がこちら。

 

↓まずはPipsのロングとショートポジション

 

↓こちらはロングポジションのみ

 

↓次にショートポジションのみ

 

では次にATRを見ていきましょう。

 

↓こちらはロング・ショートポジションです。

 

↓次にロングポジションのみ

 

↓ラストはショートポジションのみ

 

前回同様、ATRに軍配が上がったように見えます。

 

しかしながら、取引回数をみるとATRのほうが少ないのでおそらく

 

ポジション保有期間が長いため、このような結果になったと思われます。

 

一概にATRのほうが良いとも言い切れません。

 

私自身はいろんな計算式でTPSLを決めますが、値幅は大切に考えております。

 

次回はこのアプローチからEAを設計していきたいと思います。

 

使用時間足 15分足

 

使用スプレッド 15

 

使用通貨ペア EURUSD

 

使用関数 

double  iATR(
   string       symbol,     // symbol
   int          timeframe,  // timeframe
   int          period,     // averaging period
   int          shift       // shift
   );

 

※バックテストにはTDS(Tick Data Suite)を使用しております。

利確と損切りについて その1

みなさんこんにちは。

 

お久しぶりです。

 

しばらく体調が不安定で更新をお休みしておりました。

 

少しずつ再開していこうと思いますので、よろしくお願いします。

 

今回は、私が一番大事にしている、TPSL(損切と利確)について

 

検証していきたいと思います。

 

今回どうやって検証しようか迷いましたが、皆さんはどうやって利確と損切を

 

決めていますか?

 

裁量トレードではサポートやレジスタンス、直近のチャートの形から

 

値幅を計算したり、いろいろな方法があると思います。

 

EAでは基本的に、エントリーした価格にたいして○○Pipsで利確○○Pipsで損切、

 

または、一定利益を確保しブレークイーブン、トレーリングストップなど

 

設定がされていると思います。

 

今回は現在も販売中の私の代表作となった Legato USDJPY  から

 

利確エンジンの一部を簡略化し、ATR(Average True Range)とPipsの

 

比較をしていきたいと思います。

 

実際にLegatoには少し複雑な計算式で値幅を計算しております。

 

Legato USDJPYについてはこちらです。

 

www.gogojungle.co.jp

 

ATRとは??

 

ATRの計算式に用いるのは、日足であれば前日の終値、当日の高値、当日の安値の

 

三つの価格で、これらからTR(True Range)を求めて、

 

そのTRを直近の価格に重きを置いて平均化しATRを算出します。

 

ATRの計算式(日足の場合)

 

ATR=TRのn日指数平滑移動平均

 

※TRは「当日高値-前日終値」「当日高値-当日安値」「前日終値-当日安値」

 

のうち最大の値幅のもの。

 

とありますが、だいたいローソク足1本でこれくらい動くんじゃない??みたいな

 

感じでいいと思います。

 

それでは見ていきましょう。

 

まずはPipsから

 

↓こちらはロング・ショートポジションです。

↓こちらはロングのみです。

 

↓こちらはショートのみです。

 

では次にATRを見ていきましょう。

 

↓こちらはロング・ショートポジションです。

 

↓こちらはロングポジションのみです。

 

↓こちらはショートポジションのみです。

 

ざっくりと検証してみましたが、同一システムでもこれだけの差があります。

 

今回の検証結果はATRもPipsも損小利大になるものだけを選びました。

 

実際に運用させる場合、Pipsは分かりやすいという点もあり、

 

どちらが良いというわけではないですが、長期で検証する場合、ボラティリティ

 

その時々で違うので、ATRなど値幅で利確と損切を決める方がシステム的には

 

良い気がします。

 

Legato USDJPYでは、独自の値幅計算式とPipsによる利確と損切を使用しております。

 

次回は利小損大になるものを検証していきたいと思います。

 

 

使用時間足 15分足

 

使用スプレッド 30

 

使用通貨ペア EURUSD

 

使用関数 

double  iATR(
   string       symbol,     // symbol
   int          timeframe,  // timeframe
   int          period,     // averaging period
   int          shift       // shift
   );

ボリンジャーバンドV型と平均足エントリー足5分足・1時間足

今回は前回に引き続きボリンジャーバンドV型について検証していきます。

 

今回は平均足を使い、エントリーのタイミングにフィルターをかけて

 

いきたいと思います。

 

平均足って??

 

以前、平均足を使った検証がこちらです。

 

systemcreation.hatenablog.com

 

f:id:systemcreation:20220316233256p:plain

上図がローソク足です。

 

 

f:id:systemcreation:20220316233326p:plain

そして上図が平均足です

 

どちらも同じタイミングのEURUSDの日足チャートです。

 

なんとなく視覚的にトレンドが見やすいですよね!

 

今回はこの平均足を使い1時間足と5分足のエントリーにフィルターを

 

かけていきたいと思います。

 

結果がこちら。

 

まずは1時間足から。

 

こちらはロングポジションとショートポジションです。

f:id:systemcreation:20220316235401p:plain

f:id:systemcreation:20220316235415p:plain

PF1.2

 

取引回数 2168

 

ドローダウン 9%

 

勝率 58%

 

1時間足にしては取引回数は良いです。

 

勝率・ドローダウンもよいと思います。

 

 

次にロングポジションのみです。

 

f:id:systemcreation:20220316235810p:plain

f:id:systemcreation:20220316235822p:plain

PF1.29

 

取引回数 1061

 

ドローダウン 7.17%

 

勝率 55%

 

ロングポジションに関しては数字だけ見るとよさそうです。

 

直近の収益曲線が右肩下がりで終わってるのが少し気になりますが、

 

全体としては悪くないです。

 

 

次にショートポジションを見ていきましょう。

 

こちらがいつも厄介者です。

 

f:id:systemcreation:20220317000248p:plain

f:id:systemcreation:20220317000317p:plain

PF1.06

 

取引回数 1107

 

ドローダウン 10.98%

 

勝率 61%

 

やはりショートポジションはよろしくないですね、取引回数とドローダウンは

 

ぎりぎりです。

 

勝率は50%を超えてはいますが、スキャルピング寄りのバランスに思われるので

 

それにしては低い結果となっています。

 

 

**************************************

それでは次に5分足を見ていきましょう。

 

まずは、ロングとショートポジションです。

 

f:id:systemcreation:20220317002502p:plain

f:id:systemcreation:20220317002520p:plain

PF1.11

 

取引回数 3174

 

ドローダウン 15.25%

 

勝率 62%

 

V型単体よりは少しドローダウンがマシになったかなといった具合で、

 

全体的に取引回数と収益を減らした割にはさほど効果がないようにも思えます。

 

 

では、次に5分足ロングポジションのみを見ていきましょう。

 

f:id:systemcreation:20220317002922p:plain

f:id:systemcreation:20220317002931p:plain

PF1.11

 

取引回数 1626

 

ドローダウン 9%

 

勝率 60%

 

ドローダウンの9%は悪くはないのですが、全体的に見て、1時間足のほうが

 

まだマシといったところでしょうか。

 

次にショートポジションを見ていきましょう。

 

f:id:systemcreation:20220317003310p:plain

f:id:systemcreation:20220317003318p:plain

PF1.11

 

取引回数 1548

 

ドローダウン 9.76%

 

勝率 65%

 

おや??

 

ショートとロングのバランスはだいぶ取れた結果となっております。

 

予想外でした。

 

今まで、ショートがロングに比べだいぶ悪く、バランスが取れていなかったのですが、

 

初めて、割とバランスの良い結果となりました。

 

ですが、取引回数が減った割には・・・といったところでしょうか?

 

今回はいつもの2つ分の検証を書いたので少し長くなりましたが、

 

平均足とV型を組み合わせたことにより、5分足では今までの中では

 

ショートとロングのバランスが少し取れたように見えます。

 

ちなみに今回使用したボリンジャーバンドですが、

 

5分足に使用したものと1時間足に使用したパラメーターは同じでTPSLのみ

 

変えてあります。

 

この点を踏まえると、ボリンジャーバンドの堅牢性が高いといえるのかもしれません。

 

使用時間足 1時間足 ・ 5分足

 

使用通貨ペア EURUSD

 

使用関数 

double  iBands(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   int          period,           // averaging period
   double       deviation,        // standard deviations
   int          bands_shift,      // bands shift
   int          applied_price,    // applied price
   int          mode,             // line index
   int          shift             // shift
   );

 

double  iCustom(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   string       name,             // path/name of the custom indicator compiled program
   ...                            // custom indicator input parameters (if necessary)
   int          mode,             // line index
   int          shift             // shift
   );

 

今回平均足を使ったため、カスタム関数を使用しました。

ボリンジャーバンドV型エントリー5分足

お久しぶりです。

 

あれからいろいろ1時間足のボリンジャーバンドについて検証しておりましたが、

 

取引回数が激減し、統計的な信憑性が低いと判断したため、

 

取引回数を増やすべく、エントリー足を5分にして検証していきたいと思います。

 

5分足は少しテストに時間がかかるため、更新が遅くなるかもしれませんが、

 

ご了承ください。

 

本来は、もう少し後に5分足をやる予定でしたが、ボリンジャーバンドの時間足での

 

逆張りが思ったより戻しにくいので、今回から5分足で行っていきます。

 

ロジックは1時間足で使ったV型のボリンジャーバンドをそのまま5分足に

 

使っていきます。

 

以前行ったボリンジャーバンドのV型の記事はこちらです。

 

 

systemcreation.hatenablog.com

 

systemcreation.hatenablog.com

 

systemcreation.hatenablog.com

 

systemcreation.hatenablog.com

 

それでは見ていきましょう。

 

結果がこちら。

f:id:systemcreation:20220309193159p:plain

f:id:systemcreation:20220309193214p:plain

上図はBUY・SELLポジションです。

 

PF 1.13

 

ドローダウン 20%

 

取引回数 4781回

 

勝率 50%

 

前半が少し良くはないですが、ボリンジャーバンド単体の5分足にしては

 

良い結果だと思います。

 

ドローダウンが20%と大きいのが気になります。

 

 

f:id:systemcreation:20220309193708p:plain

f:id:systemcreation:20220309193718p:plain

上図はBUYポジションのみです。

 

PF 1.12

 

ドローダウン 12%

 

取引回数 2395回

 

勝率 53%

 

BUYポジションのボリンジャーバンドは安定してますね!

 

ドローダウンも12%でグラフもわりと良い収益曲線を描いてると思います。

 

f:id:systemcreation:20220309193848p:plain

f:id:systemcreation:20220309193859p:plain

上図はSELLポジションのみです。

 

PF 1.14

 

ドローダウン 24%

 

取引回数 2386回

 

勝率 46%

 

それでは問題のSELLポジションです。

 

PFこそ1.14とBUYよりはよいのですが、前半のグラフが落ち込んでおり、全体の

 

グラフの全体もこのSELLポジションに引っ張られた形となりました。

 

ドローダウンも24%で大きく、勝率も50%を割ってしまっております。

 

しかしながら、後半の収益曲線グラフは悪くはなさそうです。

 

次回はこちらにフィルターを追加してみようと思います。

 

今回も検証ソフトにQuantAnalyzerを使っております。

 

ヒストリカルデータはTDS(Tick Data Suite)を使用しております。

 

使用時間足 5分足 

 

使用通貨ペア EURUSD

 

使用関数 

double  iBands(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   int          period,           // averaging period
   double       deviation,        // standard deviations
   int          bands_shift,      // bands shift
   int          applied_price,    // applied price
   int          mode,             // line index
   int          shift             // shift
   );

 

 

1時間足ボリンジャーバンドにフィルターを追加

今回は前回のシステムにフィルターを追加してみようと思います。

 

今回は日足の移動平均線1本をフィルターとしてBUY・SELLのバランスが

 

改善されるかを検証いていきたいと思います。

 

まずはBUY・SELL合算のものから。

 

 

f:id:systemcreation:20220223213849p:plain

f:id:systemcreation:20220223213910p:plain



次にBUYポジションのみ

f:id:systemcreation:20220223213934p:plain

f:id:systemcreation:20220223213949p:plain



少し移動平均線が効いてるように感じます。

 

次にSELLポジションのみを見ていきましょう。

 

こちらが本題です。

 

フィルターなしの前回はひどい有様でしたが、今回はどうでしょうか??

 

結果がこちら

 

 

f:id:systemcreation:20220223214039p:plain

f:id:systemcreation:20220223214049p:plain


こちらも移動平均線のフィルターの効果が出ているように感じます。

前回よりはマシになりましたが、まだまだBUY・SELLに差があるのが気になります。

 

もう少し、ボリンジャーバンドのエントリーの仕方を改善する余地がありそうです。

 

もう一度、ボリンジャーバンドについて考察、検証をしてみたいと思います。

 

使用時間足 1時間足 日足

 

使用通貨ペア EURUSD

 

使用関数 iMA(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   int          ma_period,        // MA averaging period
   int          ma_shift,         // MA shift
   int          ma_method,        // averaging method
   int          applied_price,    // applied price
   int          shift             // shift
   );

 

double  iBands(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   int          period,           // averaging period
   double       deviation,        // standard deviations
   int          bands_shift,      // bands shift
   int          applied_price,    // applied price
   int          mode,             // line index
   int          shift             // shift
   );