この戦略はブルフラッグパターンに基づいている.価格がフラッグレンジの高値を超えると購入し,フラッグレンジの下値にストップロスを設定し,リスク・リターン比に応じて利益目標を設定する.この戦略は,フラッグレンジを識別するために最高値と最低値関数を使用して,現在の閉値と前のキャンドルの最高値を比較してブレイクを決定する.
この戦略は,クラシックなブルフラッグパターンに基づいたブレークアウト戦略であり,フラッグレンジと価格ブレークアウトを特定することによってトレンド継続の機会を把握する.この戦略の利点は明確な論理と制御可能なリスクであるが,不安定な市場やトレンド逆転における特定のリスクに直面する.シグナル,ダイナミックパラメータ,ポジションマネジメント,などを最適化するために,戦略の強度と収益性を高めるために改善を行うことができる.
/*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)