Estratégia de stop-profit e stop-loss bidirecional baseada em cruzamento de indicadores estocásticos


Data de criação: 2024-03-08 15:12:42 última modificação: 2024-03-08 15:12:42
cópia: 1 Cliques: 568
1
focar em
1617
Seguidores

Estratégia de stop-profit e stop-loss bidirecional baseada em cruzamento de indicadores estocásticos

Visão geral

A estratégia usa o sinal de cruzamento do indicador aleatório Stochastic Oscillator para desencadear uma operação de compra e venda. Quando a linha% K do indicador aleatório atravessa a linha% D de baixo para cima e o valor de% K é inferior a 20, a posição é aberta; Quando a linha% K atravessa a linha% D de cima para baixo e o valor de% K é superior a 80, a posição é aberta.

Princípio da estratégia

  1. Calcule os valores de %K e %D dos indicadores aleatórios de 14 ciclos e suavize-os com uma média móvel simples.
  2. Determine se a linha %K e a linha %D se cruzam:
    • Quando a linha %K atravessa a linha %D de baixo para cima, e o valor de %K é inferior a 20, acionar o sinal de compra e abrir a posição para fazer mais.
    • Quando a linha %K atravessa a linha %D de cima para baixo e o valor de %K é superior a 80, o sinal de venda é acionado e a posição é fechada.
  3. Configuração de stop loss e stop loss distância (em ticks) para gerenciamento de posições abertas:
    • Para uma posição multi-cabeça, configure o preço de parada para TP acima do preço de abertura e o preço de parada para SL abaixo do preço de abertura.
    • Para posições em aberto, configure o preço de parada para TP Ticks abaixo do preço de abertura e o preço de parada para SL Ticks acima do preço de abertura.
    • Quando o preço atinge o preço de parada ou de perda, liquide a posição correspondente.
  4. Configuração de condições lógicas de equilíbrio:
    • Quando a linha %K atravessa a linha %D de cima para baixo, e o valor de %K é menor que ou igual a 80, elimine todas as posições de múltiplos titulares.
    • Quando a linha %K atravessa a linha %D de baixo para cima, e o valor de %K é maior que ou igual a 20, elimine todas as posições em aberto.

Análise de vantagens

  1. A estratégia usa um indicador aleatório como principal indicador de sinal de negociação. O indicador aleatório é amplamente utilizado em negociações quantitativas, e é capaz de capturar melhor o estado de sobrecompra e sobrevenda do mercado.
  2. A estratégia configura simultaneamente um stop-loss e um equilíbrio de condições lógicas, o que permite controlar o risco até certo ponto e evitar a expansão dos perdas.
  3. A lógica da estratégia é clara, fácil de entender e implementar, e é adequada para aprendizagem e uso de iniciantes.

Análise de Riscos

  1. Indicadores aleatórios podem emitir mais sinais de erro em mercados de turbulência, resultando em uma frequência de negociação excessiva e aumentando os custos de negociação.
  2. A estratégia não faz um ajuste dinâmico de posições, e uma distância fixa de stop-loss pode não ser eficaz para controlar o risco em situações de forte volatilidade no mercado.
  3. Os parâmetros da estratégia (por exemplo, o ciclo de indicadores aleatórios, a distância de stop loss, etc.) são fixos e não são otimizados para diferentes condições de mercado, o que pode afetar a adaptabilidade da estratégia.

Direção de otimização

  1. Pode-se considerar a introdução de outros indicadores técnicos ou indicadores de sentimento de mercado, que podem ser usados em conjunto com indicadores aleatórios para aumentar a confiabilidade dos sinais de negociação e reduzir os sinais de erro.
  2. Optimizar o gerenciamento de posições, ajustando a distância de parada e perda de acordo com a dinâmica das condições de volatilidade do mercado, ou adotar métodos de gerenciamento de fundos mais avançados, como a fórmula de Kelly.
  3. Utilizando métodos de otimização como algoritmos genéticos e pesquisa de grelha, os parâmetros da estratégia são otimizados para encontrar a combinação ideal de parâmetros para diferentes condições de mercado.
  4. Considere a adição de condições de filtragem, como período de negociação, volatilidade da variedade de negociação, etc., para reduzir a negociação em condições de mercado desfavoráveis.

Resumir

A estratégia de stop-loss bidirecional baseada no cruzamento de indicadores aleatórios é uma estratégia de negociação quantitativa simples e fácil de entender, que ativa a operação de compra e venda por meio de sinais de cruzamento de indicadores aleatórios e configura um stop-loss e um equilíbrio de condições lógicas para gerenciar o risco. A vantagem da estratégia reside na clareza lógica e é adequada para aprendizagem e uso de iniciantes; no entanto, existem também alguns riscos, como o indicador aleatório pode emitir mais sinais de erro em mercados turbulentos e o método de gerenciamento de posição fixo não pode ser adaptado a diferentes condições de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("How to force strategies fire exit alerts not reversals", initial_capital = 1000, slippage=1, commission_type = strategy.commission.cash_per_contract, commission_value = 0.0001, overlay=true) 
// disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker

// Entries logic: based on Stochastic crossover
k = ta.sma(ta.stoch(close, high, low, 14), 3)
d = ta.sma(k, 3)
crossover = ta.crossover(k,d)
crossunder = ta.crossunder(k,d)

if (crossover and k < 20)
	strategy.entry("Buy", strategy.long, alert_message="buy")
if (crossunder and k > 80)
	strategy.entry("Sell", strategy.short, alert_message="sell")

// StopLoss / TakeProfit exits:
SL = input.int(600, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(1200, title="TakeProfit Distance from entry price (in Ticks)")
strategy.exit("xl", from_entry="Buy", loss=SL, profit=TP, alert_message="closebuy")
strategy.exit("xs", from_entry="Sell", loss=SL, profit=TP, alert_message="closesell")

// logical conditions exits:
if (crossunder and k <= 80)
	strategy.close("Buy", alert_message="closebuy")
if (crossover and k >= 20)
	strategy.close("Sell", alert_message="closesell")