A estratégia de ruptura de posição dupla realiza o rastreamento da tendência e a obtenção de lucros através do estabelecimento de posições longas e curtas simultaneamente.
A lógica central desta estratégia é a seguinte:
Utilize a variável percentagem para definir o tamanho da posição em 10%.
Use bar_index para determinar se a barra atual é uma barra par ou ímpar.
Se for uma barra par, execute a lógica de abertura de posição longa. Use alert_message para enviar uma mensagem webhook com informações como posição de abertura, preços de take profit e stop loss, etc. Abra posição longa através da estratégia. entrada.
Se for uma barra ímpar, execute a lógica de abertura de posição curta.
Após abrir curto, use o alerta para enviar uma mensagem webhook com informações como posição de fechamento, preços de take profit e stop loss, etc. Feche a posição longa anterior através de alerta.
Esta estratégia pode lucrar do lado longo e curto, estabelecendo posições em ambos os lados. Ela pode ganhar lucro quando há um avanço em qualquer direção.
As vantagens desta estratégia são as seguintes:
Pode lucrar com movimentos do mercado, tanto longos como curtos, existindo oportunidades para abrir posições e obter lucros, quer o mercado suba ou desça.
A partir daí, a empresa pode utilizar ao máximo o capital para negociar, estabelecendo posições em ambos os lados.
Depois de estabelecer posições duplas, pode seguir a tendência em tempo útil quando houver um avanço.
Adota um stop-loss de trailing para parar a tempo e controlar os riscos.
Usado com webhook e API de troca, realiza negociação automatizada.
Há também alguns riscos com esta estratégia:
Quando o mercado está limitado, ambas as posições podem ficar presas.
Os custos de negociação são mais elevados. A abertura em duas direcções leva a mais custos de negociação.
A necessidade de encontrar produtos adequados para o comércio. A flutuação dos produtos não deve ser nem demasiado elevada nem demasiado baixa.
Precisamos de observar o mercado de perto e ajustar as posições a tempo.
Os tamanhos das posições devem ser definidos com precisão, pois um tamanho demasiado grande significa um elevado risco, um tamanho demasiado pequeno significa um lucro limitado.
A estratégia pode ser otimizada a partir dos seguintes aspectos:
Ajustar o tamanho da posição com base nas diferentes características do produto.
Otimizar o algoritmo de stop loss para reduzir os desencadeadores desnecessários de stop loss, garantindo simultaneamente uma stop loss eficaz.
Incorporar indicadores de tendência para determinar a direção geral da tendência, menor frequência de negociação e custos.
Adicionar condições de reentrada às posições abertas novamente após o stop loss.
Usar ordens de limite em vez de ordens de mercado para entrar no mercado a preços adequados.
Otimizar a gestão de capital para combinar dinamicamente o tamanho da posição com o tamanho da conta.
A estratégia de ruptura de posição dupla ganha seguindo a tendência quando há uma ruptura após o estabelecimento de posições longas e curtas duplas. Ela pode fazer pleno uso do capital e capturar oportunidades de ruptura em tempo hábil. Mas o risco de posições duplas ficarem presas precisa ser evitado. Stop loss e gerenciamento de posição razoáveis são cruciais. Com otimizações contínuas, essa estratégia pode se tornar um sistema de ruptura muito prático.
/*backtest start: 2023-10-16 00:00:00 end: 2023-10-23 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Crypto-Arsenal //@version=5 // strategy("Buy One Sell One", overlay = false, default_qty_type=strategy.percent_of_equity, default_qty_value=10) percent = str.tostring(10) cls = str.tostring(close) tp = str.tostring(strategy.position_avg_price * (1 + 0.1)) sl = str.tostring(strategy.position_avg_price * (1 - 0.1)) if(bar_index % 2 == 0) // DEMO FOR SENDING MESSAGE WITH alert_message() // NEED TO ADD {{{strategy.order.alert_message}} to Message field at Create Alert box // Add "limit" to open a LIMIT order instead of default MARKET alert_message = '{"action":"openLong","percent":"' + percent + '","profit":"' + tp + '","loss":"' + sl + '","connectorName":"YOUR_CONNECTOR_NAME","connectorToken":"YOUR_CONNECTOR_TOKEN","log":"Open Long at price:' + cls + '"}' strategy.entry('Enter Long', strategy.long, alert_message = alert_message) else // DEMO FOR SENDING MESSAGE WITH alert() strategy.entry('Enter Short', strategy.short) // Add "limit" to open a LIMIT order instead of default MARKET alert_message = '{"action":"closeLong","percent":"' + percent + '","profit":"' + sl + '","loss":"' + tp + '","connectorName":"YOUR_CONNECTOR_NAME","connectorToken":"YOUR_CONNECTOR_TOKEN","log":"Close long at price:' + cls + '"}' alert(alert_message, alert.freq_once_per_bar)