Estratégias de compra e venda com base nos preços de fechamento da linha K


Data de criação: 2024-01-08 11:11:18 última modificação: 2024-01-08 11:11:18
cópia: 2 Cliques: 1039
1
focar em
1617
Seguidores

Estratégias de compra e venda com base nos preços de fechamento da linha K

Visão geral

A estratégia usa a comparação entre a linha K atual e o preço de fechamento da linha K anterior para determinar se um sinal de compra ou venda foi disparado.

Especificamente, se o preço de fechamento da linha K atual for superior ao preço máximo da linha K anterior, um sinal de compra é acionado; se o preço de fechamento da linha K atual for inferior ao preço mínimo da linha K anterior, um sinal de venda é acionado.

Princípio da estratégia

  1. Obter preços mais altos e mais baixos de um período de tempo específico (como dia, hora, etc.)
  2. Calcular a distância de parada e a distância de parada
    • Distância de parada = preço máximo da linha K anterior - preço mínimo da linha K anterior
    • Distância de parada = distância de parada * 3 (configure a proporção de parada de parada de 1: 3)
  3. Julgar a relação entre o preço de fechamento atual da linha K e o preço máximo e mínimo da linha K anterior
    • Se o preço de fechamento atual for > o preço mais alto da linha K, um sinal de compra é acionado
    • Se o preço de fechamento atual for < o preço mínimo da linha K anterior, um sinal de venda será disparado.
  4. Parar e parar após a entrada
    • Depois de comprar, configure o stop loss como o preço mínimo da linha K anterior - a distância de stop loss, o stop loss como o preço máximo da linha K anterior + a distância de stop loss
    • Após a venda, o stop loss é o preço máximo da linha K anterior + a distância de stop loss, o stop loss é o preço mínimo da linha K anterior - a distância de stop loss

A lógica básica da estratégia é essa.

Análise de vantagens

  • A estratégia é clara, simples e fácil de entender.
  • A informação da linha K para determinar a direção da tendência
  • Controle de riscos com mecanismo de suspensão

Análise de Riscos

  • Julgar a forma de uma linha K de um único período de tempo pode gerar mais falsos sinais
  • Não se consideram outros fatores, como a variação do volume de transações, a volatilidade, etc.
  • O bloqueador de danos pode estar mal configurado, e há riscos de distâncias grandes ou pequenas.

Direção de otimização

  • Combinação de outros fatores para confirmar o sinal de entrada, como volume de transação, média, etc.
  • Otimização de algoritmos de stop loss para fazer com que o stop loss seja mais racional e o stop loss mais completo
  • A configuração de parâmetros de diferentes variedades pode precisar de ajustes
  • Pode-se testar a eficácia de ciclos de linha mais longos

Resumir

O conceito geral da estratégia é simples e claro, usando a informação do preço de fechamento da linha K para determinar a direção da tendência, ao mesmo tempo em que configura o risco de controle de stop loss. Pode ser usado como estratégia básica para ações e moedas digitais. Mas, com base apenas na forma da linha K de um único período de tempo, é fácil gerar falsos sinais e há muito espaço para otimização.

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

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")