Sumber daya yang dimuat... Pemuatan...

Rasio risiko-imbalan dan analisis teknis berbasis Bull Flag Breakout Strategy

Penulis:ChaoZhang, Tanggal: 2024-05-28 10:47:51
Tag:

img

Gambaran umum

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.

Prinsip Strategi

  1. Mengidentifikasi pola bendera bull: Menghitung tinggi dan rendah dari kisaran bendera menggunakan fungsi harga tertinggi dan terendah, dan menentukan apakah harga saat ini pecah di atas bendera tinggi.
  2. Masuk: Jika harga penutupan saat ini pecah di atas harga tertinggi lilin sebelumnya, dan harga tertinggi lilin sebelumnya lebih rendah dari tinggi bendera, maka beli.
  3. Stop Loss: Harga stop loss ditetapkan pada level rendah, dikurangi nilai buffer.
  4. Ambil Keuntungan: Hitung harga target berdasarkan rasio risiko-manfaat.

Keuntungan Strategi

  1. Berdasarkan pola bendera banteng klasik, dapat menangkap peluang mundur dalam tren yang kuat.
  2. Stop loss diatur pada level rendah, sehingga risiko dapat dikendalikan.
  3. Gunakan rasio risiko-manfaat untuk menetapkan harga target dan mencari pengembalian yang lebih tinggi.
  4. Logika kode jelas dan menggunakan fungsi bawaan TradingView, membuatnya mudah dipahami dan dimodifikasi.

Risiko Strategi

  1. Di pasar yang tidak stabil atau ketika tren tidak jelas, harga dapat cepat berbalik setelah keluar dari bendera, yang mengarah pada penurunan yang signifikan.
  2. Penentuan nilai penyangga yang tidak tepat dapat menyebabkan stop loss prematur.
  3. Rasio risiko-manfaat yang sebenarnya mungkin tidak mencapai nilai yang ditetapkan.
  4. Strategi ini mungkin gagal untuk beberapa pola bendera yang cacat.

Arah Optimasi Strategi

  1. Pertimbangkan untuk menambahkan lebih banyak kondisi ke sinyal filter, seperti perubahan volume perdagangan, arah rata-rata bergerak, dll, untuk meningkatkan kualitas sinyal.
  2. Mengoptimalkan parameter sesuai dengan karakteristik pasar yang berbeda, seperti panjang kisaran bendera, rasio risiko-manfaat, nilai penyangga stop loss, dll.
  3. Pertimbangkan untuk membangun posisi dalam batch dan menggunakan stop loss dinamis untuk mengurangi eksposur risiko.
  4. Tambahkan manajemen posisi untuk mengendalikan risiko keseluruhan.

Ringkasan

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)


Lebih banyak