Strategi Penembusan Lilin Kana Berdasarkan Purata Bergerak dan Rintangan Sokongan

Penulis:ChaoZhang, Tarikh: 2023-12-27 15:27:45
Tag:

img

Ringkasan

Ini adalah strategi pecah pantas berdasarkan analisis teknikal candlestick Jepun, digabungkan dengan penunjuk purata bergerak dan penunjuk rintangan sokongan untuk menentukan trend dan kedudukan.

Logika Strategi

Strategi ini menggunakan purata bergerak mudah 20 tempoh (SMA) dan purata bergerak eksponen 200 tempoh (EMA) untuk menentukan arah trend. Apabila harga berada dalam trend menaik (SMA di atas EMA), dan badan sebenar lilin Jepun semasa ditutup di atas terbuka (badan putih), ia menunjukkan kuasa beli yang diperkukuhkan. Apabila harga berada dalam trend menurun (SMA di bawah EMA), dan badan sebenar lilin Jepun semasa ditutup di bawah terbuka (badan hitam), ia menunjukkan tekanan penjualan yang diperkukuhkan.

Dengan pengesahan trend dan momentum, strategi menunggu untuk penembusan harga yang cepat dan memasuki pasaran. Yang dipanggil penembusan bermaksud harga melintasi garis saluran pertama daripada tiga saluran ATR yang telah ditetapkan (dihitung berdasarkan ATR dan pekali 200 hari) dan memasuki garis saluran kedua. Ini adalah isyarat penembusan kebarangkalian tinggi.

Setelah memasuki pasaran, peraturan mengambil keuntungan dan menghentikan kerugian sangat mudah. Selagi harga menyentuh sempadan luar saluran (seperti garis keuntungan atau baris kehilangan berhenti), ia akan mengambil keuntungan atau menghentikan kerugian dengan serta-merta. Ini memastikan keuntungan cepat strategi.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah mengambil keuntungan dengan cepat dengan risiko yang agak kecil. Dengan memasuki pasaran dengan cepat selepas pecah, ia mengelakkan pelbagai penyesuaian kedudukan. Dan kesan percepatan yang dibawa oleh pecah saluran membolehkan keuntungan yang besar dalam jangka masa yang singkat.

Berbanding dengan pemegang jangka panjang, mekanisme pembukaan dan penutupan yang cekap dapat mengurangkan kadar tidak aktif strategi dan meningkatkan kecekapan modal. Pada masa yang sama, mekanisme mengambil keuntungan dan menghentikan kerugian yang cepat juga dapat mengawal kerugian tunggal dengan berkesan.

Analisis Risiko

Strategi ini terutamanya bergantung kepada penunjuk purata bergerak untuk menentukan arah trend, dengan risiko penurunan dan penyatuan.

Di samping itu, strategi terlalu bergantung pada penunjuk teknikal tanpa menggabungkan analisis peristiwa asas dan penting.

Untuk mengawal risiko, kita boleh meluaskan julat saluran dengan sewajarnya untuk mengurangkan kekerapan pembukaan; atau menambah modul pengurusan kedudukan untuk menyesuaikan kedudukan tunggal secara dinamik berdasarkan jumlah modal.

Pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Tambah modul pengurusan kedudukan. Sesuaikan secara dinamik kedudukan pembukaan tunggal berdasarkan saiz akaun untuk mengawal peratusan kerugian tunggal.

  2. Tambah penapisan asas. Apabila penunjuk teknikal mencetuskan isyarat pembukaan, periksa asas syarikat dan peristiwa penting untuk mengelakkan kecacatan.

  3. Menggabungkan pengurusan kumpulan stok. Tetapkan peraturan untuk menyesuaikan kumpulan stok secara dinamik. Pilih kumpulan stok yang optimum dalam peringkat yang berbeza untuk meningkatkan kestabilan.

  4. Menggabungkan model pembelajaran mesin. Gunakan AI untuk meramalkan trend dan tahap harga utama, membantu menentukan julat saluran dan masa kemasukan.

Kesimpulan

Strategi ini mempunyai ciri kesederhanaan dan kecekapan. Ia menentukan trend utama dengan purata bergerak, arah momentum dengan lilin Jepun, memasuki dengan pecah cepat, dan keluar dengan mengambil keuntungan cepat dan berhenti kerugian. Ia membolehkan keuntungan jangka pendek yang sesuai untuk perdagangan frekuensi tinggi. Tetapi ia juga mempunyai risiko penarikan dan ketidakpastian. Pengoptimuman berterusan dapat menjadikan strategi stabil di bawah persekitaran pasaran yang berbeza.


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Kana with S/R Strategy", title = "KANA with S/R", overlay=true)

len = input(20, minval=1, title="Length")
multiplier1 = input(1, minval=1, title="multiplier1")
multiplier2 = input(2, minval=1, title="multiplier2")
multiplier3 = input(3, minval=1, title="multiplier3") 
srTimeFrame = input(240, minval=1, title="Support Resistance TimeFrame")
useSR = input(true, type = bool, title="Use Support/Resistance")
tpPercent = input(0.5, type=float, title = "Take Profit Percent")
useTP = input(false, type=bool, title = "Use Take Profit")
tp = (close * tpPercent / 100) / syminfo.mintick

src = input(close, title="Source")
mid = sma(src, len)
plot(mid, title="SMA", color=blue)

trend = ema(close, 200)
plot(trend, title="Trend", color=green)


upper1 = mid + atr(200) * multiplier1
upper2 = mid + atr(200) * multiplier2
upper3 = mid + atr(200) * multiplier3

lower1 = mid - atr(200) * multiplier1
lower2 = mid - atr(200) * multiplier2
lower3 = mid - atr(200) * multiplier3

plot(upper1, color = orange)
plot(upper3, color = red)

plot(lower1, color = orange)
plot(lower3, color = red)

haClose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)
haOpen = request.security(heikinashi(syminfo.tickerid), timeframe.period, open)

resistance = request.security(syminfo.tickerid,tostring(srTimeFrame), high)
support  = request.security(syminfo.tickerid,tostring(srTimeFrame), low)
rsPos = (close - support[srTimeFrame]) / (resistance[srTimeFrame] - support[srTimeFrame])

MACD = ema(close, 120) - ema(close, 260)
aMACD = ema(MACD, 90)
hisline = MACD - aMACD

longCondition = (mid > trend) and (haOpen[1] < haClose[1]) and (mid > mid[1]) and (close < upper1) and hisline > 0 and (useSR == true ? (rsPos > 100) : true)
shortCondition = (mid < trend) and (haOpen[1] > haClose[1]) and (mid < mid[1]) and (close > lower1) and hisline < 0 and (useSR == true ? (rsPos < 0) : true)

longExit = (close > upper3 ) or (close < lower2)
shortExit = (close < lower3) or (close > upper2)

if (longCondition)
    strategy.entry("Long", strategy.long)
    if (useTP)
        strategy.exit("Exit Long", "Long", profit = tp)
        
if (longExit)
    strategy.close("Long")
    
if (shortCondition)
    strategy.entry("Short", strategy.short)
    if (useTP)
        strategy.exit("Exit Short", "Short", profit = tp)
    
if (shortExit)
    strategy.close("Short")

Lebih lanjut