Strategi Aliran BB KC Progresif


Tarikh penciptaan: 2024-01-26 15:10:41 Akhirnya diubah suai: 2024-01-26 15:10:41
Salin: 0 Bilangan klik: 725
1
fokus pada
1617
Pengikut

Strategi Aliran BB KC Progresif

Gambaran keseluruhan

Strategi ini menggunakan kombinasi isyarat Brin dan Kate untuk mengenal pasti trend pasaran. Brin adalah alat analisis teknikal untuk menentukan saluran berdasarkan rentang turun naik harga; Kate adalah isyarat teknikal yang menggabungkan turun naik harga dan trend untuk menilai sokongan atau tekanan. Strategi ini menggabungkan kelebihan kedua-dua indikator untuk mencari peluang melakukan banyak kerja kosong dengan menentukan sama ada ada Brin dan Kate bersilang dengan emas, sambil memverifikasi isyarat yang menggabungkan jumlah transaksi, yang dapat mengenal pasti permulaan trend dengan berkesan dan meminimumkan isyarat yang tidak berkesan.

Prinsip Strategi

  1. Berhitung 20 kitaran dalaman, atas dan bawah Brin, bandwidth ditetapkan melalui 2 kali perbezaan piawai.
  2. Pengiraan Kate 20 kitaran di tengah, atas dan bawah landasan, bandwidth ditetapkan dengan 2.2 kali ganda daripada julat pergerakan sebenar.
  3. Apabila Kate melintasi jalur Brin secara dalam talian dan jumlah transaksi melebihi purata 10 kitaran, lakukan lebih banyak.
  4. Apabila Kate melintasi jalur bawah talian melalui jalur bawah Brin, dan jumlah transaksi lebih besar daripada purata 10 kitaran, kosongkan.
  5. Jika 20 K tidak keluar selepas membuka kedudukan, maka penarikan stop loss terpaksa dilakukan.
  6. Tetapkan stop loss 1.5% selepas melakukan dagangan dan stop loss -1.5% selepas melakukan penutupan; tetapkan stop loss 2% selepas melakukan dagangan dan stop loss 2% selepas melakukan penutupan.

Strategi ini bergantung kepada jangkauan dan kekuatan gelombang Brin, menggunakan pengesahan bantuan Kate Line, penggunaan gabungan dua penunjuk dengan parameter yang berbeza tetapi sifatnya serupa dapat meningkatkan ketepatan isyarat, dan pengenalan jumlah pertukaran juga dapat mengurangkan isyarat yang tidak berkesan.

Analisis kelebihan

  1. Mengambil keuntungan daripada kedua-dua indikator Brin Belt dan Kate Line, ia meningkatkan ketepatan isyarat dagangan.
  2. Gabungan penunjuk kuantiti pertukaran dapat mengurangkan isyarat tidak sah yang sering berlaku di pasaran.
  3. Menetapkan dan menjejaki mekanisme stop-loss untuk mengawal risiko dengan berkesan.
  4. Penangguhan berhenti paksa selepas isyarat tidak sah ditetapkan, boleh menghentikan berhenti berhenti dengan cepat.

Analisis risiko

  1. Blink dan Kate adalah kedua-dua penunjuk yang berdasarkan pada garis purata bergerak dan menggabungkan pengiraan turun naik, yang mudah menyebabkan isyarat salah dalam keadaan gegaran.
  2. Mekanisme tanpa keuntungan, yang boleh menyebabkan kerugian yang berlebihan.
  3. Isyarat pembalikan lebih biasa, mudah kehilangan peluang trend selepas menyesuaikan parameter. Anda boleh melepaskan stop loss yang sesuai, atau menambah isyarat penyaringan penunjuk tambahan seperti MACD untuk mengurangkan risiko isyarat palsu.

Arah pengoptimuman

  1. Anda boleh menguji kesan parameter yang berbeza terhadap kadar pulangan strategi, seperti panjang garis rata-rata yang disesuaikan, dan kelipatan perbezaan piawai.
  2. Ia boleh digabungkan dengan penilaian indikator lain untuk menentukan isyarat, seperti bantuan indikator KDJ atau MACD.
  3. Parameter boleh dioptimumkan secara automatik melalui kaedah pembelajaran mesin.

ringkaskan

Strategi ini menggunakan indikator Brin Belt dan Kate Line secara komprehensif untuk mengenal pasti trend pasaran, dan ditambah dengan indikator kuantiti transaksi untuk mengesahkan isyarat. Strategi ini dapat diperkuat lagi dengan cara mengoptimumkan parameter, memasukkan indikator teknikal lain, dan sebagainya, sehingga dapat disesuaikan dengan keadaan pasaran yang lebih luas. Strategi ini mempunyai kebolehan yang kuat secara keseluruhan, dan merupakan salah satu strategi perdagangan kuantitatif yang mudah dikuasai dan disesuaikan.

Kod 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