記事についてのディスカッション

 

新しい記事「自動取引のための便利でエキゾチックな技術」はパブリッシュされました:

本稿では、自動取引のためのいくつかの非常に興味深く有用な技術を紹介します。それらのいくつかには馴染みがあるかもしれません。最も興味深い手法を取り上げ、なぜ使用する価値があるのかを説明します。さらに、これらの技術の実際面での傾向を示します。エキスパートアドバイザーを作成し、説明されているすべての技術を相場履歴を使用してテストします。

実際、この技術はマーチンゲールだけでなく、取引頻度が十分に高い他のストラテジーにも使用できます。この例では、残高のドローダウンに基づく指標を使用します。残高に関連するすべてがより簡単であると考えられているからです。残高チャートを上昇セグメントと下降セグメントに分割しましょう。2つの隣接するセグメントが半波を形成します。取引数が無限大に向かうと、半波の数は無限大に向かいます。マーチンゲールの収益性を少し高めるには、有限のサンプルで十分です。次の図でアイデアを説明します。

バランス波

この図は、形成された半波と始まったばかりの半波を示しています。残高グラフは、このような半波で構成されています。これらの半波のサイズは絶えず変動し、チャート上ではそのような半波のグループを常に区別することができます。これらの半波のサイズは、一方の波では小さく、もう一方の波では大きくなります。したがって、ロットを徐々に下げることで、現在のグループに主要ドローダウンのある半波が現れるまで待つことができます。この重要なドローダウンの多くはシリーズ内で最小限になるため、これにより、すべての波のグループの全体的な平均指標が増加し、その結果、元のテストの同じパフォーマンス変数も増加するはずです。

実装するには、マーチンゲール用に2つの追加の入力パラメータが必要です。

  • { DealsMinusToBreak } - 前のサイクルで負けた取引の数で、これに達すると、サイクルの開始ロットが開始値にリセットされます
  • {LotDecrease} - 取引履歴に新しいサイクルが表示されたときにサイクルの開始ロットを減らすための手順

作者: Evgeniy Ilin

 

伝統的に有用で洞察に富んでいる。

示唆に富む

 

すべての関数が古典的な

出来高_in_market = K*exp(N*balance drawdown)

または、間違った対角線を読んでいた :-)

🤔

 
Maxim Kuznetsov:

すべての機能はクラシックに移った。

市場取引高 = K*exp(N* バランス・ドローダウン)

あるいは、私は間違った対角線を読んでいた :-)

🤔

まあ、古典的なマーチンゲールについて話しているのであれば、はい)最後のポイントのことですね。そこはちょっと違います。説明すべきかもしれません。エクイティラインまたはバランスラインをセグメントに分割すると、平均ドローダウンが増加するセグメントと減少するセグメントがあります。ドローダウンが増加するセグメントでは最小ロットを提供するようにし、ドローダウンが減少するセグメントでは最大ロットを提供するようにします。その結果、このテクニックを巧みに使うことで、負ける戦略をわずかにプラスに変えることができる。いろいろなバリエーションがあり得るが、とにかくやってみることだ。実践のない理論は理論にすぎない)

 
Evgeniy Ilin:

古典的なマーチンゲールということであれば、そうですね。そこは少し違います。説明すべきかもしれません。エクイティラインまたはバランスラインをセグメントに分割すると、平均ドローダウンが増加するセグメントと減少するセグメントがあり、ドローダウンが増加するセグメントでは最小ロットを提供するようにし、ドローダウンが減少するセグメントでは最大ロットを提供するようにします。その結果、このテクニックを巧みに使うことで、負ける戦略をわずかにプラスに変えることができる。いろいろなバリエーションがあり得るが、とにかくやってみることだ。実践のない理論は理論にすぎない)

どこで転ぶかわかっていたら、ベッドを作っていただろう :-))

それは、残高のドローダウンが大きくなる/小さくなる領域とリスクのある領域についてです...。

それらは事前にはわからない。もしそれがわかっていたら、「柵の上に座っている」という方法がすべてを支配することになる。

 
Maxim Kuznetsov:

どこに落ちるかわかっていたら、ベッドを作っておいたのに......)

残高の引き出しが増えたり減ったりする部分と、リスクのある部分についてですが......。

それらは事前に分かっているわけではなく、事後的にしか分からない。そして、もしそれらがわかっていたなら、「柵の上に座っている」という方法がすべてを支配することになる。

単純なことで、低いドローダウンの後には必ず高いドローダウンが続く。)

 

本当に便利です。固定ロットではなく、ロットをコントロールすることで利益を 上げることができます。

ところで、PartialClosing EAのテストタイムフレームは何ですか?

 
Zhongquan Jiang:

本当に便利です。固定ロットではなく、ロットをコントロールすることで利益を上げる。

ところで、PartialClosing EAのテストタイムフレームは何ですか?

ありがとうございます!パーシャルクロージングのバックテストは M5タイムフレームで2000-2021です。しかし、私はそれがM1または任意のより高いタイムフレームで動作可能でなければならないと思います。)

 
Evgeniy Ilin:

ドローダウンが低いとドローダウンが高くなり、逆にドローダウンが低いとドローダウンが低くなる。)

実際には、記事からの画像は、このように、より多くのカップルのポイントを持っている必要があります。


ドローダウンがモデルや回復を明らかに超えた瞬間...
その後、ロットを操作するためのアクションが取られる
トップに近ければ近いほど、古典的なマルチンゲールに近づくが、もちろん、より遠く、より興味深い。

 
Maxim Kuznetsov:

実際には、記事の写真にはこのようなポイントがもう少しあるはずだ。


ドローダウンがモデルや回復を明らかに超えた瞬間...
その後に、ロットを操作するためのアクションが取られる
トップに近ければ近いほど、古典的なマルチンゲールに近づくが、もちろん、より遠く、より興味深い。

まあ、一般的にはそうなのだが、彼ら自身が少し考え始めたという)人々のためにいくつかの食料を残しておく必要がある。)一般的に、この原則を理解することは、思考を開始するための基準点となる。

 

私はおそらくポイントをよく理解していなかったと思いますが、本当にこのようにすべきであり、その逆(強調表示)ではないのでしょうか?

void PartialCloseType()//注文の一部をクローズする
   {
   bool ord;
   double ValidLot;
   MqlTick TickS;
   SymbolInfoTick(_Symbol,TickS);
            
   for ( int i=0; i<OrdersTotal(); i++ )
      {
      ord=OrderSelect( i, SELECT_BY_POS, MODE_TRADES );
                            
      if ( ord && OrderMagicNumber() == MagicF && OrderSymbol() == _Symbol )
         {
         if ( OrderType() == OP_BUY )
            {
            ValidLot=CalcCloseLots(OrderLots(),(Open[0]-Open[1])/_Point);
            if ( ValidLot > 0.0 ) ord=OrderClose(OrderTicket(),ValidLot,TickS.bid,MathAbs(SlippageMaxClose),Green);
            }
         if ( OrderType() == OP_SELL )
            {
            ValidLot=CalcCloseLots(OrderLots(),(Open[1]-Open[0])/_Point);
            if ( ValidLot > 0.0 ) ord=OrderClose(OrderTicket(),ValidLot,TickS.ask,MathAbs(SlippageMaxClose),Red);
            }         
         break;
         }
      }

この場合、ポジションの 一部決済は、値動きと設定された注文の方向が一致したときに発生します。つまり、利益が出ているポジションは決済され、損失が出ているポジションは残る。