Vinceによるロット計算 - ページ 5

 
MaxZ:
また間違えたのか、1回目と2回目のテスターでEAを動かした結果が同じなのか、どちらかです。唯一の「しかし」:2回目もExpert Advisorは最適なパラメータfを計算する...


その通りです。このパラメータは、その後の入札でロットの出来高を計算するために使用されます。方法は、幾何 平均です。本書31ページをご参照ください。の31を、任意のボードで実行し、計算してみてください。

私自身は、最初のページからのアドバイスに従って、溢れないように根こそぎ分解するようになりました。

 

では、なぜもう一度テストを行うのですか?我々はdeinit()関数で最も不採算取引を見つけることができれば、また、これらのパラメータを手動で入力する代わりに、取引 数?つまり、1回目のテストの後に最適なfを計算する。

それともテスターが許可していないのでしょうか?

 
MaxZ:

では、なぜもう一度テストを行うのですか?我々はdeinit()関数で最も不採算取引を見つけることができれば、また、これらのパラメータを手動で入力する代わりに、取引数?つまり、1回目のテストの後に最適なfを計算する。

それともテスターが許可していないのでしょうか?


理論的には可能ですが.さまざまな方法で実装することができます。しかし、それは純粋なフィッティングでしょう。未来を知らずに計算しなければならない
 
Vinin:

理論的には可能ですが.実装の仕方はさまざまです。でも、純粋にフィットするんでしょうね。未来を知らずに計算することが必要なのです。


ポイントは、R.Vinceであること-ppの上のトレーラーの投稿を参照してください。31-32.どんな場合でも代表的なサンプルを取ればそれでいいし、最大損失額の上方への丸め値、丸めもせずに1.5倍にして出せばそれでいいし......と、どうしようもない。ここは何も問題ない。お得情報 - 500以下でもそれなりに...。すでに、右や左に必要な公差を持った最適なfを計算することができます。

問題は別で、TWRの変数のオーバーフローをどう回避するか?


 
Roman.:


要はR.ヴィンスなのですが......pp上の予告編投稿をご覧ください。31-32.どんな場合でも代表的なサンプルを取って、そこから踊り、最大損失の値を切り上げ、切り上げもせず、1.5倍にして終わり、というのはどうしようもないことです......。ここは何もかもが普通なんです。

問題は別で、TWRという変数が過剰に表示されないようにするにはどうすればいいのか。



計算の深さを制限する
 
Vinin:

計算の深さを制限する

どうやって?
 
Roman.:

どうですか?

ただ、分析されているトレードの数という意味です。リアルかバーチャルか。
 

何かが出現し始めた - 変数の絶対値は重要ではありませんが、唯一のfの特定の値でより、より少ない上に彼らの比較として、私はMaxZの 勧告にTWRの3次根を追加 しました 最初のページ、このブロックで - それは、オーバーフローせずに正常に動作 します。

for (f = 0.01; f<=1.0; f=f+0.01)//цикл перебора переменной f для поиска оптимального ее значения,при котором TWR-максимально
     {  
          
          for ( orderIndex = 1;orderIndex<Qnt; orderIndex++) //при заданной f проходим по всем закрытым ордерам
            {                                                // и считаем относительный конечный капитал (TWR)
             TWR = MathPow(TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))),0.33); // TWR - это произведение всех HPR                    
            }
          if (TWR>TWR_Rez) {
              TWR_Rez = TWR;
              G=MathPow (TWR_Rez, 0.001988); // 1/503 сделки по данной торговой системе, как в книжке: в степени 1/N 
              Print(" TWR = ",TWR_Rez," G = ",G, " при f = ", f);} // если текущий TWR > результирующего, 
              else break;    // то результирующий делаем равным текущему, иначе переходим на след итерацию цикла по f                                  
      }      
             
   Print("Закрытых позиций = ", Qnt, " Нетто Профит/лосс = ", SUMM, " У последней ",Qnt, " закрытой позы профит/лосс = ", 
        Mas_Outcome_of_transactions[Qnt]);     
  

ログに

 
Vinin:

あくまで分析したトレード数の話です。リアルかバーチャルか


テスターで始値、2002年から2011年までの取引-503、最高損失取引=-628を使ってすべての計算をします。

結果は上記の通りです。現在、他のExpert Advisorのバリエーションでテストしています。

以下、この問題を解決するためのアプローチをソースコードからテキストで紹介します - p.31.

最良のトレーディングシステムは、幾何平均が最も高いシステムであることを見てきました。幾何平均を計算するためには、fを知る必要がある。それでは、ステップバイステップで行動を記述していきましょう。

1.与えられた市場システムにおける取引の履歴 を取る。

2.0から1までのさまざまなfの値を見て、最適なfを求めます。最適なfは、TWRの最高値に対応します。

3.fを求めたら、次数Nのルート TWR Nはトレードの総数 )を取る。 これが、この市場システムにおける幾何平均です。これで、得られた幾何平均を使って、このシステムを他と比較することができる。f値は、このマーケットシステムで何枚のコントラクトを取引するかを教えてくれる。fが求まれば、最大の損失を負の最適値で割ることで貨幣価値に換算することができる。例 えば、最大の損失が100ドルに相当し、最適f=0.25であれば、-$100 / -0.25 = $400 となる。つまり、400ドルのアカウントに対して1単位を賭ける必要があります。簡単にするために、すべてを単位で計算することもできます(たとえば、5ドルチップ1枚や先物契約1枚、あるいは100株など)。各ユニットに割り当てるドル数は、最大の損失を負の最適fで割ることで計算できます。最適なfは システムの収益性(1単位を基準とする)とリスク(1単位を基準とする)のバランスを取った結果 である。 多くの人は、最適な固定端数は

に割り当てられる 口座の割合だと考えて います。

 
Roman.:

何かが出現し始めた - 変数の絶対値は重要ではありませんが、唯一のfの特定の値でより、より少ない上に彼らの比較として、私はMaxZの 勧告にTWRの3次根を追加 しました 最初のページ、このブロックで - それは、オーバーフローせずに正常に動作 します。

ログに

そういう勧め方をしたわけではありません。そのほうが、あなたらしいアプローチになります。重要なのは、それが正しいものであることも判明することです。