A estratégia julga o momento de comprar e vender, calculando uma média móvel simples de altos e baixos e comparando-a com o preço de fechamento atual. O objetivo é capturar sinais de quebra de preços na média para obter oportunidades mais cedo na tendência.
Calcule a média móvel simples com um máximo de 4
Calcule uma média móvel simples com um ponto baixo de comprimento 4
Faça uma entrada extra quando o preço de fechamento ultrapassar o ponto médio de alta
Cancelar a entrada quando o preço de fechamento ultrapassar a média de baixa
Gerenciamento de risco com estratégias de stop loss e stop loss fixos
Implementação com indicadores simples e fáceis de entender
Captação de sinais de ruptura da linha média
Filtrar rapidamente parte do ruído e identificar tendências
Pequeno volume de computação reduz o consumo operacional da estratégia
Estratégias baseadas em adequação para expansão
Parâmetros razoáveis, evitando excesso de sensibilidade
A falta de capacidade para lidar com os riscos de uma grande ruptura
Há um certo risco de arbitragem de choque.
Não é possível ajustar automaticamente a posição da parada de perda
Difícil de determinar a duração do contexto da tendência
Teste dos efeitos de diferentes parâmetros na qualidade do sinal
Aumentar as condições de filtragem para garantir a eficácia dos avanços
Análise de tendências para evitar a armadilha
Desenvolver estratégias de stop loss dinâmicas
Otimização do mecanismo de parada de prejuízos e melhoria da taxa de vitória da estratégia
Testar a robustez da estratégia em diferentes ciclos
A estratégia, através de um simples indicador para avaliar a dinâmica dos preços, dá uma idéia básica de negociação de tendências. Com a otimização de parâmetros, controle de risco e outros aperfeiçoamentos, sua lógica de negociação é extensivel e pode ser desenvolvida como um sistema de quantificação mais robusto.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("HiLo", overlay=true)
// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)
longCondition = close > highsma[displace]
if (longCondition)
strategy.entry("long", true)
shortCondition = close < lowsma[displace]
if (shortCondition)
strategy.entry("short", false)
// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day.
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?
// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)