
Chiến lược này dựa trên hình dạng lá cờ bò, mua sau khi giá phá vỡ vùng cao của vùng lá cờ, đặt vị trí dừng lỗ ở vùng thấp của vùng lá cờ, mục tiêu lợi nhuận được thiết lập dựa trên tỷ lệ lợi nhuận rủi ro. Chiến lược sử dụng hàm giá cao nhất và giá thấp nhất để xác định vùng lá cờ và đánh giá phá vỡ bằng cách so sánh giá đóng cửa hiện tại với giá cao nhất của đường K trước đó.
Chiến lược này là một chiến lược đột phá dựa trên hình dạng lá cờ bò cổ điển, để nắm bắt cơ hội tiếp tục xu hướng bằng cách xác định các khu vực hình cờ và phá vỡ giá. Ưu điểm của chiến lược là logic rõ ràng, rủi ro có thể kiểm soát được, nhưng phải đối mặt với một số rủi ro khi thị trường rung động hoặc xu hướng đảo ngược.
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bull Flag Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Параметры стратегии
riskRewardRatio = 3.0
flagLength = input.int(5, title="Flag Length")
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer", step=0.001)
// Функция для вычисления стоп-лосса и тейк-профита
calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio) =>
takeProfitPrice = entryPrice + (entryPrice - stopLossPrice) * riskRewardRatio
[stopLossPrice, takeProfitPrice]
// Найти минимум и максимум флага
flagLow = ta.lowest(low, flagLength)
flagHigh = ta.highest(high, flagLength)
// Условия для формирования бычьего флага
isBullFlag = high[1] < flagHigh and close > high[1]
// Условия для входа в сделку
if (isBullFlag)
entryPrice = close
stopLossPrice = flagLow - stopLossBuffer
[calculatedStopLoss, calculatedTakeProfit] = calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio)
// Открыть длинную позицию
strategy.entry("Bull Flag Long", strategy.long)
strategy.exit("Take Profit", "Bull Flag Long", limit=calculatedTakeProfit)
strategy.exit("Stop Loss", "Bull Flag Long", stop=calculatedStopLoss)
label.new(bar_index, high, "Buy", color=color.green, textcolor=color.white, style=label.style_label_down)