Estratégias de Swing Trading de fim de semana


Data de criação: 2023-11-16 10:53:01 última modificação: 2023-11-16 10:53:01
cópia: 0 Cliques: 601
1
focar em
1617
Seguidores

Estratégias de Swing Trading de fim de semana

Visão geral

A estratégia estabelece condições de entrada para posições longas e vazias de acordo com o preço de fechamento na sexta-feira, fazendo mais curto-circuito no sábado e no domingo, e fechando as posições antes do fechamento na segunda-feira. A estratégia capta o lucro capturando os movimentos de preços perto do preço de fechamento na sexta-feira.

Princípios

  1. Preço de fechamento de sexta-feira como referência
  2. A partir de agora, a rede estará aberta aos sábados e domingos:
    • Se o preço estiver acima de 4,5% do preço de fechamento de sexta-feira, faça um corte.
    • Se o preço estiver abaixo de 4,5% do fechamento de sexta-feira, faça mais.
  3. A paragem é de 3% do capital inicial.
  4. Todas as posições são liquidadas antes da abertura da segunda-feira.

Análise de vantagens

  1. Aproveite as flutuações de preços causadas pelo baixo volume de transações de sábado a domingo para negociar e reduzir o risco de mercado
  2. Condições claras de entrada e saída, reduzindo a dificuldade de implementação da estratégia
  3. Operações de curta duração, em busca de pequenos lucros estáveis
  4. Ciclo curto, circulação rápida

Análise de Riscos

  1. A volatilidade de preços pode ser menor do que o esperado no sábado e domingo e não haverá abertura de posições.
  2. Oscilações excessivas levam a perda de capital
  3. O evento de segunda-feira fez com que os preços subissem e não pudessem parar a perda a tempo.

Soluções de risco:

  1. Alteração da amplitude dos requisitos de entrada
  2. Estabeleça um ponto de parada razoável
  3. Desembaraço antecipado, sem o fim de semana

Direção de otimização

  1. Adaptação da entrada em função das características das diferentes variedades
  2. Optimizar as condições de retenção de acordo com os resultados da avaliação
  3. Seleção de diferentes alavancas de acordo com o tamanho do capital
  4. Combinação de filtro de indicador de linha uniforme para o tempo de entrada

Resumir

A estratégia é uma estratégia de negociação de curta linha, com uma lógica de negociação muito clara e medidas de controle de risco. Com a configuração de parâmetros razoáveis e otimização de testes contínuos, é possível obter um retorno de investimento estável.

Código-fonte da estratégia
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Copyright Boris Kozak 
strategy("XBT Weekend Trade Strategy", overlay=true, default_qty_type=strategy.percent_of_equity,initial_capital=20000)
leverage = input(1,"Leverage")
profitTakingPercentThreshold = input(0.03,"Profit Taking Percent Threshold")

//****Code used for setting up backtesting.****///
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(12, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2025, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "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) ? #00FFFF : na
bgcolor(testPeriodBackgroundColor, transp=50)

testPeriod() => true
    
//****END Code used for setting up backtesting.****///


//*** Main entry point is here***//
// Figure out how many days since the Friday close 
days_since_friday = if dayofweek == 6
    0
else 
    if dayofweek == 7
        1
    else
        if dayofweek == 1
            2
        else
            if dayofweek == 2
                3
            else
                if dayofweek == 3
                    4
                else
                    if dayofweek == 4
                        5
                    else
                        6
    
// Grab the Friday close price
fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday])
plot(fridaycloseprice)
strategy.initial_capital = 50000
// Only perform backtesting during the window specified 
if testPeriod()
    // If we've reached out profit threshold, exit all positions 
    if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold)
        strategy.close_all()
    // Only execute this trade on saturday and sunday (UTC)
    if (dayofweek == 7.0 or dayofweek == 1.0)
        // Begin - Empty position (no active trades)
        if (strategy.position_size == 0)
            // If current close price > threshold, go short 
            if ((close>fridaycloseprice*1.045))
                strategy.entry("Short Entry", strategy.short, leverage)
            else
                // If current close price < threshold, go long
                if (close<(fridaycloseprice*0.955))
                    strategy.entry("Long Entry",strategy.long, leverage)
        // Begin - we already have a position
        if (abs(strategy.position_size) > 0)
            // We are short 
            if (strategy.position_size < 0)
                if ((close>strategy.position_avg_price*1.045))
                    // Add to the position
                    strategy.entry("Adding to Short Entry", strategy.short, leverage)
            else
                strategy.entry("Long Entry",strategy.long,leverage)
    // On Monday, if we have any open positions, close them 
    if (dayofweek==2.0)
        strategy.close_all()