
यह रणनीति बैल ध्वज के आकार पर आधारित है, कीमत ध्वज के आकार के उच्च बिंदु को तोड़ने के बाद खरीदी जाती है, स्टॉप-लॉस स्थिति ध्वज के आकार के निम्न बिंदु पर सेट की जाती है, और लक्ष्य रिटर्न को रिस्क-रिटर्न अनुपात के आधार पर सेट किया जाता है। रणनीति उच्चतम और निम्नतम मूल्य कार्यों का उपयोग करके ध्वज के आकार के क्षेत्रों की पहचान करती है, और वर्तमान समापन मूल्य और पिछले K-लाइन के उच्चतम मूल्य की तुलना करके तोड़ने का फैसला करती है।
यह रणनीति एक क्लासिक बैल ध्वज पैटर्न पर आधारित एक ब्रेकआउट रणनीति है, जो फ्लैग आकार के क्षेत्रों और मूल्य ब्रेकआउट की पहचान करके प्रवृत्ति को जारी रखने के अवसरों को पकड़ती है। रणनीति के फायदे तर्क की स्पष्टता, जोखिम नियंत्रित हैं, लेकिन बाजार में उतार-चढ़ाव या प्रवृत्ति में बदलाव होने पर कुछ जोखिमों का सामना करना पड़ता है। बाद में सिग्नल, गतिशील पैरामीटर, स्थिति प्रबंधन आदि के प्रबंधन में सुधार किया जा सकता है, जिससे रणनीति की स्थिरता और लाभप्रदता में सुधार हो सकता है।
/*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)