Estratégia stop-profit e stop-loss com base na média móvel e na média móvel


Data de criação: 2023-12-21 12:26:18 última modificação: 2023-12-21 12:26:18
cópia: 0 Cliques: 625
1
focar em
1623
Seguidores

Estratégia stop-profit e stop-loss com base na média móvel e na média móvel

Visão geral

Esta estratégia baseia-se na linha média e nas médias móveis para abrir posições e estabelecer um stop-loss através de um penetrador. As principais características são:

  1. Filtragem de tremores usando um sistema linear
  2. Adotar Stop Losses Móveis para gerenciamento dinâmico de fundos
  3. Filtragem de posição configurável para evitar abertura de posição unilateral

Princípio da estratégia

A estratégia consiste em quatro partes principais:

  1. Sistema homogêneo

O uso de um cruzeiro e um garfo dourado para avaliar a tendência e filtrar os mercados de turbulência.

  1. Paragem móvel

O uso de um determinado percentual de stop-loss móvel para bloquear os lucros e controlar o risco, permite a gestão dinâmica do capital.

  1. Filtragem de posições

Pode ser configurado para abrir o filtro de posição. Se a posição anterior for multi-cabeça, o próximo sinal deve ser para a cabeça vazia para abrir a posição, evitando a posse unilateral.

  1. Cessação do ATR

Use o ATR para limitar o limite máximo de perda e evitar perdas excessivas.

Especificamente, a estratégia calcula primeiro a linha média e faz mais quando a linha média aparece em um cruzamento dourado, fazendo um vazio na hora da morte. Após a entrada, configure o stop e a linha de parada móveis em uma proporção determinada. Se o preço tocar a linha de parada, pare; se tocar a linha de parada ou exceder o limite de parada ATR, pare.

Vantagens estratégicas

As principais vantagens desta estratégia são:

  1. Forte configuração

Muitos dos parâmetros da estratégia são configuráveis e podem ser ajustados de acordo com o estilo de negociação do usuário.

  1. Boa gestão de fundos

O uso de Stop Loss móvel e Stop Loss ATR permite o controle efetivo da amplitude de um único Stop Loss para uma excelente gestão de fundos.

  1. Apto para mercados de tendência

A estratégia de linha média, por si só, é mais adequada para mercados com uma forte tendência e pode filtrar oscilações.

Riscos e soluções

A estratégia também apresenta alguns riscos, principalmente:

  1. Erros de julgamento de tendências

A mediana em si não é perfeita para o julgamento de situações complexas, podendo ocorrer erros de julgamento. Nesse caso, os parâmetros da mediana devem ser ajustados adequadamente ou combinados com outros indicadores para julgar.

  1. “A redução de danos é muito radical.

O stop loss móvel pode ser negado durante a vibração, e deve ser combinado com o parâmetro ATR para definir o alcance do stop loss.

  1. Risco de abrir uma posição unilateral

A abertura de um filtro de posição pode ter um impacto na frequência de negociação, e a posse unilateral por um longo período pode trazer riscos adicionais.

Direção de otimização da estratégia

Os principais pontos de otimização desta estratégia são:

  1. Optimização de parâmetros

Ajustar os parâmetros como o período de linha média, o parâmetro ATR e o parâmetro Stop Loss Ratio para otimizar o efeito da estratégia.

  1. Aumentar os indicadores

Adicionar CMF, OBV e outros indicadores para avaliar o fluxo de capital e evitar perdas excessivas.

  1. Combinar outras estratégias

A combinação de estratégias como a ruptura e o acompanhamento após a estabilização da tendência podem ser mais eficazes.

Resumir

Em geral, esta estratégia, através de filtragem linear e stop loss móvel, permite a gestão de fundos dinâmicos baseados em tendências. É altamente configurável e razoável para que os investidores ajustem o uso de acordo com o seu estilo. Como uma estratégia de quantificação genérica, há muito espaço para otimização e vale a pena um estudo aprofundado.

Código-fonte da estratégia
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-11 00:00:00
period: 1h
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/
// © MGULHANN

//@version=5

//İchimoku Leading Span 2 Hesaplaması ve Girişleri
strategy("Stairs Gain Strategy - MG", overlay=true, margin_long=100, margin_short=100)
laggingSpan2Periods = input.int(52, minval=1, title="Leading Periot")
displacement = input.int(1, minval=1, title="Displacement")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
leadLine2 = donchian(laggingSpan2Periods)
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")

// İşlem Tekrarını Filtrele	 
filtreUygula = input.bool(true,title="Pozisyon Sıra Filtresi Uygula")

//Kar Al / Zarar Durdur Seviyeleri Girişleri
zararDurdurmaYuzde = input.float(1.0, title='Zarar Durdurma %', step=0.01) / 100
karAlmaYuzde = input.float(2.0, title='Kar Alma %', step=0.01) / 100

//ATR Hesaplaması
atrCarpani = input.float(0.3, title="ATR Çarpanı", step= 0.01)
atrDegeri = ta.atr(14) * atrCarpani

//ATR Değer Girişleri
atrbuyukdeger = input.float(0.01, title="ATR Üst Limit", step=0.01)
atrkucukdeger = input.float(0.06, title="ATR Alt Limit", step=0.01)

//Buy ve Sell Şartları
buycross =   ta.crossover(close,leadLine2[displacement-1]) ? atrDegeri > atrbuyukdeger : strategy.position_size == 0
sellcross = ta.crossover(leadLine2[displacement-1],close) ? atrDegeri < atrkucukdeger : strategy.position_size == 0

//KONTROL
var sonPozisyonYonu = 0
//Son kapanan pozisyon long ise degiskenin degerini 1 olarak ata
if strategy.position_size[1] > 0 and strategy.position_size == 0
    sonPozisyonYonu := 1

//Son kapanan pozisyon short ise degiskenin degerini -1 olarak ata
if strategy.position_size[1] < 0 and strategy.position_size == 0
    sonPozisyonYonu := -1
    
//eger filtre uygulama seçiliyse ve son pozisyon yönü long ise 'longFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun long olmasını engelle
longFiltreSonuc = filtreUygula ? sonPozisyonYonu == 1 ? false : true : true

//eger filtre uygulama seçiliyse ve son pozisyon yönü short ise 'shortFiltreSonuc' degiskenine false degeri ata ve bir sonraki pozisyonun short olmasını engelle
shortFiltreSonuc = filtreUygula ? sonPozisyonYonu == -1 ? false : true : true

//LONG GİRİŞ
strategy.entry("Long", strategy.long, when=buycross and longFiltreSonuc)
longKarAl = strategy.position_avg_price * (1 + karAlmaYuzde)
longZararDurdur = strategy.position_avg_price * (1 - zararDurdurmaYuzde)
strategy.exit("Long Exit","Long",limit=longKarAl, stop=longZararDurdur)

//SHORT GİRİŞ
strategy.entry("Short", strategy.short, when=sellcross and shortFiltreSonuc)
shortKarAl = strategy.position_avg_price * (1 - karAlmaYuzde)
shortZararDurdur = strategy.position_avg_price * (1 + zararDurdurmaYuzde)
strategy.exit("Short Exit","Short",limit=shortKarAl, stop=shortZararDurdur)

//Kar Al ve Zarar Durdur Seviyelerinin Grafikte İşaretlenmesi
plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.navy, linewidth=2, style=plot.style_linebr, title="İşleme Giriş Seviyesi")
plot(strategy.position_size > 0 ? longKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Long Kar Alım Seviyesi")
plot(strategy.position_size > 0 ? longZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Long Zarar Durdurma Seviyesi")
plot(strategy.position_size < 0 ? shortKarAl : na, color=color.green, linewidth=2, style=plot.style_linebr, title="Short Kar Alım Seviyesi")
plot(strategy.position_size < 0 ? shortZararDurdur : na, color=color.red, linewidth=2, style=plot.style_linebr, title="Short Zarar Durdurma Seviyesi")

//plotshape(buycross,size=size.small,style=shape.labelup,location=location.belowbar,color=color.green,text="Al", offset = displacement-1, textcolor=color.white)
//plotshape(sellcross,size=size.small,style=shape.labeldown,location=location.abovebar,color=color.red,text="Sat", offset = displacement-1, textcolor=color.white)