Strategi breakout saluran jangka pendek


Tanggal Pembuatan: 2023-10-25 14:40:21 Akhirnya memodifikasi: 2023-10-25 14:40:21
menyalin: 0 Jumlah klik: 674
1
fokus pada
1617
Pengikut

Strategi breakout saluran jangka pendek

Ringkasan

Strategi ini adalah strategi perdagangan jangka pendek yang didasarkan pada indikator corridor. Strategi ini menggunakan terobosan corridor naik dan turun untuk menilai awal dan akhir tren, dan kemudian membuat keputusan jual beli. Dalam pasar tren yang kuat, strategi terobosan ini dapat menghasilkan keuntungan yang lebih baik.

Prinsip Strategi

  1. Strategi ini pertama-tama menghitung harga tertinggi dan terendah dalam periode tertentu untuk membangun jalur atas dan bawah saluran.

  2. Jika harga naik, Anda harus melakukan over entry. Jika harga turun, Anda harus melakukan over entry.

  3. Menggunakan Stop Loss Mobile untuk mengendalikan risiko. Garis Stop Loss diatur sebagai garis tengah dari saluran.

  4. Ada dua pilihan aturan keluar: Regression Midline dan Moving Stop Loss. Yang pertama untuk mendapatkan keuntungan cepat keluar, yang kedua untuk mengendalikan risiko.

  5. Anda dapat memilih siklus saluran sesuai dengan kondisi pasar, menyesuaikan parameter seperti stop loss, dan lain-lain untuk mengoptimalkan strategi Anda.

Analisis Keunggulan

  1. Operasi sederhana, mudah untuk dilakukan. Hanya perlu memantau hubungan harga dengan saluran, dan membuka posisi sesuai aturan.

  2. Perdagangan mengikuti tren, tidak ada risiko resesi.

  3. Jalurnya jelas dan intuitif, membentuk sinyal masuk yang jelas.

  4. Dengan ruang keuntungan yang lebih baik, biasanya dapat mendapatkan hasil yang lebih memuaskan.

  5. Ada banyak parameter yang dapat disesuaikan dan dapat dioptimalkan untuk pasar yang berbeda.

Analisis risiko

  1. Penembusan tidak selalu berhasil, ada risiko tersandung.

  2. Jalur membutuhkan pembentukan siklus tertentu, tidak cocok untuk situasi gempa.

  3. Jika kita melihat ke belakang, stop loss di saluran tengah mungkin terlalu konservatif dan tidak dapat mempertahankan tren.

  4. Optimasi parameter membutuhkan dukungan data historis, dan mungkin ada optimasi pada hard disk.

  5. Mechanical trading breakout points dapat meningkatkan jumlah transaksi dan biaya slippage points.

Arah optimasi

  1. Evaluasi efek dari parameter siklus yang berbeda, memilih siklus saluran yang optimal.

  2. Uji kembali stop line tengah dan stop bergerak, pilih mekanisme keluar yang lebih cocok.

  3. Mengoptimalkan stop loss dan mengurangi probabilitas stop loss yang dipicu.

  4. Untuk menghindari terjadinya transaksi-transaksi yang tidak sesuai, masukkan filter tren.

  5. Pertimbangkan untuk meningkatkan posisi Anda, tetapi kendalikan risiko Anda.

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi terobosan jangka pendek yang lebih matang. Strategi ini memiliki aturan masuk yang jelas, langkah-langkah pengendalian risiko yang ada, dan kinerja yang baik.

Kode Sumber Strategi
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
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/
// Strategy testing and optimisation for free Bitmex trading bot 
// © algotradingcc 

//@version=4
strategy("Channel Break [for free bot]", overlay=true, default_qty_type= strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.075)

//Options
buyPeriod = input(13, "Channel Period for Long position")
sellPeriod = input(18, "Channel Period for Short position")
isMiddleExit = input(true, "Is exit on Base Line?")
takeProfit = input(46, "Take Profit (%) for position")
stopLoss = input(9, "Stop Loss (%) for position")

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

// Long&Short Levels
BuyEnter = highest(buyPeriod)
BuyExit = isMiddleExit ? (highest(buyPeriod) + lowest(buyPeriod)) / 2: lowest(buyPeriod)

SellEnter = lowest(sellPeriod)
SellExit = isMiddleExit ? (highest(sellPeriod) + lowest(sellPeriod)) / 2: highest(sellPeriod)

// Plot Data
plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter")
plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50)
plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter")
plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50)

// Calc Take Profits & Stop Loss
TP = 0.0
SL = 0.0
if strategy.position_size > 0
    TP := strategy.position_avg_price*(1 + takeProfit/100)
    SL := strategy.position_avg_price*(1 - stopLoss/100)

if strategy.position_size > 0 and SL > BuyExit
    BuyExit := SL
    
if strategy.position_size < 0
    TP := strategy.position_avg_price*(1 - takeProfit/100)
    SL := strategy.position_avg_price*(1 + stopLoss/100)

if strategy.position_size < 0 and SL < SellExit
    SellExit := SL
    
    
// Long Position    
if timeRange and strategy.position_size <= 0
    strategy.entry("Long", strategy.long, stop = BuyEnter)
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TP, when = strategy.position_size > 0)


// Short Position
if timeRange and strategy.position_size >= 0
    strategy.entry("Short", strategy.short, stop = SellEnter)
    
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TP, when = strategy.position_size < 0)

// Close & Cancel when over End of the Test
if time > endTest
    strategy.close_all()
    strategy.cancel_all()