Strategi terobosan K-line Kekuatan


Tarikh penciptaan: 2023-10-07 15:59:26 Akhirnya diubah suai: 2023-10-07 15:59:26
Salin: 0 Bilangan klik: 632
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi menembusi garis K adalah strategi perdagangan kuantitatif yang menggunakan bentuk garis K dan penunjuk jalan untuk membeli dan menjual saham. Strategi ini menggabungkan pelbagai petunjuk teknikal untuk mengenal pasti trend harga saham dan isyarat jalan, membuat kedudukan di titik penembusan, menetapkan penangguhan penangguhan penyingkiran, dan mengawal risiko perdagangan dengan berkesan.

Prinsip Strategi

Strategi untuk menembusi K Line adalah berdasarkan kepada beberapa perkara:

  1. Gunakan indeks saluran komoditi (CCI) untuk menentukan sama ada harga saham berada di kawasan overbought overbought. Apabila CCI melebihi 100 dianggap sebagai isyarat overbought, apabila CCI melebihi 100 dianggap sebagai isyarat oversold.

  2. Menilai bentuk garis K, mengenal pasti isyarat penembusan. Apabila terdapat harga penutupan yang lebih tinggi daripada harga pembukaan garis K merah dinilai sebagai trend naik, apabila terdapat harga penutupan yang lebih rendah daripada harga pembukaan garis K hijau dinilai sebagai trend menurun.

  3. Gabungan penunjuk jumlah urus niaga, hanya boleh mempertimbangkan untuk menghantar isyarat beli dan jual jika jumlah urus niaga meningkat.

  4. Apabila trend naik telah dikenal pasti dan penunjuk CCI menunjukkan oversold, lakukan operasi beli. Apabila trend turun telah dikenal pasti dan penunjuk CCI menunjukkan oversold, lakukan operasi jual.

  5. Tetapkan titik henti rugi. Tetapkan titik henti rugi peratusan selepas membeli untuk mengawal risiko penurunan, dan juga menetapkan titik henti rugi peratusan untuk mengunci keuntungan.

Khususnya, strategi ini menggunakan petunjuk CCI untuk menilai overbought dan oversold, bentuk garis K untuk menentukan arah trend, penilaian indikator volume. Apabila memenuhi syarat, melakukan operasi longing (membeli lebih banyak kepala) atau shorting (menjual kepala kosong). Mengendalikan risiko dan mengunci keuntungan dengan menghentikan stop loss.

Analisis kelebihan

Strategi menembusi garisan K mempunyai kelebihan berikut:

  1. Gabungan pelbagai petunjuk untuk membuat keputusan, menjadikan isyarat perdagangan lebih dipercayai. Indeks CCI dapat menentukan titik jual beli, garis K menentukan arah trend, dan volume mencerminkan kekuatan pasaran.

  2. Garis K membantu menentukan arah trend, dapat menangkap peluang untuk membalikkan harga dengan lebih tepat. Sebagai contoh, garis K merah yang digabungkan dengan CCI oversold adalah masa untuk membeli.

  3. Pemasangan mekanisme hentian kerugian boleh mengawal risiko dengan berkesan, mencegah kerugian daripada berkembang, dan boleh mengunci keuntungan.

  4. Hanya pertimbangkan isyarat perdagangan apabila jumlah transaksi meningkat, dan filter isyarat palsu.

  5. Strategi yang jelas dan mudah difahami, parameter yang fleksibel, boleh dioptimumkan untuk pelbagai saham dan keadaan pasaran.

  6. Strategi boleh dioptimumkan untuk diperluaskan, seperti menambahkan lebih banyak faktor, pembelajaran mesin, dan sebagainya, untuk meningkatkan kestabilan dan kadar pulangan strategi.

Analisis risiko

Strategi penembusan K Line juga mempunyai risiko:

  1. Isyarat beli dan jual yang dikeluarkan oleh penunjuk CCI mungkin terlewat, menyebabkan kehilangan titik masuk terbaik. Parameter CCI boleh dioptimumkan dengan betul untuk meningkatkan kepekaan.

  2. Isyarat penembusan palsu yang dinilai dalam bentuk K linear boleh menyebabkan kerugian yang tidak perlu. Anda boleh menambah lebih banyak petunjuk untuk pengesahan, atau menyesuaikan peratusan kerugian.

  3. Peningkatan kuantiti transaksi juga mungkin mencerminkan manipulasi pasaran, dan perlu memberi perhatian kepada hubungan antara kuantiti harga untuk mengelakkan perangkap.

  4. Tetapan penangguhan kerugian statik mungkin akan berhenti terlalu awal atau kehilangan keadaan yang lebih besar. Anda boleh mempertimbangkan untuk menyesuaikan peratusan penangguhan kerugian secara dinamik.

  5. Parameter yang ditetapkan untuk saham individu tidak semestinya berlaku untuk saham lain, dan perlu diuji dan dioptimumkan mengikut ciri-ciri saham yang berbeza.

  6. Data pengesanan jangka panjang tidak semestinya mewakili prestasi cakera, di mana anda perlu memberi perhatian kepada risiko pengendalian.

Arah pengoptimuman

Strategi ini boleh dipertimbangkan untuk dioptimumkan dari segi berikut:

  1. Optimumkan parameter CCI untuk meningkatkan kepekaan penilaian CCI terhadap titik jual beli.

  2. Menambah petunjuk tambahan seperti MACD, Bollinger Band dan lain-lain untuk meningkatkan ketepatan isyarat jual beli.

  3. Menggunakan algoritma pembelajaran mesin, menggunakan latihan data sejarah untuk membuat ramalan mengenai titik jual beli.

  4. Menggunakan kaedah hentian hentian dinamik, menyesuaikan peratusan hentian hentian mengikut turun naik pasaran.

  5. Mengoptimumkan logik pertimbangan untuk meningkatkan jumlah transaksi dan mengelakkan ketidakseimbangan harga.

  6. Meningkatkan kestabilan strategi dengan mengoptimumkan parameter yang ditetapkan mengikut ciri-ciri saham yang berbeza dan keadaan pasaran.

  7. Menambah mekanisme untuk menjejaki trend dan mengoptimumkan prestasi strategi pada peringkat yang berbeza.

  8. Meningkatkan struktur strategi, memperkenalkan pengurusan modular, meningkatkan fleksibiliti kod dan kebolehluasannya.

ringkaskan

Strategi menembusi garis K secara keseluruhan adalah strategi perdagangan garis pendek yang agak mudah dan jelas. Ia menggabungkan kelebihan pelbagai petunjuk teknikal yang biasa digunakan, logik penghakiman yang jelas dan mudah difahami, dan mengawal risiko dengan menghentikan hentian kerugian. Strategi ini dapat dioptimumkan secara fleksibel mengikut keperluan sendiri, untuk menangkap titik balik harga garis pendek, menjejaki trend pertengahan.

Kod 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 **********