
এই কৌশলটি একটি ষাঁড়ের পতাকা আকৃতির উপর ভিত্তি করে, পতাকা আকৃতির অঞ্চলের উচ্চতা অতিক্রম করার পরে ক্রয় করা হয়, পতাকা আকৃতির অঞ্চলের নিম্নতম স্থানে স্টপ-ড্রপ অবস্থান স্থাপন করা হয় এবং ঝুঁকি-ফেরতের অনুপাতের উপর ভিত্তি করে টার্গেট প্রফিট সেট করা হয়। কৌশলটি সর্বোচ্চ মূল্য এবং সর্বনিম্ন মূল্য ফাংশন ব্যবহার করে পতাকা আকৃতির অঞ্চলটি সনাক্ত করে এবং বর্তমান বন্ধের মূল্য এবং পূর্ববর্তী কে-লাইন সর্বোচ্চ মূল্যের তুলনা করে একটি ব্রেকিংয়ের বিচার করে।
এই কৌশলটি একটি প্রচলিত ষাঁড়ের পতাকা আকৃতির উপর ভিত্তি করে একটি ব্রেকিং কৌশল, যা পতাকা আকৃতির অঞ্চল এবং দামের ব্রেকিংয়ের সনাক্তকরণের মাধ্যমে প্রবণতা অব্যাহত রাখার সুযোগকে ক্যাপচার করে। কৌশলটির সুবিধাগুলি হ’ল লজিক্যাল স্পষ্টতা, ঝুঁকি নিয়ন্ত্রণযোগ্য, তবে বাজারের ঝড় বা প্রবণতা বিপরীত হওয়ার সময় কিছু ঝুঁকির মুখোমুখি। পরবর্তী সময়ে সংকেত, গতিশীল প্যারামিটার, পজিশন ম্যানেজমেন্ট ইত্যাদির অপ্টিমাইজেশনের দিক থেকে উন্নতি করা যেতে পারে, কৌশলটির স্থিতিশীলতা এবং লাভজনকতা বাড়াতে পারে।
/*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)