Estratégia de stop loss com indicador de pescador


Data de criação: 2024-02-02 14:57:33 última modificação: 2024-02-02 14:57:33
cópia: 0 Cliques: 717
1
focar em
1617
Seguidores

Estratégia de stop loss com indicador de pescador

Visão geral

A estratégia de stop loss móvel do indicador de pescadores é uma estratégia de negociação quantitativa que combina o indicador de pescadores com o mecanismo de stop loss móvel. A estratégia usa o indicador de pescadores para gerar sinais de compra e venda, enquanto configura um stop loss de rastreamento para bloquear os lucros e obter maiores ganhos enquanto protege os lucros.

Princípio da estratégia

  1. Inserir um intervalo de datas, limitando o período de tempo de um retrospecto ou disco rígido
  2. Parâmetros de entrada para o indicador de pescadores, 2 ciclos por defeito
  3. Input Stop Loss Ratio, padrão de 5% Stop Loss e 2% Stop Loss
  4. Calculando linhas principais e linhas de sinalização do indicador de pescadores
  5. O sinal de compra é gerado ao atravessar a linha de sinalização na linha principal
  6. Configurar um tracking stop para parar a queda de 2% após a entrada em uma posição longa
  7. Parar quando os preços sobem mais de 5%

Análise de vantagens

  1. Indicadores de pescadores são fáceis de avaliar tendências, sinais de compra precisos
  2. O mecanismo de rastreamento de stop-loss pode bloquear a maior parte dos lucros, evitando exceder o ponto de stop-loss definido
  3. Parâmetros personalizáveis para diferentes cenários de mercado
  4. Simples, fácil de usar e fácil de entender

Análise de Riscos

  1. Parâmetros mal definidos podem levar a negociações excessivamente radicais e devem ser testados com cautela
  2. O excesso de ponto de parada pode causar o impacto da Outiliers, resultando em perdas acima do esperado
  3. Um ponto de paragem muito baixo pode levar a um corte prematuro nos lucros e afetar a rentabilidade.
  4. Os parâmetros adequados devem ser determinados de acordo com as diferentes variedades

Pode-se otimizar os parâmetros ajustando a proporção de stop loss, testando diferentes combinações de parâmetros; filtrar sinais em combinação com outros indicadores; definir regras de gerenciamento de posição para controlar o risco individual.

Direção de otimização

  1. Parâmetros para otimizar o indicador de pescadores, testar o impacto de diferentes parâmetros na estratégia
  2. Combinação de outros indicadores, como MACD, KD e outros sinais de filtragem para melhorar a qualidade do sinal
  3. Aumentar os critérios pré-abertura de posição, tais como a ruptura da faixa de Brin para o rack
  4. Adição de módulo de gerenciamento de posições para controlar o risco de uma única posição
  5. Optimizar o stop-loss móvel, como o Stop-loss móvel de deslizamento, a saída de Chandelier, etc.

Resumir

A estratégia de stop loss móvel do indicador de pescadores integra a avaliação de tendências e o gerenciamento de stop loss, que pode ser adaptada à maioria das variedades por meio da otimização de parâmetros, combinação de indicadores e melhorias no método de stop loss, obtendo melhores ganhos com a prevenção de perdas além do tolerável, vale a pena explorar e praticar.

Código-fonte da estratégia
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fisher_Yurik Strategy with Trailing Stop", shorttitle="FY Strategy", overlay=true)

// Date Ranges 
from_month = input(defval = 1, title = "From Month")
from_day   = input(defval = 1, title = "From Day")
from_year  = input(defval = 2021, title = "From Year")
to_month   = input(defval = 1, title = "To Month")
to_day     = input(defval = 1, title = "To Day")
to_year    = input(defval = 9999, title = "To Year")
start  = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window = true
period = input(2, title='Period')
cost = input.float(1.05, title='profit level ', step=0.01)
dusus = input.float(1.02, title='after the signal', step=0.01)

var float Value = na
var float Fish = na
var float ExtBuffer1 = na
var float ExtBuffer2 = na

price = (high + low) / 2
MaxH = ta.highest(high, period)
MinL = ta.lowest(low, period)

Value := 0.33 * 2 * ((price - MinL) / (MaxH - MinL) - 0.5) + 0.67 * nz(Value[1])
Value := math.max(math.min(Value, 0.999), -0.999)
Fish := 0.5 * math.log((1 + Value) / (1 - Value)) + 0.5 * nz(Fish[1])

up = Fish >= 0

ExtBuffer1 := up ? Fish : na
ExtBuffer2 := up ? na : Fish

var float entryPrice = na
var float stopPrice = na
 
if (ExtBuffer1 > ExtBuffer1[1])
    entryPrice := close*dusus
    stopPrice := close * cost 
 
if (ExtBuffer2 < ExtBuffer2[1])
    entryPrice := close
    stopPrice := close * cost

// Sadece seçilen test döneminde işlem yapma koşulu eklenmiştir
strategy.entry("Buy", strategy.long, when=ExtBuffer1 > ExtBuffer1[1] and window)
strategy.exit("Take Profit/Trailing Stop", from_entry="Buy", when=(close >= entryPrice * cost) or (close < stopPrice), trail_offset=0.08, trail_price=entryPrice * cost)