
Trata-se de uma estratégia de negociação de alta frequência baseada na direção de fechamento da linha K em 1 minuto. A estratégia determina o movimento do mercado julgando a relação entre o preço de fechamento da linha K e o preço de abertura, e faz excessos após a formação da linha K de ponta, e fecha a linha K após a formação da linha K de baixa. A estratégia usa um tempo de posição fixo, liquida a posição no fechamento da linha K seguinte e limita o número máximo de transações por dia para controlar o risco.
A lógica central da estratégia é determinar a tendência do mercado a curto prazo através da linha K:
A estratégia é um sistema de negociação de alta frequência baseado na direção de fechamento da linha K para capturar oportunidades de mercado de curto prazo por meio de uma simples análise do comportamento do preço. A estratégia tem vantagens em termos de lógica simples, tempo de posse curto e risco controlado, mas também enfrenta desafios como custos de negociação elevados e falsas rupturas.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-12-10 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Candle Close Strategy", overlay=true)
// Define conditions for bullish and bearish candlesticks
isBullish = close > open
isBearish = close < open
// Track the number of bars since the trade was opened and the number of trades per day
var int barsSinceTrade = na
var int tradesToday = 0
// Define a fixed position size for testing
fixedPositionSize = 1
// Entry condition: buy after the close of a bullish candlestick
if (isBullish and tradesToday < 200) // Limit to 200 trades per day
strategy.entry("Buy", strategy.long, qty=fixedPositionSize)
barsSinceTrade := 0
tradesToday := tradesToday + 1
// Entry condition: sell after the close of a bearish candlestick
if (isBearish and tradesToday < 200) // Limit to 200 trades per day
strategy.entry("Sell", strategy.short, qty=fixedPositionSize)
barsSinceTrade := 0
tradesToday := tradesToday + 1
// Update barsSinceTrade if a trade is open
if (strategy.opentrades > 0)
barsSinceTrade := nz(barsSinceTrade) + 1
// Reset tradesToday at the start of a new day
if (dayofmonth != dayofmonth[1])
tradesToday := 0
// Exit condition: close the trade after the next candlestick closes
if (barsSinceTrade == 2)
strategy.close("Buy")
strategy.close("Sell")
// Plot bullish and bearish conditions
plotshape(series=isBullish, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=isBearish, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot the candlesticks
plotcandle(open, high, low, close, title="Candlesticks")