Resposta

Bug de gerenciamento de dinheiro compra lotes > saldo da conta

1 resposta

Travis Silvers

Assinante, bbp_participante, cliente, comunidade, sq-ultimate, 3 respostas.

Perfil da visita

4 meses atrás #284916

Ao usar o construtor, algo dá errado e são geradas estratégias que compram o tamanho máximo do lote, o que excede o saldo da conta.

Ex. Usando o tamanho do estoque por preço, com um capital inicial de $25.000 e um tamanho máximo de lote de 10.000, a estratégia COMPRARÁ 10.000 lotes a $60,52, o que excede o poder de compra de $25.000.

1. Isso não acontece com todas as estratégias

2. Às vezes, somente a primeira BUY terá o tamanho máximo do lote.

3. Suspeito que isso esteja relacionado ao tipo de ordem, indicador de cálculo de preço, mas não confirmei.

Anexei um exemplo de estratégia com essa estranheza acontecendo. Ficarei feliz em simplificar o gerenciamento de dinheiro no curto prazo se isso interromper o bug / tamanho de lote inválido.

Anexos:
Você deve ser logado para ver os arquivos anexos.

0

Travis Silvers

Assinante, bbp_participante, cliente, comunidade, sq-ultimate, 3 respostas.

Perfil da visita

4 meses atrás #284933

Isso é definitivamente um bug. Estou analisando a função criada para o Tradestation:

[code]{

IntPriceLevel = Round2Fraction((SQ_FractalDown(5)[2] + (PriceEntryMult1 * (SQ_BollingerBands(Close, BBRangePeriod1, 2, 0)[0]-SQ_BollingerBands(Close, BBRangePeriod1, 2, 1)[0]))));

}[\code]

Podemos ver que o IntPriceLevel é definido usando um valor gerado sem limites ou verificações; teoricamente, os limites e as verificações precisam ser executados na função que consome o valor.

Podemos ver mais tarde que o NumberOfShares a ser comprado é definido por meio desse código:

[code]{

If UseMoneyManagement Then NumberOfShares = SQ_StocksSizeByPrice(IntPriceLevel,mmUseAccountBalance,mmMaxSize,InitialCapital,mmMultiplier)

}[\code]

O IntPriceLevel parece não ser o valor correto a ser usado na chamada SQ_StocksSizeByPrice em comparação com o capital/saldo e parece determinar incorretamente o tamanho do estoque.

Para evitar que esse erro seja criado no construtor, precisamos:

  1. Ajustar os blocos de entrada utilizados
  2. ou usar somente os tipos de ordem de entrada no mercado.

Os tipos de ordem de entrada no mercado (o que eu fiz e verifiquei) são sugeridos como uma solução alternativa no arquivo StocksSizeByPrice_method.tpl, que é responsável pela geração do código desse bloco. Na linha 3, vemos que o primeiro parâmetro para SQ_StockSizeByPrice é Close ou IntPriceLevel, com base no fato de o tipo de ordem ser MARKET:

[code]{

SQ_StocksSizeByPrice(
CloseIntPriceLevel,
mmUseAccountBalance,
mmMaxSize,
Capital inicial,
mmMultiplicador
)

}[\code]

Portanto, o uso exclusivo dos tipos de ordem MARKET deve evitar o surgimento desse problema.

**ISSO É APENAS UMA SOLUÇÃO ALTERNATIVA**

Os desenvolvedores devem absolutamente corrigir o SQ_StocksSizeByPrice para que seja limitado pelos valores reais de preço e pelo saldo da conta.

0

Visualizando 1 resposta (de um total de 1)