Cálculo de lote por Vince - página 11

 

Encontrar o fótimo usando a média geométrica.

No comércio real, o tamanho das perdas e ganhos estará em constante mudança. Portanto, as fórmulas de Kelly não podem nos dar o f.ideal correto . Quão corretamente do ponto de vista matemático para encontrar o f ideal , o que nos permitirá determinar o número de contratos a serem negociados? Vamos tentar responder a esta pergunta. Primeiro, temos que modificar a fórmula para encontrar HPR para incluir f:

ver mais fórmulas do primeiro post

mais

Vimos que o melhor sistema comercial é o sistema com a maior média geométrica. Para calcular a média geométrica, precisamos saber f. Portanto, vamos descrever nossas ações passo a passo.

1. Pegue o histórico das transações no sistema de mercado em questão.

2. Encontre o f ótimo olhando para vários valores de f de 0 a 1. O f ótimo corresponde ao valor mais alto de TWR.

3. Uma vezencontrado f, pegue a raiz do grau N doTWR (N é o número total de negócios). Este é seu meio geométrico para este sistema de mercado. Agora você pode usar o meio geométrico obtido para comparar este sistema com outros. O valor f dirá a você quantos contratos comercializar neste sistema de mercado. Uma vez encontrado f, ele pode ser convertido no equivalente em dinheiro, dividindo a maior perda pelo ótimo/ negativo. Por exemplo, se a maior perda for igual a $100, e o ideal f = 0,25, então -$100 / -0,25 = $400. Em outras palavras, você deve apostar 1 unidade para cada conta de $400. Para simplificar, você pode calcular tudo com base em uma unidade (por exemplo, um chip de $5 ou um contrato de futuros, ou 100 ações). O número de dólares a alocar para cada unidade pode ser calculado dividindo sua maior perda pelo ótimo negativo f. O ótimof é o resultado do equilíbrio entre a rentabilidade do sistema (com base em 1 unidade) e seu risco (com base em 1 unidade). Muitas pessoas pensam que a fração fixa ideal é a porcentagem da conta que é alocada às suas apostas. Isto é completamente errado. Tem que haver outro passo. O f ideal por si só não é a porcentagem de sua conta que é alocada ao comércio, é o divisor da maior perda. O quociente desta divisão é o valor pelo qual você tem que dividir sua conta total a fim de descobrir quantas apostas a fazer ou quantos contratos abrir no mercado.

Isto é, AccountFreeMargin()/H, com H=D/(-f).

Veja como está organizado no código cov - veja o 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     

Portanto, tudo está correto aqui - rigorosamente segundo as regras.

Torça isto para seus sOves, teste, verifique, compartilhe os resultados aqui.

Arquivos anexados:
 
ph3onix:

1. A primeira coisa que vem à mente é que o tamanho do lote deve ser baseado no stop loss na próxima posição,

2. Conhecer a fração do deoposito que a matemática de Vince recomenda usar no comércio.

3....o tamanho do lote utilizado nos testes de EAs nesta linha está um pouco errado


1. aqui é para onde você precisa ir.

2. Você não está familiarizado com a matemática de Vince, ele recomenda uma abordagem completamente diferente, não estamos falando de "frações" como você escreve ...

"

O fideal em si não é a porcentagem de sua conta que é alocada para negociação, é o divisor da maior perda. O quociente dessa divisão é o valor, pelo qual você precisa dividir sua conta total, a fim de descobrir quantas apostas a fazer ou quantos contratos abrir no mercado.

"

3. Tudo estritamente de acordo com as informações da fonte - leia com atenção, especialmente a partir da página 31, compare em seus sOves, verifique, compartilhe os resultados.

 

O tema não está encerrado, segue-se a continuação...

A função de cálculo do lote está disponível publicamente aqui na EA (ver trailer).

Arquivos anexados:
 

Vocês estão claramente repensando algo. O TWR é uma medida de quantas vezes a conta inicial foi aumentada. O f ideal é o risco por comércio como porcentagem do depósito. O TWR é um derivado do ótimo f. Basta calcular a porcentagem de risco no testador de estratégia de 1 a 100% por comércio. Após um certo valor, o lucro final deixará de crescer. Este valor será o valor ideal de f.

Se você faz tal confusão por uma simples porcentagem do depósito, então é assustador imaginar como você começa a calcular o G ótimo (sim, existe tal coisa).

 
C-4:

Vocês estão claramente repensando algo. O TWR é uma medida de quantas vezes a conta inicial foi aumentada. O f ideal é o risco por comércio como porcentagem do depósito. O TWR é um derivado do ótimo f. Basta calcular a porcentagem de risco no testador de estratégia de 1 a 100% por comércio. Após um certo valor, o lucro final deixará de crescer. Este valor será o valor ideal de f.

Se você criar tal confusão para uma simples porcentagem de depósito, então é assustador imaginar como você começa a calcular o G ideal.


Já está calculado - todas as batidas, todas testadas, veja primeiro o fio. :-)

"Como se calcula o G ideal..." - tudo é calculado a partir da 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 você fizer tal confusão por uma simples porcentagem do depósito, é assustador imaginar como você vai começar a calcular o G ótimo (sim, existe tal coisa).

Ainda não a encontrei, vou procurá-la, que tipo de ave é esta - G...?
 
O G ótimo é o fator de capitalização da carteira. Para encontrar o G ideal, é preciso pelo menos otimizar a variação da carteira total e ser fluente na teoria da carteira de Markowitz. Não vejo nada do tipo nestes cálculos.
 

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

2. Não vejo nada de errado com os cálculos acima.


1. Vejo - isto está mais próximo do cálculo e da ordem de formação da carteira. Estou interessado na pergunta.

2. isto não está presente aqui. Confundi o G ótimo com o G médio geométrico, cujo cálculo está presente aqui. :-)

Veja o primeiro post da primeira página do tópico.

"

Comércio médio geométrico

Um comerciante pode estar interessado em calcular sua média geométrica de comércio (ou seja, o lucro médio obtido por contrato por comércio), assumindo que os lucros são reinvestidos e os contratos fracionários podem ser negociados. Esta é a expectativa matemática quando se negocia com base em uma fração fixa. Na realidade, este é o retorno aproximado do sistema por operação quando se utiliza uma fração fixa da conta.(A média geométrica é na verdade a expectativa matemática em dólares por contrato por comércio. Subtraia um da média geométrica e você obtém a expectativa matemática. A média geométrica de 1,025 corresponde à expectativa matemática de 2,5% por negociação). Muitos comerciantes olham apenas para a média de negociação do sistema de mercado para ver se vale a pena negociar neste sistema. Entretanto, é a média geométrica do comércio (GAT) que deve ser levada em consideraçãona tomada de uma decisão.

onde G = média geométrica - 1;

f = participação fixa ideal.

(Claro, a maior perda será sempre um número negativo).

 
Eu não me entusiasmaria muito com esta porcaria se eu fosse você. Todas as matemáticas de Vince são baseadas no encaixe. O f em si é instável e tende a colapsar com o tempo, é também extremamente sensível ao efeito Z-Score ou assimetria de alavancagem, e dá uma distribuição de lucro extremamente desigual: os primeiros 90% do tempo que levará para se obter 10% de lucro.
 
C-4:
Eu não me entusiasmaria muito com esta porcaria se eu fosse você. Toda a matemática de Vince é baseada no encaixe. O f em si não é estável e tende a colapsar com o tempo, além disso, é extremamente sensível ao efeito Z-Score ou assimetria de alavancagem, também dá uma distribuição de lucro extremamente desigual: os primeiros 90% do tempo que levará para se obter 10% de lucro.


Obrigado, Vasily pela informação, o que é e ao que pode levar... Não estou muito interessado nestes cálculos de lote, só foi interessante bater tudo e olhar de ângulos diferentes e compará-lo com outras abordagens ao MM em um ou outro pacto...

A propósito, ele também aborda o tema da diversificação com a teoria da carteira...:-) Especialmente quando estas palavras estão destacadas em vermelho...:-) Há um livro, há fórmulas - como não colocar essas informações em um código e ver como ele calcula o lote em ação em vários soviets, eu me pergunto... Abra o livro - escreva um sistema usando-o, veja seu comportamento em um testador, em uma demonstração, para começar... isto e aquilo... :-) Escavação, em geral. A propósito, recentemente monitorei uma conta demo com indicadores META-SOT, puramente com base em seu artigo, sem sombras de outros tipos de análise do comportamento do mercado - tudo é lucrativo até agora ... :-)

"

Quanto melhor

sistema, a maior f. Quanto maior f, maior a perda possível, pois a perda máxima (como porcentagem) não é menor que f. O paradoxo da situação é que se um sistema for capaz de produzir um f ideal suficientemente alto, então a perda para tal sistema também será suficientemente alta. Por um lado o f ideal permite obter o maior crescimento geométrico, por outro lado cria uma armadilha para você que você pode facilmente cair.

Sabemos que se você usa f ótimo ao negociar uma ação fixa, você pode esperar perdas significativas (como porcentagem de seu saldo). f ótimo é como plutônio - dá uma enorme potência, mas também é extremamente perigoso. Essas grandes perdas são um grande problema, especialmente para iniciantes, porque a negociação no nível de f ótimo cria um risco de grandes perdas mais rápido do que em negociações regulares. A diversificação pode mitigar muito as perdas. O lado positivo da diversificação é que ela permite fazer muitas tentativas (fazer muitos jogos) ao mesmo tempo, aumentando assim seus lucros totais. É justo dizer que a diversificação, embora geralmente seja a melhor maneira de suavizar as perdas, não as reduz necessariamente e, em alguns casos, pode até aumentar as perdas!

Há um conceito errado de que as perdas podem ser completamente evitadas se a diversificação for suficientemente eficaz. É verdade até certo ponto que as perdas podem ser mitigadas através de uma diversificação eficaz, mas elas nunca podem ser completamente evitadas. Não se deixe enganar. Não importa quão bom seja o sistema aplicado, não importa quão efetivamente você diversifique, você ainda encontrará perdas significativas. A razão para isto não é porque seus sistemas de mercado estão mutuamente correlacionados, porque há momentos em que a maioria ou todos os sistemas de mercado do portfólio trabalham contra você quando você acha que não deveria. Tente encontrar um portfólio com cinco anos de dados históricos para que todos os sistemas de negociação funcionem em um nível ótimo e ainda tenham uma perda máxima de menos de 30%! Não será fácil. Não importa quantos sistemas de mercado são utilizados. Se você quiser fazer tudo matematicamente correto, você tem que estar preparado para perder 30 a 95% do saldo de sua conta. É necessária uma disciplina rigorosa e nem todos podem segui-la.

Assim que um comerciante desiste de negociar um número constante de contratos, ele enfrenta o problema de quantos negociar. Acontece sempre, independentemente de o comerciante reconhecer ou não este problema. Negociar um número constante de contratos não é solução, pois desta forma você nunca conseguirá um crescimento geométrico. Portanto, quer você goste ou não, a questão de quantos negociar no próximo comércio será inevitável para todos. A simples escolha de uma quantidade aleatória pode levar a um grave erro. O f ideal é a única solução matematicamente correta.

Teoria moderna da carteira

Pense numa situação com um sistema f ótimo e um sistema de mercado perdedor. Quanto melhor o sistema de mercado, maior o valor de f. Entretanto, se você comercializa com f ótimo, a perda (historicamente) nunca pode ser inferior a f. De modo geral, quanto melhor o sistema de mercado, maiores serão as perdas intermediárias (como uma porcentagem do saldo da conta) se você operar no ótimo f. Assim, se você quer atingir o maior crescimento geométrico, deve estar preparado para grandes perdas ao longo do caminho.

"