Losberechnung durch Vince - Seite 11

 

Suche nach dem optimalen f mit Hilfe des geometrischen Mittels.

Beim realen Handel ändert sich die Höhe der Verluste und Gewinne ständig. Kellys Formeln können uns also nicht das richtige optimale fliefern . Wie findet man mathematisch korrekt das optimale f, mit dem man die Anzahl der zu handelnden Kontrakte bestimmen kann? Lassen Sie uns versuchen, diese Frage zu beantworten. Zunächst müssen wir die Formel für die Ermittlung der HPR ändern , um f einzubeziehen:

siehe auch Formeln aus dem ersten Beitrag

weiter

Wir haben gesehen, dass das beste Handelssystem das System mit dem höchsten geometrischen Mittelwert ist. Um das geometrische Mittel zu berechnen, müssen wir f kennen. Lassen Sie uns also Schritt für Schritt unser Vorgehen beschreiben.

1. Nehmen Sie die Historie der Transaktionen in einem bestimmten Marktsystem.

2. Finden Sie das optimale f, indem Sie verschiedene Werte von f zwischen 0 und 1 betrachten. Das optimale f entspricht dem höchsten Wert der TWR.

3. SobaldSie f gefunden haben, nehmen Sie die Wurzel aus dem Grad N derTWR (N ist die Gesamtzahl der Abschlüsse). Dies ist Ihr geometrisches Mittel für dieses Marktsystem. Nun können Sie das erhaltene geometrische Mittel verwenden, um dieses System mit anderen zu vergleichen. Der f-Wert gibt an, wie viele Kontrakte in diesem Marktsystem gehandelt werden sollen. Sobald f gefunden ist, kann es in den Geldwert umgerechnet werden, indem der größte Verlust durch das negative Optimum/ geteilt wird. Wenn zum Beispiel der größte Verlust 100 $ beträgt und das optimale f = 0,25, dann ist -100 $ / -0,25 = 400 $. Mit anderen Worten, Sie sollten 1 Einheit für jedes 400 $-Konto setzen. Der Einfachheit halber können Sie alles auf der Basis von Einheiten berechnen (z. B. ein 5-Dollar-Chip oder ein Futures-Kontrakt oder 100 Aktien). Die Anzahl der Dollar, die Sie jeder Einheit zuweisen müssen, können Sie berechnen, indem Sie Ihren größten Verlust durch das negative optimale f teilen. Das optimale f ist das Ergebnis des Ausgleichs zwischen der Rentabilität des Systems (basierend auf 1 Einheit) und seinem Risiko (basierend auf 1 Einheit). Viele Leute denken, dass der optimale feste Anteil der Prozentsatz des Kontos ist, der für Ihre Wetten verwendet wird. Das ist völlig falsch. Es muss einen weiteren Schritt geben. Das optimale f an sich ist nicht der Prozentsatz Ihres Kontos, der dem Handel zugewiesen wird, sondern der Divisor des größten Verlustes. Der Quotient dieser Division ist der Wert, durch den Sie Ihr Gesamtkonto teilen müssen, um herauszufinden, wie viele Wetten Sie platzieren oder wie viele Kontrakte Sie auf dem Markt eröffnen müssen.

D.h. AccountFreeMargin()/H, mit H=D/(-f).

So ist es im Cov-Code organisiert - siehe Trailer.

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     

Hier ist also alles korrekt - streng nach Vorschrift.

Drehen Sie es nach Ihren Wünschen, testen Sie es, überprüfen Sie es und teilen Sie die Ergebnisse hier.

Dateien:
 
ph3onix:

1. Als erstes fällt mir ein, dass die Losgröße auf dem Stop-Loss für die nächste Position basieren sollte,

2. den Bruchteil des Deoposits zu kennen , den Vince in seinen Berechnungen für den Handel empfiehlt

3...die Losgröße, die beim Testen von EAs in diesem Thread verwendet wird, ist ein wenig falsch


1. Das ist der Ort, an den Sie gehen müssen.

2. Sie sind mit Vince's Mathematik nicht vertraut, er empfiehlt einen völlig anderen Ansatz, wir sprechen nicht von "Brüchen", wie Sie schreiben ...

"

Optimal f an sich ist nicht der Prozentsatz Ihres Kontos, der für den Handel vorgesehen ist, sondern der Divisor des größten Verlustes. Der Quotient dieser Division ist der Wert, durch den Sie Ihr Gesamtkonto teilen müssen, um herauszufinden, wie viele Wetten Sie platzieren oder wie viele Kontrakte Sie auf dem Markt eröffnen müssen.

"

3. Alles streng nach den Quellenangaben - sorgfältig lesen, vor allem ab Seite 31, selbst vergleichen, prüfen, Ergebnisse mitteilen.

 

Das Thema ist nicht abgeschlossen, die Fortsetzung folgt...

Die Losberechnungsfunktion ist hier im EA öffentlich zugänglich (siehe Trailer).

Dateien:
 

Ihr macht euch eindeutig zu viele Gedanken. Die TWR ist ein Maß dafür, wie oft das ursprüngliche Konto erhöht wurde. Das optimale f ist das Risiko pro Handel in Prozent der Einlage. TWR ist eine Ableitung des optimalen f. Berechnen Sie einfach das prozentuale Risiko im Strategietester von 1 bis 100% pro Handel. Ab einem bestimmten Wert wächst der Endgewinn nicht mehr. Dieser Wert wird der optimale Wert von f sein.

Wenn man so ein Durcheinander für einen einfachen Prozentsatz der Einlage macht, dann ist es unheimlich, sich vorzustellen, wie man anfängt, das optimale G zu berechnen (ja, so etwas gibt es).

 
C-4:

Ihr macht euch eindeutig zu viele Gedanken. Die TWR ist ein Maß dafür, wie oft das ursprüngliche Konto erhöht wurde. Optimal f ist das Risiko pro Handel in Prozent der Einlage. TWR ist eine Ableitung des optimalen f. Berechnen Sie einfach das prozentuale Risiko im Strategietester von 1 bis 100% pro Handel. Ab einem bestimmten Wert wächst der Endgewinn nicht mehr. Dieser Wert wird der optimale Wert von f sein.

Wenn man ein solches Durcheinander für einen einfachen Prozentsatz der Einlage schafft, dann ist es unheimlich, sich vorzustellen, wie man anfängt, das optimale G zu berechnen.


Es ist bereits berechnet - alle Beats, alle getestet, siehe den Thread zuerst... :-)

"Wie berechnet man das optimale G..." - alles wird von der Quelle aus berechnet...

 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:

...

Wenn man bei einem einfachen Einzahlungsprozentsatz ein solches Durcheinander anrichtet, ist es beängstigend, sich vorzustellen, wie man mit der Berechnung des optimalen G (ja, so etwas gibt es) beginnen wird.

Ich bin noch nicht darauf gestoßen, ich werde es nachschlagen, was für ein Vogel ist das - optimal G...?
 
Das optimale G ist der Kapitalisierungsfaktor des Portfolios. Um das optimale G zu finden, muss man zumindest die Varianz des Gesamtportfolios optimieren und sich mit der Portfoliotheorie von Markowitz auskennen. Ich sehe in diesen Berechnungen nichts dergleichen.
 

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

2. Ich sehe keinen Fehler in den obigen Berechnungen.


1. Verstehe - das kommt der Berechnung und der Reihenfolge der Portfoliobildung näher... Ich interessiere mich für diese Frage.

(2) Dies ist hier nicht der Fall. Ich habe das optimale G mit dem geometrischen Mittel G verwechselt, dessen Berechnung hier zu finden ist... :-)

Siehe den ersten Beitrag auf der ersten Seite des Themas.

"

Geometrisches Mittel des Handels

Ein Händler kann daran interessiert sein, seinen geometrischen Mittelwert zu berechnen (d.h. den durchschnittlichen Gewinn pro Kontrakt pro Handel), unter der Annahme, dass die Gewinne reinvestiert werden und Bruchteile von Kontrakten gehandelt werden können. Dies ist die mathematische Erwartung beim Handel auf Basis eines festen Anteils. In Wirklichkeit ist dies die ungefähre Rendite des Systems pro Handel, wenn ein fester Anteil des Kontos verwendet wird.(Das geometrische Mittel ist eigentlich die mathematische Erwartung in Dollar pro Kontrakt und Handel. Zieht man vom geometrischen Mittelwert eins ab, erhält man den mathematischen Erwartungswert. Das geometrische Mittel von 1,025 entspricht der mathematischen Erwartung von 2,5 % pro Handel). Viele Händler schauen nur auf den durchschnittlichen Handel des Marktsystems, um zu sehen, ob es sich lohnt, mit diesem System zu handeln. Es ist jedoch das geometrische Mittel des Handels (GAT), dasbei der Entscheidungsfindung berücksichtigt werden sollte.

wobei G = geometrisches Mittel - 1;

f = optimaler fester Anteil.

(Natürlich wird der größte Verlust immer eine negative Zahl sein).

 
Ich würde mich an Ihrer Stelle nicht zu sehr von diesem Mist hinreißen lassen. Die gesamte Mathematik von Vince basiert auf der Anpassung. Das f selbst ist instabil und neigt dazu, im Laufe der Zeit zusammenzubrechen. Es reagiert außerdem extrem empfindlich auf den Z-Score- oder Leverage-Asymmetrie-Effekt und liefert eine extrem ungleichmäßige Gewinnverteilung: Die ersten 90 % der Zeit werden benötigt, um 10 % Gewinn zu machen.
 
C-4:
Ich würde mich an Ihrer Stelle nicht zu sehr von diesem Mist hinreißen lassen. Die gesamte Mathematik von Vince basiert auf der Anpassung. Die f selbst ist nicht stabil und neigt dazu, im Laufe der Zeit zusammenbrechen, zusätzlich ist es extrem empfindlich auf die Z-Score oder Leverage-Asymmetrie-Effekt, gibt auch eine extrem ungleiche Gewinnverteilung: die ersten 90% der Zeit wird es dauern, um 10% Gewinn zu machen.


Vielen Dank, Vasily, für die Informationen, was es ist und wozu es führen könnte... Ich habe nicht viel mit diesen Losberechnungen zu tun, es war nur interessant, das alles aus verschiedenen Blickwinkeln zu betrachten und es mit anderen Ansätzen für MM in dem einen oder anderen Bund zu vergleichen...

Er berührt übrigens auch das Thema der Diversifizierung mit der Portfoliotheorie...:-) Vor allem, wenn DIESE Wörter rot hervorgehoben sind...:-) Es gibt ein Buch, es gibt Formeln - wie kann man diese Informationen nicht in einen Code eingeben und sehen, wie er das Los in Aktion bei verschiedenen Sowjets berechnet, frage ich mich... Schlagen Sie das Buch auf - schreiben Sie ein System, das es verwendet, schauen Sie sich das Verhalten in einem Tester an, auf einer Demo, für den Anfang... dies und das... :-) Graben, im Allgemeinen. Übrigens habe ich vor kurzem ein Demokonto mit META-SOT-Indikatoren überwacht, rein auf der Grundlage Ihres Artikels, ohne Schatten anderer Arten der Marktverhaltensanalyse - alles ist bisher profitabel ... :-)

"

Je besser

System, desto höher f. Je höher f ist , desto größer ist der mögliche Verlust, da der maximale Verlust (in Prozent) nicht kleiner als f ist. Das Paradoxe an der Situation ist, dass, wenn ein System in der Lage ist, ein ausreichend hohes optimales f zu erzeugen, der Verlust für ein solches System ebenfalls ausreichend hoch sein wird. Einerseits ermöglicht das Optimum f das höchste geometrische Wachstum, andererseits stellt es eine Falle dar, in die man leicht tappen kann.

Wir wissen, dass Sie bei Verwendung von optimal f beim Handel mit einer festen Aktie mit erheblichen Verlusten (in Prozent Ihres Guthabens) rechnen müssen. Optimal f ist wie Plutonium - es verleiht enorme Macht, ist aber auch extrem gefährlich. Diese großen Verluste sind ein großes Problem, vor allem für Anfänger, weil der Handel auf der Ebene der optimalen f ein Risiko von großen Verlusten schneller als im regulären Handel. Durch Diversifizierung können Verluste erheblich gemildert werden. Der Vorteil der Diversifizierung besteht darin, dass Sie viele Versuche (viele Spiele) gleichzeitig machen können, wodurch sich Ihr Gesamtgewinn erhöht. Man kann mit Fug und Recht behaupten, dass die Diversifizierung zwar in der Regel der beste Weg ist, um Verluste zu glätten, sie aber nicht zwangsläufig verringert, sondern in manchen Fällen sogar erhöht!

Es besteht der Irrglaube, dass Verluste vollständig vermieden werden können, wenn die Diversifizierung effektiv genug ist. Zwar lassen sich Verluste bis zu einem gewissen Grad durch eine wirksame Diversifizierung abmildern, doch können sie nie ganz vermieden werden. Lassen Sie sich nicht in die Irre führen. Egal, wie gut das angewandte System ist, egal, wie gut Sie diversifizieren, Sie werden trotzdem erhebliche Verluste erleiden. Der Grund dafür ist nicht, dass Ihre Marktsysteme miteinander korreliert sind, denn es gibt Zeiten, in denen die meisten oder alle Marktsysteme des Portfolios gegen Sie arbeiten, obwohl Sie denken, dass dies nicht der Fall sein sollte. Versuchen Sie, ein Portfolio mit fünf Jahren historischer Daten zu finden, so dass alle Handelssysteme optimal funktionieren und trotzdem einen maximalen Verlust von weniger als 30 % aufweisen! Das wird nicht einfach sein. Es spielt keine Rolle, wie viele Marktsysteme verwendet werden. Wenn Sie alles mathematisch richtig machen wollen, müssen Sie damit rechnen, 30 bis 95 % Ihres Kontostandes zu verlieren. Strenge Disziplin ist erforderlich, und nicht jeder kann sie einhalten.

Sobald ein Händler den Handel mit einer konstanten Anzahl von Kontrakten aufgibt, steht er vor dem Problem, wie viele er handeln soll. Dies geschieht immer, unabhängig davon, ob der Händler dieses Problem erkennt oder nicht. Der Handel mit einer konstanten Anzahl von Verträgen ist keine Lösung, denn auf diese Weise werden Sie niemals ein geometrisches Wachstum erreichen. Ob man will oder nicht, die Frage, wie viele man beim nächsten Handel eintauscht, wird daher für jeden unvermeidlich sein. Die einfache Auswahl einer zufälligen Menge kann zu einem schwerwiegenden Fehler führen. Optimal f ist die einzige mathematisch korrekte Lösung.

Moderne Portfoliotheorie

Stellen Sie sich eine Situation vor, in der f optimal ist und das Marktsystem verliert. Je besser das Marktsystem ist, desto höher ist der Wert von f. Wenn Sie jedoch mit optimalem f handeln, kann der Verlust (historisch) niemals kleiner als f sein. Im Allgemeinen gilt: Je besser das Marktsystem ist, desto größer sind die zwischenzeitlichen Verluste (als Prozentsatz des Kontoguthabens), wenn Sie bei optimalem f handeln. Wenn Sie also ein möglichst hohes geometrisches Wachstum erzielen wollen, müssen Sie auf dem Weg dorthin mit erheblichen Verlusten rechnen.

"