Strategi Tren BB KC Progresif


Tanggal Pembuatan: 2024-01-26 15:10:41 Akhirnya memodifikasi: 2024-01-26 15:10:41
menyalin: 0 Jumlah klik: 725
1
fokus pada
1617
Pengikut

Strategi Tren BB KC Progresif

Ringkasan

Strategi ini menggunakan kombinasi sinyal Brin dan Kate untuk mengidentifikasi tren pasar. Brin adalah alat analisis teknis untuk mendefinisikan saluran berdasarkan rentang fluktuasi harga. Kate adalah indikator teknis yang menggabungkan fluktuasi harga dan tren untuk menilai dukungan atau tekanan.

Prinsip Strategi

  1. Perhitungan 20 siklus Brin di rel tengah, rel atas dan rel bawah, bandwidth ditentukan oleh 2 kali perbedaan standar.
  2. Perhitungan 20 siklus Kate di dalam, di atas dan di bawah rel, bandwidth ditentukan oleh 2.2 kali dari rentang fluktuasi yang sebenarnya.
  3. Lakukan lebih banyak ketika Kate melintasi jalur Brin secara online dan volume transaksi lebih besar dari rata-rata 10 siklus.
  4. Keterangan kosong dilakukan ketika Kate melintasi jalur bawah Brin secara offline dan volume transaksi lebih besar dari rata-rata 10 siklus.
  5. Jika 20 K tidak keluar setelah membuka posisi, maka stop loss harus dikeluarkan.
  6. Setelah melakukan over, setel stop loss 1.5%, setelah melakukan short, setel stop loss -1.5%; setelah melakukan over, setel tracking stop loss 2%, setelah melakukan short, setel tracking stop loss -2%

Strategi ini terutama mengandalkan Brin band untuk menentukan kisaran dan intensitas fluktuasi, menggunakan Kate line bantu verifikasi, dua indikator yang berbeda parameter tetapi sifatnya serupa digunakan bersama-sama, dapat meningkatkan akurasi sinyal, dan pengenalan jumlah bertukar juga dapat secara efektif mengurangi sinyal tidak efektif.

Analisis Keunggulan

  1. Dengan memanfaatkan baik indikator Brin Band dan Kate Line, ini meningkatkan akurasi sinyal trading.
  2. Kombinasi indikator volume perdagangan, dapat secara efektif mengurangi sinyal tidak efektif dari pasar sering tabrakan.
  3. Menetapkan mekanisme stop loss dan tracking stop loss untuk mengontrol risiko secara efektif.
  4. Stop loss yang dipaksakan setelah sinyal batal, dapat dihentikan dengan cepat.

Analisis risiko

  1. Garis Brin dan Kate adalah indikator yang didasarkan pada garis rata-rata bergerak dan digabungkan dengan perhitungan volatilitas, yang dapat menyebabkan kesalahan sinyal dalam situasi getaran.
  2. Mekanisme yang tidak menguntungkan, yang bisa menyebabkan kerugian yang terlalu besar.
  3. Sinyal reversal lebih umum, mudah kehilangan peluang tren setelah menyesuaikan parameter. Anda dapat meregangkan stop loss dengan tepat, atau menambahkan sinyal penyaringan indikator tambahan seperti MACD untuk mengurangi risiko sinyal palsu.

Arah optimasi

  1. Anda dapat menguji efek dari berbagai parameter pada tingkat pengembalian strategi, seperti panjang garis rata-rata yang disesuaikan, atau perkalian standar deviasi.
  2. Indikator lain dapat digabungkan untuk menentukan sinyal, seperti bantuan dari indikator KDJ atau MACD.
  3. Parameter dapat dioptimalkan secara otomatis melalui metode pembelajaran mesin.

Meringkaskan

Strategi ini menggunakan indikator Brin dan Kate untuk mengidentifikasi tren pasar, ditambah dengan indikator volume transaksi untuk memverifikasi sinyal. Strategi ini dapat diperkuat lebih lanjut dengan cara mengoptimalkan parameter, menambahkan indikator teknis lainnya, dan lain-lain, sehingga dapat disesuaikan dengan situasi pasar yang lebih luas. Strategi ini memiliki kelayakan yang kuat secara keseluruhan dan merupakan salah satu strategi perdagangan kuantitatif yang mudah dipahami dan disesuaikan.

Kode Sumber Strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jensenvilhelm

//@version=5
strategy("BB and KC Strategy", overlay=true)

// Define the input parameters for the strategy, these can be changed by the user to adjust the strategy
kcLength = input.int(20, "KC Length", minval=1) // Length for Keltner Channel calculation
kcStdDev = input.float(2.2, "KC StdDev") // Standard Deviation for Keltner Channel calculation
bbLength = input.int(20, "BB Length", minval=1) // Length for Bollinger Bands calculation
bbStdDev = input.float(2, "BB StdDev") // Standard Deviation for Bollinger Bands calculation
volumeLength = input.int(10, "Volume MA Length", minval=1) // Length for moving average of volume calculation
stopLossPercent = input.float(1.5, "Stop Loss (%)") // Percent of price for Stop loss 
trailStopPercent = input.float(2, "Trail Stop (%)") // Percent of price for Trailing Stop
barsInTrade = input.int(20, "Bars in trade before exit", minval = 1) // Minimum number of bars in trade before considering exit

// Calculate Bollinger Bands and Keltner Channel
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bbLength, bbStdDev) // Bollinger Bands calculation
[kc_middle, kc_upper, kc_lower] = ta.kc(close, kcLength, kcStdDev) // Keltner Channel calculation

// Calculate moving average of volume
vol_ma = ta.sma(volume, volumeLength) // Moving average of volume calculation

// Plotting Bollinger Bands and Keltner Channels on the chart
plot(bb_upper, color=color.red) // Bollinger Bands upper line
plot(bb_middle, color=color.blue) // Bollinger Bands middle line
plot(bb_lower, color=color.red) // Bollinger Bands lower line
plot(kc_upper, color=color.rgb(105, 255, 82)) // Keltner Channel upper line
plot(kc_middle, color=color.blue) // Keltner Channel middle line
plot(kc_lower, color=color.rgb(105, 255, 82)) // Keltner Channel lower line

// Define entry conditions: long position if upper KC line crosses above upper BB line and volume is above MA of volume
// and short position if lower KC line crosses below lower BB line and volume is above MA of volume
longCond = ta.crossover(kc_upper, bb_upper) and volume > vol_ma // Entry condition for long position
shortCond = ta.crossunder(kc_lower, bb_lower) and volume > vol_ma // Entry condition for short position

// Define variables to store entry price and bar counter at entry point
var float entry_price = na // variable to store entry price
var int bar_counter = na // variable to store bar counter at entry point

// Check entry conditions and if met, open long or short position
if (longCond)
    strategy.entry("Buy", strategy.long) // Open long position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter
if (shortCond)
    strategy.entry("Sell", strategy.short) // Open short position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter

// If in a position and bar counter is not na, increment bar counter
if (strategy.position_size != 0 and na(bar_counter) == false)
    bar_counter := bar_counter + 1 // Increment bar counter

// Define exit conditions: close position if been in trade for more than specified bars
// or if price drops by more than specified percent for long or rises by more than specified percent for short
if (bar_counter > barsInTrade) // Only consider exit after minimum bars in trade
    if (bar_counter >= barsInTrade)
        strategy.close_all() // Close all positions
    // Stop loss and trailing stop
    if (strategy.position_size > 0)
        strategy.exit("Sell", "Buy", stop=entry_price * (1 - stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for long position
    else if (strategy.position_size < 0)
        strategy.exit("Buy", "Sell", stop=entry_price * (1 + stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for short position