Estratégia de rastreamento com base em pontos-chave de preço


Data de criação: 2023-09-21 15:24:53 última modificação: 2023-09-21 15:24:53
cópia: 0 Cliques: 684
1
focar em
1617
Seguidores

Visão geral

A estratégia baseia-se na ideia de que os pontos de parada e parada são frequentemente estabelecidos em preços inteiros ou níveis de preços críticos, que muitas vezes servem como pontos de suporte e resistência. A estratégia identifica esses níveis de preços críticos e executa operações de compra ou venda quando os preços se aproximam.

Princípio da estratégia

A estratégia inclui principalmente as seguintes regras:

  1. Quando o preço de fechamento está acima do nível de preço-chave e não foi tocado nos últimos 10 linhas K, a operação de compra é realizada.

  2. O rastreamento de escalada é então usado para rastrear a movimentação dos preços que ultrapassam o preço-chave. A escalada é de 20 passos.

  3. A operação de venda é o oposto da compra, quando o preço de fechamento está abaixo do nível de preço crítico e não foi tocado no último 10 K linhas, a operação de venda.

  4. Os métodos para identificar os níveis de preços críticos são:

    • Converta o preço de fechamento para um número inteiro
    • Calcule o restante com 50 pontos inteiros (configuráveis)
    • Se o saldo é maior que 25, então o preço de referência é o mais próximo de 50 pontos inteiros.
    • Se não, os preços-chave permanecem inalterados.

A estratégia baseia-se no conceito de psicologia de preços, que considera que os preços inteiros ou os níveis críticos costumam ser posições importantes disputadas por partes que se encontram em um espaço maior, o que produz efeitos como sinal de negociação. Ao mesmo tempo, o rastreamento de escalação pode acompanhar a tendência após a ruptura de preços.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Sinais de negociação simples e intuitivos e regras de entrada.
  2. A lei geral de que os pontos-chave não dependem de uma variedade específica.
  3. O rastreamento de stop loss permite o bloqueio de lucros, acompanhando a tendência.

Risco estratégico

A estratégia também apresenta os seguintes riscos:

  1. Os pontos-chave não são necessariamente fortes suporte ou resistência. Se for falso, pode levar ao fracasso da negociação.
  2. A regra padrão de 10 linhas K pode não ser adequada para diferentes variedades.
  3. A distância de rastreamento não deve ser muito grande, pois pode ocorrer perda prematura.

Resolução:

  1. A força e a fraqueza dos pontos-chave, combinada com mais indicadores.
  2. Otimizar para diferentes variedades de parâmetros, procurando a melhor combinação de parâmetros.
  3. Optimizar os parâmetros de rastreamento de perdas para torná-los mais próximos do mercado.

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

A estratégia pode ser otimizada em:

  1. Adicionar mais critérios para determinar a importância dos pontos-chave de preços, evitando o risco de falsas rupturas. Indicadores como, por exemplo, o volume de transação.

  2. Parâmetros de otimização, especialmente para determinar o comprimento de passo de uma região de preço-chave, o ciclo da linha K e outros. Para que seja mais adequado às características de diferentes variedades.

  3. Otimização dos mecanismos de tracking stop, como o uso de stop tracking dinâmico em vez de stop climbing fixo.

  4. Aumentar os algoritmos de aprendizagem de máquina para avaliar a força e a fraqueza das áreas de preço-chave usando dados históricos para melhorar a qualidade do sinal.

  5. Estendendo a estratégia para períodos de tempo, ao mesmo tempo em que julga tendências em períodos de tempo mais elevados e os acompanha em períodos de tempo mais baixos.

Resumir

A estratégia é baseada em um pensamento simples e intuitivo sobre os pontos-chave do preço, usando hábitos de negociação generalizados para formar sinais de negociação. As oportunidades de estratégia são abundantes, mas precisam ser otimizadas ainda mais para lidar com falsas brechas.

Código-fonte da estratégia
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Strategy based on the idea that stop loss and take profit are often placed at full price levels or round numbers, whcih acts as resistance and supports levels
//Buy Rules:
//Actual price (close) is above round number.
//Round number level was not touched in previous ten bars (arbitrary value).
//Place a buy and follow the order with a trail step because price can bounce at round number (support) or can go through it.
//Sell Rules are the same of buy rules but inverted.
//
//Need improvement on conditions' logic and round numbers definitions


strategy("dP magnet", overlay=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//Round Levels credit to RKchartest

roundLevel50 = input(500, 'Round Level 1, pips')
//roundLevel100 = input(1000, 'Round Level 2, pips')
deviation = input(1000, 'Max distance, pips', minval=0) 

rDelimeter = 1/syminfo.mintick

intRoundLevel = close[1] * rDelimeter

intRemainder = intRoundLevel % roundLevel50 
toRound = (intRemainder >= roundLevel50/2) ? roundLevel50 : 0
roundLevel = (intRoundLevel - intRemainder + toRound) / rDelimeter
plot(roundLevel, title='Round Level 1', color=black, style=line, transp=0, linewidth=1, trackprice=false)

//intRemainder2 = intRoundLevel % roundLevel100
//toRound2 = (intRemainder2 >= roundLevel100/2) ? roundLevel100 : 0
//roundLevel2 = (intRoundLevel - intRemainder2 + toRound2) / rDelimeter
//plot((abs(roundLevel2 - close) * rDelimeter < deviation) ? roundLevel2 : na, title='Round Level 2', color=black, style=circles, transp=0, linewidth=1, trackprice=true)

// end

//Start of strategy

distToFullNumber=(close-roundLevel) //can be positive or negative number

distPips=input(100,'Distance in pips to full level',minval=10) //user defined: this distance defines when to open an order at market price


TrailS=input(20,'Trail Step points',minval=10) //trail step that follows the order

longCondition = iff(distToFullNumber>0 and abs(distToFullNumber)<=distPips and lowest(low,10)>roundLevel,true,false)

if (longCondition)
    strategy.entry("LongMagnet", strategy.long)
    strategy.exit("ExitMagnet","LongMagnet",trail_points=TrailS)

shortCondition = iff(distToFullNumber<0 and abs(distToFullNumber)<=distPips and highest(high,10)<roundLevel,true,false)

if (shortCondition)
    strategy.entry("ShortMagnet", strategy.short)
    strategy.exit("Exit_Magnet","ShortMagnet",trail_points=TrailS)