Strategi Penembak Jitu Universal

Penulis:ChaoZhang, Tarikh: 2023-12-20 11:04:15
Tag:

img

Ringkasan

Strategi ini menggunakan gabungan pelbagai penunjuk teknikal untuk melaksanakan strategi perdagangan jangka pendek yang serba boleh. Ia mempunyai penjejakan trend, perdagangan pecah, perdagangan pembalikan purata dan kaedah perdagangan lain, yang dapat disesuaikan dengan kebanyakan persekitaran pasaran. Ia adalah sebahagian daripada strategi jangka pendek yang sangat universal dan praktikal.

Prinsip Strategi

  1. Strategi ini mula-mula menggunakan penunjuk saluran badan lilin, digabungkan dengan saluran harga tertinggi dan terendah, untuk menentukan hala tuju dan kekuatan trend semasa.

  2. Kemudian, ia menggunakan penunjuk EMA biasa untuk menentukan arah trend jangka sederhana dan panjang.

  3. Seterusnya, strategi menggunakan penunjuk Hull MA untuk menentukan sama ada harga semasa terlalu banyak dibeli atau terlalu banyak dijual.

  4. Akhirnya, strategi menggunakan fungsi keselamatan untuk membuka kitaran yang lebih tinggi untuk menentukan arah trend kitaran besar dan menghasilkan isyarat perdagangan.

Gabungan pelbagai sub-strategi membolehkan strategi untuk menangkap trend kitaran pertengahan sambil menilai arah trend keseluruhan berdasarkan kitaran panjang, dengan itu merealisasikan strategi perdagangan universal yang serba boleh.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah bahawa ia menggabungkan beberapa penunjuk teknikal untuk perdagangan portfolio, yang dapat secara serentak merealisasikan penjejakan trend, perdagangan pembalikan purata, perdagangan pecah dan kaedah perdagangan lain, yang sangat serba boleh dan menyesuaikan diri dengan kebanyakan persekitaran pasaran.

Khususnya, kelebihan utama strategi ini ialah:

  1. Menggunakan penunjuk saluran badan lilin untuk menentukan penyemburan entiti dapat mengenal pasti isyarat penyemburan dengan berkesan.

  2. Menggunakan kombinasi EMA berganda untuk menapis isyarat palsu meningkatkan ketepatan isyarat.

  3. Menggunakan penunjuk MA Hull untuk menentukan kawasan overbought dan oversold mempunyai keupayaan yang lebih tepat untuk menentukan titik perubahan.

  4. Menggunakan persilangan harga pembukaan dan penutupan garis K kitaran yang lebih tinggi untuk menghasilkan isyarat dapat mengelakkan ditipu oleh bunyi bising.

  5. Gabungan pelbagai kaedah perdagangan menjadikan strategi lebih serba boleh dan universal.

Analisis Risiko

Walaupun strategi menggabungkan pelbagai penunjuk untuk mencapai strategi perdagangan serba boleh, masih ada risiko tertentu dalam perdagangan, terutamanya:

  1. Perdagangan breakout cenderung disesatkan oleh breakout palsu dan menghasilkan isyarat yang salah.

  2. Perdagangan pengembalian purata cenderung menyebabkan kerugian di pasaran yang terhad.

  3. Keupayaan penapisan gabungan EMA berganda masih terhad, yang mungkin menapis isyarat biasa.

  4. Indikator MA Hull masih kurang tepat dalam lengkung pemasangan.

Sebagai tindak balas kepada risiko di atas, pengoptimuman boleh dibuat dalam aspek berikut:

  1. Gunakan penunjuk yang lebih stabil untuk membantu menilai dan mengelakkan pecah palsu.

  2. Tingkatkan strategi stop loss untuk mengawal kerugian tunggal.

  3. Sesuaikan parameter EMA dua untuk mencari kombinasi yang optimum.

  4. Cuba untuk mengintegrasikan lebih banyak penunjuk untuk menentukan keadaan overbought dan oversold.

Arahan pengoptimuman

Menurut analisis di atas, strategi ini boleh dioptimumkan terutamanya ke arah berikut:

  1. Menggunakan kombinasi penunjuk yang lebih mainstream dan stabil sebagai penilaian tambahan, seperti Garis Kalman, Bollinger Band, dll.

  2. Meningkatkan strategi stop loss untuk mengawal kerugian tunggal.

  3. Pengoptimuman parameter untuk mencari kombinasi parameter yang optimum.

  4. Meningkatkan penilaian model pembelajaran mesin untuk menggunakan AI untuk menentukan kawasan yang terlalu banyak dibeli dan dijual.

  5. Meningkatkan penilaian logik adaptif untuk menyesuaikan kaedah strategi secara dinamik berdasarkan persekitaran pasaran yang berbeza.

Ringkasan

Strategi ini menggabungkan pelbagai penunjuk untuk perdagangan portfolio, mencapai integrasi organik pelbagai kaedah perdagangan seperti penjejakan trend, perdagangan pecah, dan perdagangan pembalikan purata. Ini adalah strategi perdagangan jangka pendek yang sangat serba boleh dan sejagat. Kelebihan terbesar strategi ini adalah penerapannya yang luas untuk kebanyakan persekitaran pasaran. Ia tergolong dalam idea strategi yang lebih sejagat. Sudah tentu, masih ada risiko tertentu dalam perdagangan. Kita boleh mengoptimumkan strategi dari memperkenalkan penunjuk yang lebih stabil, meningkatkan kerugian berhenti, pengoptimuman parameter, menggunakan pembelajaran mesin dan banyak aspek lain untuk meningkatkan lagi prestasi strategi. Secara umum, ini adalah strategi perdagangan jangka pendek sejagat yang sangat berharga untuk dirujuk dan belajar dari.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//╭╮╱╱╭╮╭╮╱╱╭╮
//┃╰╮╭╯┃┃┃╱╱┃┃
//╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮
//╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫
//╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃
//╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯
//╭━━━┳╮╱╱╱╱╱╱╱╭╮
//┃╭━╮┃┃╱╱╱╱╱╱╱┃┃
//┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃
//┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃
//┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮
//╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯
//━╯
// http://www.vdubus.co.uk/
strategy(title='Vdub FX SniperVX3 / Strategy  v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = request.security(syminfo.tickerid, Piriod, open)
ch2 = request.security(syminfo.tickerid, Piriod, close)
longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

Lebih lanjut