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

 

幾何平均を用いた最適な fを求める

実際の取引では、損失と利益の大きさは常に変化していきます。だから、ケリーの公式では正しい最適 fを出す ことはできない。どのように正しく数学的観点から最適な fを見つけるために 、私たちは取引する契約数を決定することができますでしょうか?この問いに答えてみよう。まず HPRを求める式に fを 含めるように修正する必要が あります。

さらに最初の 投稿の数式を参照してください。

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

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

2.0から1までの様々なfの値を見て、最適なfを求めます。最適なfはTWRの最高値に相当します。

3.fを求めたら、 TWRの次数Nの根をとる Nは取引の総数) この幾何平均を使って、このシステムを他のシステムと比較することができます。f値は、このマーケットシステムで何枚のコントラクトを取引するかを教えてくれる。fが求まれば、最大の損失を負の最適値で割ることで貨幣価値に換算することができる。例 えば、最大の損失が100ドルに相当し、最適f=0.25であれば、-$100 / -0.25 = $400 となる。つまり、400ドルのアカウントに対して1単位を賭ける必要があります。簡単にするために、すべてをユニット単位で計算することができます(例えば、1枚の5ドルチップ、1枚の先物契約、または100銘柄)。 各ユニットに割り当てるドル数は、最大の損失を負の最適fで割ることによって計算できます。最適fは システムの収益性(1ユニットに基づいて)とそのリスク(1ユニットに基づいて)をバランスさせた結果に 基づきます。 多くの人は、最適な固定端数は、ベットに割り当てる口座の割合だと考えています。これは完全に間違っています。もう一歩踏み込まなければならない。最適な f それ自体は、 取引に割り当てられるあなたのアカウントの割合ではなく、それは最大の損失の除数 です。 この割り算の商は、市場にいくつのベットを置くか、いくつのコントラクトを開くかを決定するために、あなたの総口座を割り算しなければならない値です。

すなわち、AccountFreeMargin()/Hで、H=D/(-f)です。

covのコードでどのように構成されているかは、こちら(予告編)をご覧ください。

if (optimal_f) //--- Расчет оптимального f ---
        {   
          
          double Mas_Outcome_of_transactions [10000];        // Массив профитов/убытков закрытых позиций
          int Qnt = 0, Orders = OrdersHistoryTotal();        // Счётчик количества ордеров   
          ArrayInitialize(Mas_Outcome_of_transactions, 0);   // Обнуление массива
          double f, D, SUMM, TWR, G, G_Rez, H,A,B, Pow;
          int orderIndex;
   
          for (orderIndex = 0; orderIndex < Orders; orderIndex++)
          {   
             if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
              {
                Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
                continue;
              }
   
             if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGICMA || OrderCloseTime()==0)
                continue; 
         
             int lastType = OrderType();
             double lastLots = OrderLots();
             double lastProfit = OrderProfit() + OrderSwap();
      
             if (orderIndex == 0 || lastProfit < D)
                D = lastProfit;
      
             Mas_Outcome_of_transactions[Qnt] = lastProfit;  // Заполняем массив профитом/лоссом по всем закрытым позициям 
             SUMM=SUMM+lastProfit;
             Qnt++;                                          // увеличиваем счетчик закрытых ордеров    
          }   
   
         if (Transaction_number<Qnt) { //при репрезентативном кол-ве ордеров на истории открываемся объемом через оптим-ую f 
            Pow = 1/NormalizeDouble(Orders, 0);
            for (f = 0.01; f<=1.0; f=f+0.01)                   // цикл перебора переменной f для поиска оптимального ее значения,
            {                                                  // при котором TWR - максимально
               G= 1;
               for ( orderIndex = 1; orderIndex < Qnt; orderIndex++) // при заданной f проходим по всем закрытым ордерам
                {                                                     // и считаем среднее геометрическое от TWR
                  TWR = 1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D));
                  G *= NormalizeDouble (MathPow(TWR, Pow),8);
                }
               if (G > G_Rez)  G_Rez = G;// если текущий > результирующего, то результирующий делаем равным текущему
               else break;               // иначе переходим на следующую итерацию цикла по f
            }
               
            
            if (f>0) H=D/(-f); //денежный эквивалент фракций (оптимального f) для торговли 0,1 лотом.
            lot = NormalizeDouble((AccountFreeMargin()/H)*Min_Lot,1);
            if (lot==0)    lot=Min_Lot;
            Print("H=D/(-f): ", H, " lot = ", DoubleToStr (lot,1), "Transaction_number = ", Transaction_number);  
            Print("G_Rez максимальна = ", DoubleToStr (G_Rez,8), " при f = ", f);             
            Print(" Максимальный лосс по позиции, D = ", DoubleToStr(D, 2), " Pow (1/Orders)= ", DoubleToStr(Pow, 8));
            Print("Закрытых позиций = ",   Qnt,
                " Нетто Профит/лосс = ", SUMM,
                " У последней ",         Qnt,
                " закрытой позы профит/лосс = ", Mas_Outcome_of_transactions[Qnt-1]);  
                
            return(lot);         
          }    // Выход из  if (Transaction_number<Qnt)                   
          else {
             lot=Min_Lot; 
             Print("Закрытых позиций = ",   Qnt, " Transaction_number = ", Transaction_number);
             return(lot); 
          } 
  
      }  //Выход из расчета оптимального f     

だから、ここではすべてが正しく、厳密に本に従っているのです。

あなたのお好みに合わせて、テスト、チェックし、結果をここで共有してください。

ファイル:
 
ph3onix:

1.まず、ロットサイズは次のポジションのストップロスを基準に することです。

2. Vinceの数学がトレードに使うことを推奨しているデオポジットの割合を知っている こと。

3...このスレッドでEAをテストする際に使用したロットサイズは少し間違っています。


1.ここが ポイントです。

2.あなたはVinceの数学に精通していない、彼は完全に異なるアプローチを推奨している、我々はあなたが書いているように「分数」について話していない....

"

最適な f 自体は、 取引に割り 当てる 口座の割合ではなく 最大の損失の除算 値です。 この割り算の商が、口座総額を割り算する値であり、マーケットにいくつベットを置くか、いくつコントラクトを開くかを決めるために必要なものです。

"

3.特に31ページ以降をよく読み、自分の頭で比較し、確認し、結果を共有してください。

 

話題は尽きず、続きが...。

ロット計算機能は、こちらのEAで公開されています(予告編参照)。

ファイル:
 

お前ら明らかに何か考えすぎだぞ。TWRとは、初期口座が何倍になったかを示す指標である。最適なfは、取引ごとのリスクを保証金に対する割合で表したものです。TWRは最適なfの微分である。ストラテジーテスターで、1トレードあたりのリスクを1から100%まで計算するだけです。ある値を超えると、最終的な利益は伸びなくなる。この値がfの最適値となる。

単純な預け入れのパーセンテージでこんなにゴチャゴチャ言っていたら、どうやって最適なG(そんなのあるんだ)を計算し始めるのか、想像するだけで恐ろしいです。

 
C-4:

お前ら明らかに何か考えすぎだぞ。TWRとは、初期口座が何倍になったかを示す指標である。最適なfは、取引ごとのリスクを保証金に対する割合で表したものです。TWRは最適なfの微分である。ストラテジーテスターで、1トレードあたりのリスクを1から100%まで計算するだけです。ある値を超えると、最終的な利益は伸びなくなる。この値がfの最適値となる。

単純な預け入れのパーセンテージでこのような混乱が生じるのであれば、最適なGの 計算をどのように始めるのか、想像するのも恐ろしいことです。


すでに計算されています。すべてのビート、すべてのテスト、最初にスレッドを参照してください...:-)

"最適なGは どのように計算するのか..." - 全てはソースから計算される...

 if (Transaction_number<Qnt) { //при репрезентативном кол-ве ордеров на истории открываемся объемом через оптим-ую f 
            Pow = 1/NormalizeDouble(Orders, 0);
            for (f = 0.01; f<=1.0; f=f+0.01)                   // цикл перебора переменной f для поиска оптимального ее значения,
            {                                                  // при котором TWR - максимально
               G= 1;
               for ( orderIndex = 1; orderIndex < Qnt; orderIndex++) // при заданной f проходим по всем закрытым ордерам
                {                                                     // и считаем среднее геометрическое от TWR
                  TWR = 1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D));
                  G *= NormalizeDouble (MathPow(TWR, Pow),8);
                }
               if (G > G_Rez)  G_Rez = G;// если текущий > результирующего, то результирующий делаем равным текущему
               else break;               // иначе переходим на следующую итерацию цикла по f
            }
               
            
            if (f>0) H=D/(-f); //денежный эквивалент фракций (оптимального f) для торговли 0,1 лотом.
            lot = NormalizeDouble((AccountFreeMargin()/H)*Min_Lot,1);
 
C-4:

...

単純な預け入れのパーセンテージでこれだけゴタゴタすると、 最適なG(そう、そんなのあるんだ)の計算が始まるのかと想像すると恐ろしい。

まだ出会ったことがないので調べてみます!どんな鳥なんだろう~最適なG...?
 
最適なGは、ポートフォリオのキャピタリゼーションファクターである。最適なGを見つけるためには、少なくともポートフォリオ全体の分散を最適化する必要があり、マーコウィッツの ポートフォリオ理論に 精通している必要がある。この計算には、そのようなことは一切含まれていません。
 

C-4:
1. Оптимальное G - это фактор капитализации портфеля. Для поиска оптимального G нужно как минимум оптимизировать дисперсию совокупного портфеля и свободно разбираться в портфельной теории Марковица.

2.上記の計算で何も問題はありませんね。


1.なるほど、この方が計算やポートフォリオ形成の順序に近いのですね...。という質問に興味があります。

2.ここには存在しない。最適Gと幾何平均Gを 混同していましたが、その計算はこちらに存在します...。:-)

スレッドの1 ページ目の最初の投稿をご覧ください。

"

幾何平均貿易

トレーダーは、利益が再投資され、端数の契約が取引されると仮定して、自分の幾何平均取引(つまり、取引ごとに契約ごとに得られた平均利益)を計算することに興味を持つかもしれません。これは、固定小数ベースで取引する場合の数学的な期待値です。実際には、口座の一定割合を使用した場合の、1トレードあたりのシステムのおおよそのリターンを示しています。( 幾何平均は、実際には1取引1契約あたりのドルでの数学的期待値です)。幾何平均から1を引くと、数学的期待値になる。幾何平均1.025は、取引あたり2.5%の数学的期待値に相当します)。 多くのトレーダーは、マーケットシステムの平均取引だけを見て、このシステムで取引する価値があるかどうかを判断しています。しかし、判断の際に考慮すべきなのは幾何平均取引(GAT である。

ここで、 G = 幾何学的平均値 - 1

f = 最適な固定シェア。

(もちろん、最大の損失は必ずマイナスになる)。

 
私だったら、こんなくだらないことに夢中にならないよ。ヴィンスの数学は、すべてフィッティングに基づいている。F自体は不安定で時間の経過とともに崩れる傾向があり、またZ-Scoreやレバレッジの非対称性効果に極めて敏感で、10%の利益を出すのに最初の90%がかかるという、極めて不均等な 利益配分を与えるものである。
 
C-4:
私だったら、こんなくだらないことに夢中にならないよ。ヴィンスの数学は、すべてフィッティングが基本です。F自体は安定しておらず、時間の経過とともに崩壊する傾向があり、さらにそれはZ-Scoreまたはレバレッジ非対称効果に非常に敏感であり、また非常に不均一な利益分布を与える:最初の90%は、10%の利益を作るためにかかります。


Vasily、情報をありがとう、それが何であるか、それが何につながるかもしれない...私はこれらのロット計算にはあまり興味がない、ただ、すべてを叩いて、さまざまな角度から見て、一つまたは別の規約でMMの他のアプローチと比較するのは面白かった...。

ちなみに彼は、ポートフォリオ理論による分散投資の話にも触れています...:-)特に、赤で強調された「THOSE」の文字は......:-)本がある、数式がある--この情報をコードに落とし込んで、いろんなソビエトで活躍するロットを計算して見ない手はないだろう、と......。本を開いて、それを使ってシステムを書き、テスターやデモでその挙動を見てみる......。ああだこうだ:-)掘ること、全般。ところで、私は最近、純粋に あなたの記事に基づいて、市場の行動分析の他のタイプの影なしで、メタ-SOT指標とデモ口座を監視している - すべてが今のところ有益である... :-)。

"

より良い

系では、より高い f. fが 大きいほど、最大損失(%)はfより小さくならないので、可能な損失は大きく なります。この状況のパラドックスは、もしあるシステムが十分に高い最適fを生成できるのであれば、そのようなシステムの損失も十分に高くなることである。一方、最適なfは最高の幾何学的成長を得ることを可能にしますが、他方では、簡単に陥ることができる罠を作り出します。

固定株の取引で最適fを使うと、(残高に対する割合で)大きな損失が出ることが分かっています。 最適fはプルトニウムと同じで、大きな力を与えますが、非常に危険でもあります。最適fのレベルでの取引は、通常の取引よりも早く巨額の損失を出すリスクを生むため、こうした巨額の損失は、特に初心者にとっては大きな問題である。多様化することで、損失を大きく軽減することができます。分散投資の利点は、同時に多くの試みをする(多くのゲームを実行する)ことで、全体の利益を増やすことができることです。分 散投資は、通常、損失を平準化するのに最適な方法ですが、必ずしも損失を減らすことができず、場合によっては損失を増やす可能性もあると言ってよいでしょう

分散投資が十分に効果を発揮すれば、損失を完全に回避できるという誤解があります。効果的な分散投資によって損失をある程度軽減できるのは事実ですが、完全に回避できるわけではありません。惑わされないでください。どんなに優れたシステムを適用しても、どんなに効果的に分散投資をしても、大きな損失に見舞われることに変わりはありません。その理由は、皆さんの市場システムが相互に相関しているからではなく、本来はそうでないと思うのに、ポートフォリオの市場システムのほとんど、あるいはすべてが不利に働く場合があるからです。すべてのトレーディングシステムが最適な状態で動作し、なおかつ最大損失が30%未満になるように、5年間のヒストリカルデータを持つポートフォリオを探してみてください。簡単なことではないでしょう。市場制度はいくつあっても困らない。数学的に正しいことを全てやろうと思ったら、口座残高の30〜95%を失う覚悟が必要です。厳しい規律が要求され、誰もがそれを守れるわけではありません。

トレーダーは、一定数のコントラクトを取引することをあきらめると同時に、いくつ取引するかという問題に直面する。これは、トレーダーがこの問題を認識しているかどうかに関係なく、常に起こることです。なぜなら、この方法では幾何学的な成長を遂げることができないからです。したがって、好むと好まざるとにかかわらず、次のトレードでいくつ取引するかという問題は、誰にとっても避けられないものとなるのです。単に適当に数量を選ぶと、重大なミスにつながることがあります。 最適なfは、数学的に正しい唯一の解である。

現代ポートフォリオ理論

最適なfと負ける市場システムがある状況を考えてみよう。 市場システムが優れていればいるほど、fの値は高くなる。しかし、最適なfで取引すれば、損失(歴史的に)がfより小さくなることはありえない。一般的に、マーケットシステムが優れているほど、最適なfで取引した場合の中間損失(口座残高に対する割合)は大きくなります。したがって、最高の幾何学的成長を実現したいのであれば、途中で深刻な損失を被ることを覚悟しなければならない。

"

理由: