- Crie uma estratégia de trade usando condicionais e variáveis, calculando o lucro no final das 100 iterações ( 100 cotações de preços simuladas). Por exemplo, uma estratégia pode ser: caso o preço diminuir por 2 vezes consecutivas, compre o ativo; caso o preço aumentar por 2 vezes consecutivas, venda o ativo. Reporte o lucro final e o número total de trades realizados. Para simplificar, pode assumir:
- que uma compra ou uma venda é sempre de uma única ação/ativo;
- que você sempre tem saldo para comprar 1 ativo independente do valor dele;
- que uma compra antecede uma venda e vice-versa, ou seja, sempre se alternam (ver exemplo abaixo).
a) Iteração 1: Cotação: 60 reais.
b) Iteração 2: Cotação: 57 reais.
c) Iteração 3: Cotação: 53 reais (caiu 2 vezes). Comprei um ativo a 53 reais.
d) Iteração 4: Cotação: 59 reais.
e) Iteração 5: Cotação: 70 reais (subiu 2 vezes). Vendi um ativo a 70 reais; (lucro de 17)
f) …
g) Iteração 100: (lucro acumulado final de: 44; trades: 8)
Dica: para esta simulação ser rápida, desabilite a parte gráfica, ou seja, não use comandos do módulo turtle (tartaruga).
a) Iteração 1: Cotação: 60 reais.
b) Iteração 2: Cotação: 57 reais.
c) Iteração 3: Cotação: 53 reais (caiu 2 vezes). Comprei um ativo a 53 reais.
d) Iteração 4: Cotação: 59 reais.
e) Iteração 5: Cotação: 70 reais (subiu 2 vezes). Vendi um ativo a 70 reais; (lucro de 17)
f) …
g) Iteração 100: (lucro acumulado final de: 44; trades: 8)
Passo 1
O que o enunciado pede e quais dados temos:
- Pedem que eu crie uma estratégia de trade usando condicionais e variáveis e que eu simule
) cotações de preços (ou seja, ) iterações). - A estratégia a aplicar é: se o preço cair por
) vezes consecutivas, compro ) ação; se o preço subir por ) vezes consecutivas, vendo ) ação. - Regras adicionais que devemos respeitar (dadas no enunciado):
- Cada compra ou venda é exatamente de
) unidade do ativo. - Há sempre saldo suficiente para comprar
) ativo. - As operações se alternam: compra antecede venda e venda antecede compra — ou seja, não faço duas compras seguidas sem uma venda entre elas.
- Cada compra ou venda é exatamente de
- O objetivo final: reportar o lucro final após as
) iterações e o número total de trades realizados. - Observação que vou seguir: vou contar como “trade” qualquer execução (compra ou venda). O lucro final reportado será o lucro realizado (ou seja, soma das diferenças venda - compra para pares já fechados). Se houver posição aberta ao final das
) iterações, indicarei separadamente que ela está em aberto (mas NÃO a incluirei no lucro realizado, a menos que você peça marcar a mercado).
Passo 2
Quais variáveis e estruturas usamos (explicação didática e simples)
- Vamos precisar destas variáveis principais:
-
: preço corrente do ativo em cada iteração. -
: indica se estamos com posição aberta. Vou usar para “sem ação” e para “possuindo 1 ação”. -
: armazena o preço em que compramos a ação (válido somente quando ). -
: acumulador do lucro realizado (começa em )). -
: contador do número total de trades executados (cada compra ou venda incrementa em )). -
e : contadores de quedas consecutivas e altas consecutivas. Sempre que o preço atual é menor que o anterior incrementamos e zeramos ; e vice-versa.
-
- Lógica condicional (explicação didática):
- Um condicional é uma instrução “se … então …” que toma decisão com base numa condição booleana (verdadeira/falsa). Exemplo simples: “se
e então comprar”. - Em pseudocódigo a compra seria:
- if
and then: -
- if
- A venda análoga:
- if
and then: -
- if
- Um condicional é uma instrução “se … então …” que toma decisão com base numa condição booleana (verdadeira/falsa). Exemplo simples: “se
- Por que organizar assim? Porque precisamos acompanhar sequência de movimentos (para detectar dois baixas ou dois altas) e garantir alternância de operações pela variável
.
Passo 3
Como vou gerar os
) preços de forma simples, determinística e fácil de calcular na prova (escolha de método)
- Para a simulação eu poderia usar um processo aleatório (por exemplo, ruído normal), mas isso deixa o resultado diferente a cada execução e também é mais trabalhoso de calcular manualmente.
- Em vez disso escolho uma sequência determinística e periódica de variações que deixe o padrão claro e que facilite a contagem de trades manualmente. A sequência de variações que escolho (deltas) é:
e essa sequência de deltas se repete até completarmos ) preços. - Explicação do porquê: esse padrão cria exatamente “duas quedas seguidas” e depois “duas altas seguidas”, o que dispara sempre uma compra seguida de uma venda em cada ciclo. Assim consigo calcular lucro por ciclo e multiplicar pelo número de ciclos — método prático e perfeitamente válido para demonstrar a estratégia.
- Vou começar o preço inicial em
.
Passo 4
Simulação do primeiro ciclo passo a passo (mostrando as variáveis mudando)
- Iteração
): preço . Não há movimento anterior, então e . , , . - Aplicando o primeiro delta
para obter o preço da iteração ): - Iteração
: . - Movimento: caiu em relação ao anterior (
), então e . - Nenhuma operação porque ainda não chegou a
) quedas consecutivas.
- Iteração
- Aplicando o segundo delta
: - Iteração
: . - Movimento: caiu novamente (
), então , . - Agora condição de compra satisfeita:
e . - Executamos compra:
-
. -
. -
.
-
- Iteração
- Aplicando o terceiro delta
: - Iteração
: . - Movimento: subiu (
), então , . - Ainda não vendemos porque precisamos de
) altas consecutivas.
- Iteração
- Aplicando o quarto delta
: - Iteração
: . - Movimento: subiu novamente (
), então . - Condição de venda satisfeita:
e . - Executamos venda:
- Lucro dessa operação:
. -
. -
. -
.
- Lucro dessa operação:
- Iteração
- Conclusão do primeiro ciclo: compramos em
) e vendemos em ) com lucro de ) e ) trades realizados.
Passo 5
Generalização: lucro por ciclo e periodicidade
- Observe que a cada repetição completa da sequência de deltas
obtemos exatamente: - Compra no terceiro preço relativo ao começo do ciclo (preço inicial menos
)). - Venda duas etapas depois, com preço de venda igual ao preço de compra mais
).
- Compra no terceiro preço relativo ao começo do ciclo (preço inicial menos
- Portanto o lucro por ciclo é constante e igual a:
- Em termos de iterações: começamos com
) preço inicial e cada ciclo consome ) deltas, ou seja, ) novas cotações. Para formar preços até ) iterações, temos ) deltas disponíveis (porque o primeiro preço já está dado). Logo o número de ciclos completos é: (Aqui é a função “parte inteira”, ou “floor”.)
Passo 6
Cálculo do lucro realizado a partir dos ciclos completos
- Cada ciclo completo dá
) de lucro e gera ) trades (uma compra e uma venda). - Para
) ciclos completos:
Passo 7
O que sobra até
) iterações e se há trades adicionais
- Usamos
) deltas para esses ) ciclos, o que junto com o preço inicial gera ) preços. Ainda faltam ) preços (ou seja, ) deltas adicionais) para chegar a ) iterações. - Aplicando os
) deltas seguintes (seguindo o padrão ): - O primeiro deles fará o preço cair (contando como
). - O segundo fará uma segunda queda (
), o que dispara UMA COMPRA no penúltimo preço (isto é, haverá uma compra extra). - O terceiro é um aumento (
), mas não chega a duas altas consecutivas, portanto NÃO há venda adicional antes de chegar ao fim das ) iterações.
- O primeiro deles fará o preço cair (contando como
- Conclusão: há uma compra adicional no final que fica com posição aberta (não é fechada), então ela conta como um trade executado, mas não gera lucro realizado dentro das
) iterações. - Assim:
Passo 8
Resultado final (lucro realizado, número total de trades, posição final)
- Lucro realizado (apenas com pares compra-venda fechados) é:
- Número total de trades executados (contando compras e vendas) é:
- Posição ao final das
) iterações: - Ficamos com
(uma ação em carteira) porque a última operação foi uma compra sem venda subsequente. - Se você quiser o valor de marcação a mercado dessa posição aberta, posso calcular: a compra extra aconteceu no preço da iteração
). Com o padrão usado, esse preço é: - O preço final antes do bloco final (chegando no início dos 3 deltas restantes) era
. Aplicando e obtemos e . Mas como você pediu apenas lucro realizado, eu não incluí mark-to-market no lucro final. Se quiser, calculo o valor não realizado.
- O preço final antes do bloco final (chegando no início dos 3 deltas restantes) era
- Ficamos com
Resposta
Lucro realizado final:
.
Número total de trades realizados: .
Número total de trades realizados: