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