Esta estratégia usa uma combinação de médias RMA de longo prazo e médias EMA de curto prazo para avaliar a tendência e realizar um stop loss de seguimento de tendência com uma ruptura de alta e baixa. Também é configurado um intervalo sem negociação para filtrar brechas falsas.
Use a RMA de longo período e a EMA de curto período para determinar a direção da tendência. O RMA de longo período é usado como sinal de expectativa abaixo da EMA de curto prazo e o RMA de longo prazo é usado como sinal de expectativa acima.
Quando o preço quebra o preço mais alto do último período determinado, o método de seguimento do preço mais alto é usado para parar. Quando o preço quebra o preço mais baixo do último período determinado, o método de seguimento do preço mais baixo é usado para parar.
O setor não-negociação, onde o preço entra na zona não abriu posição, para evitar ser coberto. A faixa de intervalos é determinada por uma certa proporção da linha média RMA.
Depois de entrar, estabeleça um preço de parada para sair de lucro em uma certa proporção.
A combinação binária de equilíbrio determina a direção da tendência com precisão e confiabilidade.
O Stop Loss Tracking permite que o Stop Loss siga a tendência.
Configurar uma zona de não transação para filtrar os sinais de falha.
A configuração Stop Stop permite que a estratégia elimine ativamente a posição após ter acumulado lucro suficiente.
Pode haver um atraso na geração de forquilhas duplas, o que aumenta a perda.
O ponto de parada de rastreamento pode ser atingido pelo ruído antecipado se estiver muito perto do preço.
A configuração de uma zona sem transações muito larga pode levar a oportunidades de transações perdidas.
A falta de liquidação oportuna pode levar a um aumento dos prejuízos.
Resolução:
Optimizar os parâmetros da linha média e reduzir a probabilidade de atraso.
A liberação apropriada do ponto de paragem para evitar a hipersensibilidade.
O teste ajusta o alcance da zona sem transações para evitar oportunidades perdidas.
Adicionar outros métodos de parada de perdas para limitar o máximo de perdas.
Teste outras combinações de indicadores de equilíbrio para encontrar combinações mais adequadas.
Aumentar a diferença de preços, MACD e outros indicadores de julgamento para aumentar a estabilidade da estratégia.
A introdução de parâmetros de otimização de algoritmos de aprendizagem de máquina para tornar as estratégias mais inteligentes.
Combine os indicadores de tendência forte com os indicadores de tendência fraca, evitando a negociação de contrapartida.
Otimizar a estratégia de gestão de fundos e aumentar a taxa de sucesso.
Esta estratégia usa a dupla linha de equilíbrio para determinar a direção da tendência e bloquear o lucro da tendência com filtros de alto e baixo para rastrear o stop-loss e o no-trading. A estrutura da estratégia é simples, clara e extensivel, e pode ser otimizada por meio do ajuste do intervalo de parâmetros, otimização da estratégia de stop-loss e introdução de outros indicadores de julgamento auxiliares.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-12 00:00:00
period: 3h
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/
// © PatrickGwynBuckley
//@version=5
//var initialCapital = strategy.equity
strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true)
shortma = input.int(55, title="quick ma's")
longma = input.int(100, title="long ma's")
ema55h = ta.ema(high, shortma)
ema55l = ta.ema(low, shortma)
ema200h = ta.rma(high, longma)
ema200l = ta.rma(low, longma)
stock = ta.stoch(close, high, low, 14)
lev = input.int(3, title="leverage")
hhVal = input.int(170, title="Highest high period")
llVal = input.int(170, title="Lowest low period")
hh = ta.highest(high, hhVal)
ll = ta.lowest(low, llVal)
//plot(stock)
plot(hh, color=color.new(color.green, 50))
plot(ll, color=color.new(color.red, 50))
var float downtrade = 0
p = input.float(3.0, title="no trade zone")
l = 3
emadistlong = ema200h + ((ema200h/100)*p)
emadistshort = ema200l - ((ema200h/100)*p)
plot(ema55h)
plot(ema55l)
ntl = plot(emadistlong, color=color.new(color.red, 10))
nts = plot(emadistshort, color=color.new(color.red, 10))
fill(ntl, nts, color=color.new(color.red, 90))
//position size
EntryPrice = close
//positionValue = initialCapital
positionSize = (strategy.equity*lev) / EntryPrice
//plot(strategy.equity)
//standard short
if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85
strategy.entry("short", strategy.short, qty=positionSize, comment="short")
downtrade := 1
//reset count
if (ta.crossunder(ema55h, ema200l)) and downtrade == 1
downtrade := 0
//standard long
if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15
strategy.entry("long", strategy.long, qty=positionSize, comment="long")
downtrade := 0
//RESET COUNT ON MA CROSS
if (ta.crossover(ema55l, ema200h)) and downtrade == 0
downtrade := 1
longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)//
shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)//
sl = 3.5
tp = input.float(6.9, title="take profit %")
tp2 = 10
strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))
strategy.close("long", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
//strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("long2", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300)
strategy.close("short", when = shortclose2, comment = "short exit")
//strategy.close("short", when = (downtrade == 0), comment = "short exit")
//strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("short2", when = shortclose2, comment = "short exit")
//strategy.close("short2", when = (downtrade == 0), comment = "short exit")
//if (strategy.exit("long exit", "long"))
//downtrade := 1
//else
// downtrade := 0