Strategi ini didasarkan pada pola bendera bull. Strategi ini membeli ketika harga pecah di atas kisaran bendera, menetapkan stop loss di bawah kisaran bendera, dan menetapkan target keuntungan sesuai rasio risiko-imbalan. Strategi ini menggunakan fungsi harga tertinggi dan terendah untuk mengidentifikasi kisaran bendera dan menentukan breakout dengan membandingkan harga penutupan saat ini dengan harga tertinggi lilin sebelumnya.
Strategi ini adalah strategi breakout berdasarkan pola bendera bull klasik, yang menangkap peluang kelanjutan tren dengan mengidentifikasi kisaran bendera dan price breakout. Keuntungan strategi ini adalah logika yang jelas dan risiko yang dapat dikendalikan, tetapi menghadapi risiko tertentu di pasar yang tidak stabil atau pembalikan tren. Perbaikan dapat dilakukan dalam hal mengoptimalkan sinyal, parameter dinamis, manajemen posisi, dll., untuk meningkatkan kekuatan dan profitabilitas strategi.
/*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)