Ferramentas do usuário

Ferramentas do site


Este projeto só é possível com o apoio e colaboração dos próprios visitantes.

E não precisa ser contribuição financeira! Eu não vou bloquear nenhum conteúdo, mas...
Se o conteúdo te ajudar de alguma forma, considere retribuir desativando o bloqueador de propagandas.

👍
tradingview:backtesting:fechando_posicao_mercado

Fechando Posição a Mercado

  • Mesmo sendo possível sair de um entrada específica via código - quando ordens são mostradas na Lista de Trades na aba Strategy Tester - elas estão associadas através de regras FIFO (first in, first out).
  • Se um ID de uma ordem de entrada não for especificada em uma ordem de saída no código - a ordem de saída fecha a primeira ordem de entrada que abriu a posição no mercado.
//@version=4
strategy("Saída Demo v1", pyramiding=2, overlay=true)
strategy.entry("Compra1", strategy.long, 5, when = strategy.position_size == 0 and year > 2014)
strategy.entry("Compra2", strategy.long, 10, stop = strategy.position_avg_price + strategy.position_avg_price*0.1, when = strategy.position_size == 5)
strategy.exit("bracket", loss=10, profit=10, when=strategy.position_size == 15)
  • O código acima envia 2 ordens na sequência “Compra1” a mercado e “Compra2” a 10% acima do preço (ordem stop).
  • A ordem de saída é enviada apenas após a ordem de entrada ser preenchida.
  • Se você aplicar esse código ao gráfico - você verá que cada entrada será fechada por uma ordem de saída mesmo que nós não tenhamos especificado o ID da ordem de entrada nesta linha:
    • strategy.exit(“bracket”, loss=10, profit=10, when=strategy.position_size == 15)
  • Outro exemplo:
//@version=4
strategy("Saída Demo v2", pyramiding=2, overlay=true)
strategy.entry("Compra1", strategy.long, 5, when = strategy.position_size == 0)
strategy.entry("Compra2", strategy.long, 10, stop = strategy.position_avg_price + strategy.position_avg_price*0.1, when = strategy.position_size == 5)
strategy.close("Compra2", when=strategy.position_size == 15)
strategy.exit("bracket", "Compra1", loss=10, profit=10, when=strategy.position_size == 15)
plot(strategy.position_avg_price)
  • Abre 5 contratos de compra com a ordem “Compra1”.
  • Extende a posição de compra comprando 10 mais contratos a 10% acima do preço com a ordem “Compra2”.
  • A ordem de saída (strategy.close) para vender 10 contratos (saída de “Compra2”) é preenchida.
  • Se você observar a plotagem - você pode ver a média de preço de entrada = “Compra2” - execução de preço e nossa estratégia fechou exatamente neste preço de entrada, enquanto na aba do Trade List nós podemos ver que ele fechou a primeira ordem “Compra1” e metade da segunda “Compra2”.
    • Isso significa que não importa qual ordem você especifica para estratégia fechar, o emulador irá ainda assim fechar a primeira, de acordo com regras FIFO. Funciona da mesma forma se você estivesse operando no mercado real.

tradingview/backtesting/fechando_posicao_mercado.txt · Última modificação: 30/01/2022 01:46 por schillerapp