記事"クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化"についてのディスカッション

 

新しい記事 クロスプラットフォーム グリッドEAの開発(最終パート):収益性を高める方法と多様化 はパブリッシュされました:

このシリーズのこれまでの記事では、多かれ少なかれ収益性の高いグリッドEAを作成するためのさまざまな方法を試しました。 今回は多様化を通じてEAの収益性を高めます。 究極の目標は、最大20% 以下のドローダウンで年間100%の利益を達成することです。

基礎となるトレードシステムを変更しない場合、収益性を高める上で可能性が他に 2 つあります。

最初の方法は、EAパラメータが最適化される期間を短縮することです。 これより、EAを現在の相場サイクルに正確に調整し、最大利益を得ることができます。

ただし、この方法には大きな欠点があります。 過去の利益は未来の利益を保証するものではありません。 EAテストに使用する時間間隔が短いほど、相場の変化によって戦略がブレイクダウンされるリスクが高くなります。

第2の方法は、多通貨トレード(多様化)です。 各金融商品のロットサイズは、単一通貨トレードよりも低くなります。 このような損失管理では、いずれかの商品に対してドローダウンまたはSLが発生した場合でも、最大残高ドローダウンは単一通貨トレードよりも少なくなります。 さらに、他のシンボルの利益は、資産をより速く回復するのに役立ちます。

作者: Roman Klymenko

 

グリッドの問題は、オプティマイザーが最小ロットで不利なチャートになるように設定を選択することだ。これは人生ではありえないことだ。最初、ポジションは中間市場に蓄積され、その後、非常に不利なチャートが短期間訪れ、マージンコールにこんにちは。

収益性の高い取引システムがなければ、ネットやマーチンは取引パフォーマンスを向上させないことは何度も証明されています。

 
EURUSDで 試しましたが、テスターのM15で2年間一度も取引したことがありません。ログにはエラーも警告もありません。設定項目が多い。どれが何に関係しているのか、なぜ何も機能しないのかを初めて理解するのは難しい。
 
Expert Advisorが起動しません。起動方法、設定の説明、設定方法を教えてください。
 
年間50 あまりの契約を最適化することは、歴史に残ることだ。
 
itanprom:
Expert Advisorが起動しません。起動方法、設定の説明、設定方法を教えてください。

笑顔とポジションを開くにはペアを入力する必要があります。

スナップショット

設定には11のペアがあります。

 

どなたか設定方法を教えてください。 このEAを稼動させているのですが、通常のトレードを開くことすらできません...。 ぜひ試してみたいです。


ありがとうございました。

 
Liu Jeff:

どなたか設定方法を教えてください。 このEAを稼動させているのですが、通常の取引すら開かないのです...。 本当にこれを試してみたいのです。


ありがとうございました。

パラメータを設定できるような気がしないのですが、いつも "timer not set "と表示されます。

 

あなたのコードを徹底的に研究し、私のロボットのためにいくつかのアイデアを拝借しました。少なくとも、なぜその変数が必要なのかがすぐにわかるような、明確で論理的な変数名を考えてほしい。特にコードを公開する場合は。そして、もっとコードをコメントすべきだ。

取引回数の少なさや履歴へのフィッティングについて書かれていますが、私はあなたのロボットをM1タイムフレームで最適化しました。

Expert Advisorのゴールとして絶対的な金額で作業するのは絶対に不便です。ゴールとしてpips数を設定し、固定ロットに加えて、オプションとして最大許容ロットのパーセンテージを設定することを選択すれば、1000倍良くなります。そうでなければ、テスターのある予算から別の予算に移動するだけでも大きな問題となり、最適化をやり直さなければ なりません。

ところで、ロットの段階的増加についてどこかに書かれていたのですが、コードには何も書かれていませんでした。

また、MAでエントリーするという戦略にも非常に戸惑いました。通常、MA値の増加か減少のどちらかを考慮します。コードではこのようになっています:

if (buf0[0] > buf0[6]) {
   //--- MAは成長する
} else if (buf0[0] < buf0[6]) {
   //--- MA が落下
}

なぜ7本目のバーの値を現在のバーと比較するのですか?ロジックはどこにあるのでしょうか?それがフラットで、1本目と7本目の間にMAが上昇したり下降したりしていたらどうでしょう?あなたはこの点をあまり気にしていないようですが、おそらく記事を早く終わらせたかったのでしょう。私の考えでは、安定した成長を確認するためには、いくつかのバーが連続していることを考慮する必要があります。私は、反転の確認や、配列の値の安定した成長/下降を数小節にわたってキャッチするコードを書きましたので、あなたにお教えします:

//+------------------------------------------------------------------+
//| インジケータの反転を捉える|
//+------------------------------------------------------------------+
bool getReverse(double & object [], string direction, int repeatsIn, int repeatsOut) {
   bool reverseCorrect = true;
   
   if (direction == "up") {
      if (repeatsOut > 0) {
         for(int i = 0; i <= (repeatsOut - 1); i++) {
            if (!(object[i] > object[i+1])) reverseCorrect = false;
         }
      }
      
      if (repeatsIn > 0) {
         for(int i = repeatsIn; i <= (repeatsIn + repeatsOut - 1); i++) {
            if (!(object[i] < object[i+1])) reverseCorrect = false;
         }
      }   
   } else {
      if (repeatsOut > 0) {
         for(int i = 0; i <= (repeatsOut - 1); i++) {
            if (!(object[i] < object[i+1])) reverseCorrect = false;
         }
      }
      
      if (repeatsIn > 0) {
         for(int i = repeatsIn; i <= (repeatsIn + repeatsOut - 1); i++) {
            if (!(object[i] > object[i+1])) reverseCorrect = false;
         }
      }
   }
      
   return reverseCorrect;
}

次のように使ってください:

getReverse(MA1Val, "up", 0, 7);

この例では、MA1の値が7小節連続で上昇していれば、この関数は真を返します。この例では、MA1の値が7小節連続で上昇している場合、この関数はtrueを返します。

他のインディケータについてはコメントしませんが、考えるべきこともあります。標準的なインジケーターを使う場合でも、さらにロジックを追加することができます。

頑張ってください!

 
コードには課金手続きはなく、平準化手続きだけがあり、多くのパラメーターと手続きが繰り返され、無駄な誤判定とオブジェクトの作成が行われている!
 

gsc:
代码里没有开单程序,只有平单程序,大量重复的参数和程序,毫无用处的错误判断和创建物件,这是我见过的最垃圾的


EAを書くのを手伝ってくれる?