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

 
Vinin:

Estou falando apenas sobre o número de ofícios a serem analisados. Real ou virtual.


Ahh, agora entendo, talvez essa não seja a abordagem correta, pois a amostra deveria ser representativa, ou seja, quanto mais melhor...

Todos, é claro, têm seus próprios critérios - para alguém 200 é suficiente, e para alguém 500 não é suficiente...

Continuo procurando uma solução ótima em busca do ótimo (desculpe-me por ser tofthológico) f por R.Vince usando seu método de média geométrica.

 
MaxZ:
Esse não é exatamente o conselho que eu estava dando. Já é mais a sua abordagem. O importante é que isso também se revela correto.


Bem, como - porque fiz exatamente isso, apenas diretamente em relação ao TWR - mas não em relação a sua média geométrica G.

"Pois se a raiz do grau K do número_1 é maior que a raiz do mesmo grau K do número_2, então o número_1 é maior que o número_2! :))))))"

TWR é "capital finito relativo" (Terminal Riqueza Relativo) ,

 TWR = MathPow(TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))),0.33); // TWR - это произведение всех HPR    
 
Roman.:


Faço todos os cálculos em teeter totter sobre os preços de abertura, negocia de 2002 até a data 2011 - 503, o comércio mais retraído = -628.

Os resultados estão acima. Agora estou testando em outras variantes do EA.

Aqui está o texto da abordagem para resolver este problema a partir da fonte original - p. 31.

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 ideal olhando para vários valores de f de 0 a 1. O f ideal corresponde ao valor mais alto de TWR.

3. Uma vezencontrado f, pegue a raiz do grau N TWR (N é o número total de negócios). Este é o 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 que você deve 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 (baseado em 1 unidade) e seu risco (baseado em 1 unidade). Muitas pessoas pensam que a fração fixa ideal é a porcentagem da conta que é alocada


Talvez faça sentido ir a logaritmos. Substituir o produto pela soma
 
Vinin:

Talvez faça sentido ir a logaritmos. Substituir o produto pela soma


Obrigado Victor, é possível, vou ter que experimentar, mas por enquanto estou testando esta opção de reduzir o produto - levando-o ao poder de 1/3.

//TWR — это «относительный конечный капитал» (Terminal Wealth Relative), 
 TWR = MathPow(TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))),0.33); // TWR - это произведение всех HPR    
 
Roman.:


Bem, como - porque eu fiz exatamente isso, apenas diretamente em relação ao TWR - mas não em relação a sua média geométrica G.

"Pois se a raiz do grau K do número_1 é maior que a raiz do mesmo grau K do número_2, então o número_1 é maior que o número_2! :))))))"

TWR é "capital finito relativo" (Terminal Riqueza Relativo) ,

Você tem uma transação em falta:

TWR = TWR* ...

Não sei como isso afetará o cálculo do lote de Vince, mas minha recomendação era não excluir esta operação.

Minha sugestão foi fazer a matriz TWR[]. E G conta assim:

G *= MathPow(TWR[orderIndex], 1/N);


Romano.:


Obrigado Victor, é possível, vou ter que experimentar, mas por enquanto estou testando esta variante de redução de produto - levando-a ao poder de 1/3.

Mesmo se você remover a raiz de terceiro grau, ainda assim não haverá um transbordamento duplo.
 
Roman.:
for ( orderIndex = 1;orderIndex<Qnt; orderIndex++) //при заданной f проходим по всем закрытым ордерам
{                                                  // и считаем относительный конечный капитал (TWR)
   TWR = TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))); // TWR - это произведение всех HPR
}

E por que você tem a condição "orderIndex<Qnt" no laço for()? Então você está pulando o último elemento da matriz TWR?
 
MaxZ:

Você tem uma operação em falta:

Não sei como isto afetará o cálculo do lote Vince, mas minha recomendação era não descartar esta operação.

Eu sugeri fazer a matriz TWR[]. E o G conta assim:


Mesmo se você remover a raiz de terceiro grau, ainda assim não haverá um transbordamento duplo.


Tenho um transbordo, sendo todas as outras coisas iguais, incluindo o valor total: número de negócios = 503 e perda máxima = 628...

Você deve verificar em seu próprio lugar, em qualquer de suas placas - o código é afixado na primeira página - adicionar em variáveis externas e na função de-enith... Isso é tudo.

 

MaxZ:


E por que você tem exatamente a condição "orderIndex<Qnt" em seu loop for()? Acontece que você pula o último elemento da matriz TWR?


Não há nenhuma matriz de TWR, não é necessário organizá-la, basta calcular f e isso é tudo, é apenas interessante comparar TWR em f diferente (no loop) e isso é tudo, saber f valor no TWR máximo e isso é tudo.

Tudo funciona bem lá comparar - primeira e última linha - o valor do lucro na última troca de "Log" e "Resultado" respectivamente...


Os números do comércio são diferentes, pois em minha coruja o fechamento é da última ordem no mercado para a primeira. O principal é que o número bate - 503 transações - lá (no testador) e lá (no cálculoX) +

valor do último comércio 503 fechado 1076 - a busca de ordem por histórico na função de-it é realizada desde o início até o último (último) fechado.

 
Roman.:


TWR array - não há necessidade de organizá-lo de forma alguma, basta calcular f e isso é tudo, ele está interessado apenas em comparar TWR em f diferente (em loop) e tudo, para saber o valor f no máximo TWR e isso é tudo.

Tudo funciona bem lá comparar - primeira e última linhas - o valor do lucro na última troca das guias "Log" e "Resultado", respectivamente...


Ficou completamente confuso. Eu quis dizer a matriz Mas_Qutcome_of_transactions[]. Porque se verifica que um de seus elementos não é contado em loop.

E por que eu deveria olhar o relatório se vejo uma imprecisão no código? Eu não acredito em milagres! :D

E talvez os negócios fechados pelo testador não devam ser levados em conta? Afinal, não foi seu TS que os fechou...

 
MaxZ:

Estou completamente confuso. Eu quis dizer matriz Mas_Qutcome_of_transactions[]. Porque se verifica que o laço não conta um elemento nele.

E por que eu deveria olhar o relatório se vejo uma imprecisão no código? Eu não acredito em milagres! :D

E talvez os negócios fechados pelo testador não devam ser levados em conta? Não foi por seu TS que foram fechados...


Sim, vou verificar com a condição <=Qnt. Todos os negócios fechados pela TS, o testador fechou os últimos 10 (creio que isto está dentro de uma tolerância razoável... :-))))