Estratégia de scalping de curto prazo extremo

Autora:ChaoZhang, Data: 2024-01-17 12:06:39
Tags:

img

Resumo

A estratégia de scalping de curto prazo tenta estabelecer posições curtas quando os preços se aproximam ou quebram as linhas de suporte e estabelece baixos níveis de stop loss e lucro para negociação de alta frequência.

Estratégia lógica

A estratégia primeiro calcula a linha de regressão linear dos preços. Se o preço de fechamento real for menor que o preço de fechamento previsto, as posições longas são estabelecidas. Se o preço de fechamento real for maior que o preço de fechamento previsto, as posições curtas são estabelecidas. O stop loss e o take profit são definidos em um número muito pequeno de pips. A estratégia permite escolher apenas a negociação longa, curta ou em todas as direções.

Os principais parâmetros incluem:

  • Preço de origem: preço de encerramento
  • Comprimento da linha de regressão linear: 14
  • Compensação: 1
  • Direcção da negociação: só comprar/só vender
  • Stop loss e take profit em pips: pips fixos muito pequenos ou tick pips mínimos

A ideia principal da estratégia é capturar avanços de preços de curto prazo de médias móveis. Quando os preços se aproximam ou quebram linhas de suporte ou resistência, estabeleça posições em tempo hábil. E defina um stop loss muito pequeno e tire lucro para obter lucro, em seguida, feche posições imediatamente, repetindo o processo.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. A alta frequência de negociação, adequada para a negociação de alta frequência, pode capturar mais flutuações de preços a curto prazo
  2. Stop loss e take profit muito pequenos ajudam a controlar perdas individuais
  3. Pode escolher de forma flexível a direcção da negociação para se adaptar aos diferentes ambientes de mercado
  4. Fácil de implementar com lógica simples

Análise de riscos

Há também alguns riscos:

  1. Diferenças de preços podem levar a perdas mais elevadas
  2. Altos custos de transacção
  3. Os erros de sinal podem ocorrer e necessitam de atenção e otimização oportunas
  4. Requer um acompanhamento contínuo do mercado

As medidas de gestão de riscos correspondentes incluem:

  1. Desativar a negociação overnight
  2. Otimizar o stop loss e o take profit para reduzir os impactos dos custos de transação
  3. Teste e otimize parâmetros para reduzir sinais errados
  4. Preste muita atenção ao mercado

Orientações de otimização

Outras orientações de otimização incluem:

  1. Adicionar outros indicadores para filtrar os sinais e reduzir os negócios errados
  2. Ajuste dinâmico de stop loss e take profit
  3. Otimizar os parâmetros para reduzir o sobreajuste
  4. Considerar os impactos dos custos de transação para uma configuração razoável de stop loss e take profit
  5. Estabilidade dos ensaios em todos os produtos e prazos

Resumo

A estratégia de scalping de curto prazo extremo é uma estratégia de negociação típica de alta frequência. Ao estabelecer posições em torno de níveis de preço-chave e definir um stop loss e take profit muito pequenos, ela capta flutuações de preços de curto prazo. Embora possa alcançar altos retornos, também há certos riscos. Com testes e otimização contínuos, a estratégia pode ser melhorada para estabilidade e lucratividade.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Extreme Scalping", overlay=true )
src = input(close,title="Source")
len = input(defval=14, minval=1, title="Length")
offset = input(1)
out = linreg(src, len, offset)
plot(out)

gap_tick=input(100)
fixedTP=input(300)
fixedSL=input(100)
useFixedSLTP=input(true)
direction=input(defval="ALL",title="Direction of order",options=["ALL","BUY ONLY","SELL ONLY"])
gap=gap_tick*syminfo.mintick
plot(out+gap,color=color.red)
plot(out-gap,color=color.green)

tp=useFixedSLTP?fixedTP:gap_tick
sl=useFixedSLTP?fixedSL:gap_tick

longCondition = close<(out-gap) and (direction=="ALL" or direction=="BUY ONLY")
shortCondition = close>(out+gap) and (direction=="ALL" or direction=="SELL ONLY")

if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("exit long","Long",profit = tp,loss = sl)
    

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("exit short","Short",profit =tp,loss=sl)
    
// === Backtesting Dates === thanks to Trost

// testPeriodSwitch = input(true, "Custom Backtesting Dates")
// testStartYear = input(2019, "Backtest Start Year")
// testStartMonth = input(10, "Backtest Start Month")
// testStartDay = input(3, "Backtest Start Day")
// testStartHour = input(0, "Backtest Start Hour")
// testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
// testStopYear = input(2019, "Backtest Stop Year")
// testStopMonth = input(12, "Backtest Stop Month")
// testStopDay = input(31, "Backtest Stop Day")
// testStopHour = input(23, "Backtest Stop Hour")
// testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
// testPeriod() =>
//     time >= testPeriodStart and time <= testPeriodStop ? true : false
// isPeriod = testPeriodSwitch == true ? testPeriod() : true
// // === /END

// if not isPeriod
//     strategy.cancel_all()
//     strategy.close_all()
        

Mais.