
O objetivo desta estratégia é prever o preço de fechamento da próxima linha K de 15 minutos. O método é analisar o preço de abertura e o preço de fechamento das duas últimas linhas K de 30 minutos. De acordo com a tendência, a linha K de 15 minutos será continuada para cima, para baixo ou para cima.
A lógica central desta estratégia está na função predictNextCandleClose. Esta função aceita o preço de abertura e o preço de fechamento das duas primeiras linhas K de 30 minutos como parâmetros de entrada.
Se a última linha K de 30 minutos fechar acima do preço de abertura, é considerada uma tendência de vários pontos; se for inferior ao preço de abertura, é uma tendência de cabeça vazia. Se a segunda linha K de 30 minutos em retorno também mostrar a mesma tendência de vários pontos, a tendência é considerada mais forte e a previsão de que a próxima linha K de 15 minutos também continuará a tendência.
Especificamente, se as duas últimas linhas K de 30 minutos tiverem fechamento positivo (preço de fechamento acima do preço de abertura), o preço de fechamento previsto para a próxima linha K de 15 minutos será maior do que o preço de fechamento da linha K atual e o diferencial entre o preço de fechamento da linha K de 30 minutos e o preço de abertura.
Se as duas últimas linhas K de 30 minutos tiverem fechamento negativo (preço de fechamento abaixo do preço de abertura), o preço de fechamento da próxima linha K de 15 minutos será menor do que o preço de fechamento da linha K atual e o diferencial entre o preço de abertura e o preço de fechamento da última linha K de 30 minutos.
Se as duas últimas linhas K de 30 minutos tiverem uma baixa e uma baixa, isso indica que não há uma tendência clara, e o preço de fechamento da próxima linha K de 15 minutos será o mesmo que o preço de fechamento da última linha K de 30 minutos.
Assim, a informação sobre a linha K do passado pode ser usada para avaliar a tendência de preços no curto prazo, como uma referência para decisões de negociação.
Esta estratégia de previsão de duas linhas K tem as seguintes vantagens:
Uma implementação simples, intuitiva e fácil de entender, adequada para iniciantes em transações quantitativas
Utilizando a tendência de julgamento de duas linhas K, pode-se filtrar parte do ruído e melhorar a precisão do julgamento
Previsão de 15 minutos, com intervalos curtos, favorável a ajustes de posição em tempo útil
Compreensão de sinais de negociação combinada com preços atuais e previsões de preços para responder rapidamente a eventos inesperados
Não precisa de grandes quantidades de dados históricos, reduzindo o requisito de volume de dados, para casos de dados incompletos ou em disco rígido
Mas a estratégia também traz riscos:
Considerando apenas os preços de abertura e fechamento, a falta de mais detalhes da linha K como julgamento auxiliar pode ter deixado de fora sinais importantes
Intervalos de linha dupla-K longos, impossibilidade de resposta imediata a flutuações de preços de curto prazo, existência de atraso no tempo
Previsões baseadas apenas em dados históricos não permitem avaliar o impacto de eventos de grande importância, com maior risco
A regra de julgamento de múltiplos espaços é mais simples, fácil de produzir sinais errados, a qualidade do sinal precisa ser melhorada
Os dados em disco rígido geralmente apresentam falhas ou lacunas, o que também interfere com a precisão da lógica de julgamento.
Considerando os riscos acima mencionados, a estratégia pode ser otimizada em vários aspectos:
Adição de mais indicadores auxiliares de julgamento, como MACD, KD, etc., para melhorar a precisão da previsão
Combinação de mais detalhes de linha K, como linhas de sombra, entidades e outros pontos críticos de avaliação de preços, para aperfeiçoar a regra da pluralidade de espaços
Aumentar a quantidade de amostras, alargar o intervalo de tempo para julgar a linha K, evitar a interferência de ruído de curta duração
Aumentar as estratégias de stop loss e controlar as perdas individuais por meio de stop loss móvel e temporário
Optimizar as regras de abertura de posições, abrindo posições apenas quando a tendência é mais clara, evitando a repetição da incerteza do mercado
Verificação em disco real, corrigindo a lógica que não corresponde ao disco real, para que os parâmetros da estratégia estejam mais próximos do mercado real
Esta estratégia analisa as informações de preços de abertura e recebimento da linha K dupla para determinar as tendências futuras de curto prazo e, com base nisso, gera sinais de negociação. É uma estratégia de previsão baseada em dados históricos. A estratégia é simples e fácil de usar, adequada para iniciantes em negociação quantitativa, mas também tem regras de julgamento simples e problemas de qualidade de sinal limitados.
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Sosawolf
//@version=5
strategy("Predict Next Candle Close Strategy", overlay=true)
// Function to predict next candle close based on previous two candles
predictNextCandleClose(open1, close1, open2, close2) =>
if close1 > open1 and close2 > open2
// Bullish trend, predict next candle close to be bullish
close1 + (close1 - open1)
else if close1 < open1 and close2 < open2
// Bearish trend, predict next candle close to be bearish
close1 - (open1 - close1)
else
// Indecisive or ranging market, predict next candle close to be neutral
close1
// Get previous two 30-minute candles' open and close prices
open1 = request.security(syminfo.tickerid, "30", open[1])
close1 = request.security(syminfo.tickerid, "30", close[1])
open2 = request.security(syminfo.tickerid, "30", open[2])
close2 = request.security(syminfo.tickerid, "30", close[2])
// Predict next 15-minute candle close
predictedClose = predictNextCandleClose(open1, close1, open2, close2)
// Plot the predicted close as a line
plot(predictedClose, color=color.blue, linewidth=2, title="Predicted Close")
// Buy condition: Predicted close is higher than the current close
buyCondition = predictedClose > close
strategy.entry("Buy", strategy.long, when=buyCondition)
// Sell condition: Predicted close is lower than the current close
sellCondition = predictedClose < close
strategy.entry("Sell", strategy.short, when=sellCondition)