Calcolo del lotto da parte di Vince - pagina 11

 

Trovare la fottimale usando la media geometrica.

Nel trading reale la dimensione delle perdite e dei guadagni cambierà costantemente. Quindi le formule di Kelly non possono darci la fottimale corretta . Come trovare correttamente dal punto di vista matematico la f ottimale , che ci permetterà di determinare il numero di contratti da scambiare? Cerchiamo di rispondere a questa domanda. Per prima cosa, dobbiamo modificare la formula per trovare HPR per includere f:

vedere ulteriormente le formule del primo post

ulteriore

Abbiamo visto che il miglior sistema di trading è quello con la media geometrica più alta. Per calcolare la media geometrica dobbiamo conoscere f. Quindi, descriviamo le nostre azioni passo dopo passo.

1. Prendete la storia delle transazioni nel sistema di mercato dato.

2. Trova l'optimum f guardando vari valori di f da 0 a 1. L'optimum f corrisponde al valore più alto di TWR.

3. Una voltatrovato f, prendete la radice di grado N diTWR (N è il numero totale di scambi). Questa è la tua media geometrica per questo sistema di mercato. Ora puoi usare la media geometrica ottenuta per confrontare questo sistema con altri. Il valore f vi dirà quanti contratti scambiare in questo sistema di mercato. Una volta trovato f, può essere convertito nell'equivalente in denaro dividendo la perdita maggiore per l'optimum negativo/. Per esempio, se la perdita maggiore è pari a 100 dollari, e f ottimale = 0,25, allora -100 dollari / -0,25 = 400 dollari. In altre parole, dovresti scommettere 1 unità per ogni conto di 400 dollari. Per semplicità puoi calcolare tutto su base unitaria (per esempio una fiche da 5 dollari o un contratto futures, o 100 azioni). Il numero di dollari da assegnare a ciascuna unità può essere calcolato dividendo la tua perdita maggiore per il f ottimale negativo. Ilf ottimale è il risultato del bilanciamento tra la redditività del sistema (basato su 1 unità) e il suo rischio (basato su 1 unità). Molte persone pensano che la frazione fissa ottimale sia la percentuale del conto che viene assegnata alle tue scommesse. Questo è completamente sbagliato. Ci deve essere un altro passo. Il f ottimale di per sé non è la percentuale del vostro conto che è assegnato al commercio, è il divisore della perdita più grande. Il quoziente di questa divisione è il valore per il quale dovete dividere il vostro conto totale per scoprire quante scommesse piazzare o quanti contratti aprire sul mercato.

Cioè AccountFreeMargin()/H, con H=D/(-f).

Ecco come è organizzato nel codice cov - vedi il 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     

Quindi tutto è corretto qui - rigorosamente secondo le regole.

Torci questo ai tuoi occhi, prova, controlla, condividi i risultati qui.

File:
 
ph3onix:

1. La prima cosa che mi viene in mente è che la dimensione del lotto dovrebbe essere basata sullo stop loss della posizione successiva,

2. conoscere la frazione del deoposit che la matematica di Vince raccomanda di usare nel commercio

3...la dimensione del lotto usata per testare gli EA in questo thread è un po' sbagliata


1. è qui che devi andare.

2. Non conosci la matematica di Vince, lui raccomanda un approccio completamente diverso, non stiamo parlando di "frazioni" come scrivi tu...

"

Optimal f in sé non è la percentuale del vostro conto che viene allocata per il trading, è il divisore della perdita più grande. Il quoziente di questa divisione è il valore per il quale dovete dividere il vostro conto totale, per scoprire quante scommesse piazzare o quanti contratti aprire sul mercato.

"

3. Tutto rigorosamente secondo le informazioni della fonte - leggete attentamente, soprattutto da pagina 31, confrontate sui vostri sOvi, controllate, condividete i risultati.

 

L'argomento non è chiuso, segue la continuazione...

La funzione di calcolo del lotto è disponibile pubblicamente qui nell'EA (vedere il trailer).

File:
 

È chiaro che state pensando troppo a qualcosa. Il TWR è una misura di quante volte il conto iniziale è stato aumentato. Il f ottimale è il rischio per trade come percentuale del deposito. TWR è una derivata della f ottimale. Basta calcolare la percentuale di rischio nel tester della strategia da 1 a 100% per trade. Dopo un certo valore, il profitto finale smetterà di crescere. Questo valore sarà il valore ottimale di f.

Se si fa un tale casino per una semplice percentuale del deposito, allora è spaventoso immaginare come si inizia a calcolare il G ottimale (sì, esiste una cosa del genere).

 
C-4:

È chiaro che state pensando troppo a qualcosa. Il TWR è una misura di quante volte il conto iniziale è stato aumentato. Il f ottimale è il rischio per trade come percentuale del deposito. TWR è una derivata della f ottimale. Basta calcolare la percentuale di rischio nel tester della strategia da 1 a 100% per trade. Dopo un certo valore, il profitto finale smetterà di crescere. Questo valore sarà il valore ottimale di f.

Se si crea un tale casino per la semplice percentuale di deposito, allora è spaventoso immaginare come si inizia a calcolare il G ottimale.


È già calcolato - tutti i battiti, tutti testati, vedi prima il thread... :-)

"Come si calcola il G ottimale..." - tutto è calcolato dalla fonte...

 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:

...

Se si fa un tale casino per una semplice percentuale del deposito, è spaventoso immaginare come si inizierà a calcolare il G ottimale (sì, esiste una cosa del genere).

Non l'ho ancora incontrato, lo cercherò, che tipo di uccello è questo - optimal G...?
 
Il G ottimale è il fattore di capitalizzazione del portafoglio. Per trovare il G ottimale, bisogna almeno ottimizzare la varianza del portafoglio totale ed essere fluenti nella teoria del portafoglio di Markowitz. Non vedo nulla del genere in questi calcoli.
 

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

2. Non vedo nulla di sbagliato nei calcoli di cui sopra.


1. Vedo - questo è più vicino al calcolo e all'ordine di formazione del portafoglio... Mi interessa la domanda.

2. Questo non è presente qui. Ho confuso l'optimum G con la media geometrica G, il cui calcolo è presente qui... :-)

Vedi il primo post della prima pagina del thread.

"

Commercio medio geometrico

Un trader può essere interessato a calcolare il suo commercio medio geometrico (cioè, il profitto medio ottenuto per contratto per scambio), assumendo che i profitti siano reinvestiti e che i contratti frazionati possano essere scambiati. Questa è l'aspettativa matematica quando si fa trading su una base di frazione fissa. In realtà, questo è il rendimento approssimativo del sistema per trade quando si usa una frazione fissa del conto.(La media geometrica è in realtà l'aspettativa matematica in dollari per contratto per scambio. Sottraete uno dalla media geometrica e otterrete l'aspettativa matematica. La media geometrica di 1,025 corrisponde all'aspettativa matematica del 2,5% per scambio). Molti trader guardano solo l'affare medio del sistema di mercato per vedere se vale la pena fare trading su questo sistema. Tuttavia, è il commercio medio geometrico (GAT) che dovrebbe essere preso in considerazionequando si prende una decisione.

dove G = media geometrica - 1;

f = quota fissa ottimale.

(Naturalmente, la perdita maggiore sarà sempre un numero negativo).

 
Se fossi in voi non mi lascerei trasportare troppo da queste stronzate. Tutta la matematica di Vince è basata sul montaggio. La f stessa è instabile e tende a crollare nel tempo, è anche estremamente sensibile allo Z-Score o effetto di asimmetria della leva, e dà una distribuzione dei profitti estremamente diseguale: il primo 90% del tempo ci vorrà per fare il 10% di profitto.
 
C-4:
Se fossi in voi non mi lascerei trasportare troppo da queste stronzate. Tutta la matematica di Vince si basa sul montaggio. La f stessa non è stabile e tende a crollare nel tempo, inoltre è estremamente sensibile allo Z-Score o effetto di asimmetria della leva, inoltre dà una distribuzione del profitto estremamente disomogenea: il primo 90% del tempo ci vorrà per fare il 10% di profitto.


Grazie, Vasily per l'informazione, che cos'è e a cosa può portare... Non sono molto addentro a questi calcoli del lotto, era solo interessante sbattere tutto fuori e guardare da diverse angolazioni e confrontarlo con altri approcci alla MM in un modo o nell'altro...

Lui, tra l'altro, tocca anche il tema della diversificazione con la teoria del portafoglio...:-) Soprattutto quando quelle parole sono evidenziate in rosso...:-) C'è un libro, ci sono formule - come si fa a non mettere queste informazioni in un codice e vedere come calcola il lotto in azione nei vari soviet, mi chiedo... Aprite il libro - scrivete un sistema che lo usi, guardate il suo comportamento in un tester, su una demo, per cominciare... questo e quello... :-) Scavare, in generale. A proposito, recentemente ho monitorato un conto demo con indicatori META-SOT, puramente sulla base del tuo articolo, senza ombre di altri tipi di analisi del comportamento del mercato - tutto è redditizio finora ... :-)

"

Il migliore

sistema, più alto è f. Più alto èf, maggiore è la perdita possibile, perché la perdita massima (in percentuale) non è inferiore a f. Il paradosso della situazione è che se un sistema è in grado di produrre un f ottimale sufficientemente alto, allora la perdita per tale sistema sarà anche sufficientemente alta. Da un lato la f ottimale vi permette di ottenere la più alta crescita geometrica, dall'altro vi crea una trappola in cui potete facilmente cadere.

Sappiamo che se usi f ottimale quando fai trading con una quota fissa, puoi aspettarti perdite significative (come percentuale del tuo saldo). f ottimale è come il plutonio - dà un potere enorme, ma è anche estremamente pericoloso. Queste grandi perdite sono un grosso problema, soprattutto per i principianti, perché il trading al livello di f ottimale crea un rischio di perdite enormi più velocemente che nel trading regolare. La diversificazione può mitigare notevolmente le perdite. Il lato positivo della diversificazione è che ti permette di fare molti tentativi (eseguire molti giochi) allo stesso tempo, aumentando così i tuoi profitti complessivi. È giusto dire che la diversificazione, mentre di solito è il modo migliore per appianare le perdite, non necessariamente le riduce e in alcuni casi può addirittura aumentare le perdite!

C'è un'idea sbagliata che le perdite possono essere completamente evitate se la diversificazione è abbastanza efficace. È vero, in una certa misura, che le perdite possono essere mitigate attraverso una diversificazione efficace, ma non possono mai essere completamente evitate. Non lasciatevi ingannare. Non importa quanto sia buono il sistema applicato, non importa quanto efficacemente diversifichi, incontrerai comunque perdite significative. La ragione di questo non è perché i vostri sistemi di mercato sono reciprocamente correlati, perché ci sono momenti in cui la maggior parte o tutti i sistemi di mercato del portafoglio lavorano contro di voi quando pensate che non dovrebbe. Provate a trovare un portafoglio con cinque anni di dati storici in modo che tutti i sistemi di trading lavorino a f ottimale e abbiano comunque una perdita massima inferiore al 30%! Non sarà facile. Non importa quanti sistemi di mercato vengono utilizzati. Se vuoi fare tutto in modo matematicamente corretto, devi essere pronto a perdere dal 30 al 95% del saldo del tuo conto. È necessaria una disciplina rigorosa e non tutti possono seguirla.

Non appena un trader rinuncia a negoziare un numero costante di contratti, si trova di fronte al problema di quanti negoziarne. Succede sempre, indipendentemente dal fatto che il commerciante riconosca o meno questo problema. Negoziare un numero costante di contratti non è una soluzione, perché in questo modo non raggiungerai mai una crescita geometrica. Perciò, che vi piaccia o no, la questione di quanti scambiarne nel prossimo scambio sarà inevitabile per tutti. Scegliere semplicemente una quantità casuale può portare a un grave errore. La f ottimale è l'unica soluzione matematicamente corretta.

Teoria moderna del portafoglio

Pensate a una situazione con un f ottimale e un sistema di mercato perdente: migliore è il sistema di mercato, maggiore è il valore di f. Tuttavia, se si fa trading con f ottimale, la perdita (storicamente) non può mai essere inferiore a f. In generale, migliore è il sistema di mercato, maggiori saranno le perdite intermedie (come percentuale del saldo del conto) se si fa trading a f ottimale. Quindi, se volete raggiungere la massima crescita geometrica, dovete essere preparati a gravi perdite lungo la strada.

"