Strategi terobosan kekuatan K-line


Tanggal Pembuatan: 2023-10-07 15:59:26 Akhirnya memodifikasi: 2023-10-07 15:59:26
menyalin: 0 Jumlah klik: 632
1
fokus pada
1617
Pengikut

Ringkasan

Strategi K-line breakout adalah strategi perdagangan kuantitatif yang memanfaatkan bentuk K-line dan indikator K-line untuk membeli dan menjual saham. Strategi ini menggabungkan berbagai indikator teknis untuk mengidentifikasi tren harga saham dan sinyal K-line, melakukan posisi di titik terobosan, mengatur stop loss dan stop loss untuk keluar, dapat secara efektif mengendalikan risiko perdagangan.

Prinsip Strategi

Strategi untuk menerobos Jalur K didasarkan pada beberapa poin utama:

  1. Menggunakan komoditas channel index (CCI) untuk menentukan apakah harga saham berada di zona overbought oversold. Ketika CCI melewati 100 dianggap sebagai sinyal overbought dan ketika CCI melewati 100 dianggap sebagai sinyal oversold.

  2. menilai bentuk K-line, mengidentifikasi sinyal pecah. Ketika muncul harga penutupan lebih tinggi dari harga bukaan merah K-line menilai tren naik, muncul harga penutupan di bawah harga bukaan K-line hijau menilai tren turun.

  3. Indikator volume transaksi gabungan, hanya mempertimbangkan untuk mengirim sinyal beli dan jual jika volume transaksi meningkat.

  4. Ketika identifikasi tren naik dan indikator CCI menunjukkan oversold, melakukan operasi beli. Ketika identifikasi tren turun dan indikator CCI menunjukkan oversold, melakukan operasi jual.

  5. Tetapkan Stop Loss Threshold. Setelah membeli, atur Stop Loss Proporsional untuk mengontrol risiko penurunan, dan juga atur Stop Loss Proporsional untuk mengunci keuntungan.

Secara khusus, strategi ini menggunakan indikator CCI untuk menilai overbought dan oversold, bentuk K untuk menentukan arah tren, dan volume untuk menilai volume. Jika memenuhi syarat, melakukan operasi longing (membeli lebih dari satu head) atau shorting (menjual lebih dari satu head). Mengontrol risiko dan mengunci keuntungan dengan menghentikan stop loss.

Analisis Keunggulan

Strategi untuk menerobos K-Line memiliki keuntungan sebagai berikut:

  1. Kombinasi berbagai indikator untuk membuat keputusan, membuat sinyal perdagangan lebih dapat diandalkan. Indikator CCI dapat menentukan titik jual beli, garis K menentukan arah tren, dan volume mencerminkan kekuatan pasar.

  2. K-line membantu menentukan arah tren, sehingga lebih akurat menangkap peluang untuk membalikkan harga. Misalnya, K-line merah yang digabungkan dengan CCI oversold adalah waktu untuk membeli.

  3. Pengaturan Stop Loss Stop Mechanism dapat secara efektif mengontrol risiko, mencegah pertumbuhan kerugian, dan dapat mengunci keuntungan.

  4. Hanya mempertimbangkan sinyal transaksi ketika volume transaksi meningkat, dan dapat memfilter sinyal palsu

  5. Strategi yang jelas dan mudah dimengerti, parameter yang fleksibel, dapat dioptimalkan untuk berbagai saham dan lingkungan pasar.

  6. Strategi dapat dioptimalkan untuk memperluas, seperti menambahkan lebih banyak faktor, pembelajaran mesin, dan lain-lain, untuk meningkatkan stabilitas dan tingkat pengembalian strategi.

Analisis risiko

Strategi untuk menerobos K-Line juga memiliki risiko:

  1. Sinyal jual beli dari indikator CCI dapat terlambat, menyebabkan kehilangan titik masuk terbaik. Parameter CCI dapat dioptimalkan dengan tepat untuk meningkatkan sensitivitas.

  2. Sinyal false breakout dari penilaian bentuk garis K dapat menyebabkan kerugian yang tidak perlu. Anda dapat menambahkan lebih banyak indikator untuk konfirmasi, atau menyesuaikan stop loss rasio.

  3. Peningkatan volume transaksi juga dapat mencerminkan manipulasi pasar, perlu memperhatikan hubungan antara volume dan harga untuk mencegah terjadinya perangkap.

  4. Pengaturan stop loss statis dapat menyebabkan stop loss prematur atau kehilangan kinerja yang lebih besar. Anda dapat mempertimbangkan untuk menyesuaikan rasio stop loss secara dinamis.

  5. Parameter yang disetel untuk saham individu tidak selalu berlaku untuk saham lain, perlu dilakukan pengujian dan pengoptimalan sesuai dengan karakteristik saham yang berbeda.

  6. Data retrospektif jangka panjang tidak selalu mewakili kinerja real-time, yang perlu diperhatikan adalah risiko manipulasi.

Arah optimasi

Strategi ini dapat dipertimbangkan untuk dioptimalkan dari:

  1. Optimalisasi parameter CCI untuk meningkatkan sensitivitas penilaian indikator CCI terhadap titik jual beli.

  2. Menambahkan indikator tambahan seperti MACD, Bollinger Band, dan lain-lain untuk meningkatkan akurasi sinyal jual beli.

  3. Menggunakan algoritma pembelajaran mesin, menggunakan pelatihan data historis, untuk memprediksi titik jual beli.

  4. Menggunakan metode stop loss dan stop loss yang dinamis, menyesuaikan stop loss dan stop stop rasio sesuai dengan volatilitas pasar.

  5. Optimalkan logika pertimbangan untuk memperbesar volume transaksi dan mencegah deviasi harga.

  6. Mengoptimalkan pengaturan parameter sesuai dengan karakteristik saham yang berbeda dan lingkungan pasar, meningkatkan stabilitas strategi.

  7. Menambahkan mekanisme pelacakan tren untuk mengoptimalkan kinerja strategi di berbagai tahap.

  8. Perbaikan struktur kebijakan, pengenalan manajemen modular, meningkatkan fleksibilitas dan ekspansibilitas kode.

Meringkaskan

Strategi K-Line Breakout secara keseluruhan adalah strategi perdagangan garis pendek yang relatif sederhana dan jelas. Strategi ini menggabungkan keunggulan dari berbagai indikator teknis yang umum digunakan, logika penilaian yang jelas dan mudah dimengerti, dan pengendalian risiko melalui stop loss. Strategi ini dapat dioptimalkan secara fleksibel sesuai kebutuhan sendiri untuk menangkap titik balik harga garis pendek dan melacak tren jangka menengah.

Kode Sumber Strategi
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 2h
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/
// © vikris

//@version=4
strategy("[VJ]War Machine PAT Intra", overlay=true, calc_on_every_tick = false)

// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01    

trendFactor = input(title="Trend Factor(Lower means trending)", type=input.integer, minval=1, step=1, defval=50)

oversold = input(title="Oversold", type=input.integer, minval=1, step=1, defval=25)

overbought = input(title="Overbought", type=input.integer, minval=1, step=1, defval=75)

// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
//Vol Confirmation
vol = volume > volume[1]

//Engulfing candle confirm
bullishEC = close > open[1] and close[1] < open[1]
bearishEC = close < open[1] and close[1] > open[1]

//Candles colors
greenCandle = (close > open)
redCandle = (close < open)

length = input(title="Length", type=input.integer, defval=14, minval=1, maxval=2000)
src = hlc3
upper = sum(volume * (change(src) <= 0 ? 0 : src), length)
lower = sum(volume * (change(src) >= 0 ? 0 : src), length)
_rsi(upper, lower) =>
    100.0 - (100.0 / (1.0 + upper / lower))
mf = _rsi(upper, lower)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)

//tradeSignal = ((rsiOS or rsiOS[1]) and bullishEC) or ((rsiOB or rsiOB[1]) and bearishEC)




//Final Long/Short Condition
longCondition =  redCandle and mf < oversold and ci <trendFactor and vol
shortCondition = greenCandle and mf >overbought and ci <trendFactor and vol
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********