//@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:
//@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.