Sumber dimuat naik... memuat...

Strategi Pengiktirafan corak trend dan pembalikan purata bergerak berbilang

Penulis:ChaoZhang, Tarikh: 2024-07-30 16:30:26
Tag:SMASMMAEMA

img

Ringkasan

Strategi ini adalah alat analisis teknikal yang komprehensif yang menggabungkan pelbagai Purata Bergerak Lesu (SMMA), pengenalan trend, pengenalan corak lilin, dan analisis sesi dagangan. Ia bertujuan untuk membantu peniaga mengenal pasti trend pasaran, mengesan titik pembalikan yang berpotensi, dan melaksanakan dagangan dalam sesi dagangan tertentu. Inti strategi terletak pada menggunakan SMMA dari tempoh yang berbeza untuk menentukan arah pasaran, sambil menggunakan corak lilin 3 Line Strike dan Engulfing untuk menjana isyarat dagangan.

Prinsip Strategi

  1. Purata Bergerak Lencir Berganda (SMMA): Strategi ini menggunakan 4 SMMA (21-periode, 50-periode, 100-periode, dan 200-periode) untuk menilai trend pasaran dalam jangka masa yang berbeza. purata bergerak ini membantu peniaga memahami trend pasaran jangka pendek, sederhana, dan jangka panjang.

  2. Trend Fill: Strategi ini secara visual memaparkan trend semasa dengan mengisi latar belakang berdasarkan hubungan antara harga jangka pendek (2-period EMA) dan SMMA 200-period. Latar belakang hijau menunjukkan trend bullish, manakala merah menunjukkan trend bearish.

  3. Pengiktirafan corak candlestick:

    • 3 corak garis: Mengenal pasti lilin pembalikan yang muncul selepas tiga lilin berturut-turut ke arah yang sama, berpotensi menandakan pembalikan trend.
    • Corak menelan: Mengenal pasti lilin besar yang sepenuhnya menelan lilin sebelumnya, juga berpotensi menandakan pembalikan trend.
  4. Analisis Sesi Dagangan: Membolehkan pengguna menentukan sesi dagangan tertentu dan menyerlahkan tempoh ini pada carta. Ini membantu peniaga memberi tumpuan kepada masa perdagangan yang paling aktif.

  5. Generasi Isyarat Perdagangan:

    • Isyarat panjang: Dihidupkan apabila bullish 3 Line Strike atau bullish engulfing pattern muncul.
    • Isyarat pendek: Dihidupkan apabila 3 Line Strike atau corak penyerapan bearish muncul.

Kelebihan Strategi

  1. Analisis Berbilang Dimensi: Dengan menggabungkan beberapa penunjuk teknikal dan kaedah analisis, ia menyediakan perspektif pasaran yang komprehensif, memudahkan keputusan perdagangan yang lebih tepat.

  2. Pengesahan Trend: Menggunakan SMMA dalam pelbagai jangka masa membolehkan pengesahan trend yang lebih tepat, mengurangkan isyarat palsu.

  3. Pengenalan Pembalikan: Dengan mengenali corak lilin tertentu, ia dapat menangkap pembalikan pasaran yang berpotensi lebih awal, memberikan pedagang peluang masuk dan keluar.

  4. Intuitif visual: Penggunaan warna dan penanda grafik menjadikan keadaan pasaran dan isyarat berpotensi mudah difahami, memudahkan analisis cepat.

  5. Fleksibiliti: Membolehkan pengguna menyesuaikan pelbagai parameter, seperti tempoh purata bergerak dan sesi dagangan, untuk menyesuaikan diri dengan gaya dagangan dan keadaan pasaran yang berbeza.

  6. Pengurusan Masa: Dengan menyoroti sesi dagangan tertentu, ia membantu peniaga menguruskan masa dagangan mereka dengan lebih baik, memberi tumpuan kepada tempoh pasaran yang paling berpotensi.

Risiko Strategi

  1. Sifat ketinggalan: Purata bergerak secara semula jadi merupakan penunjuk ketinggalan dan mungkin tidak menangkap titik perubahan tepat pada masanya di pasaran yang berubah dengan cepat.

  2. Terlalu bergantung pada corak: Kebergantungan yang berlebihan pada corak candlestick boleh menyebabkan penilaian yang salah, kerana tidak semua corak meramalkan pembalikan pasaran dengan tepat.

  3. Risiko pecah palsu: Di pasaran yang berbeza, harga sering melintasi purata bergerak, menghasilkan isyarat palsu.

  4. Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada parameter yang dipilih, yang mungkin memerlukan penyesuaian yang kerap dalam keadaan pasaran yang berbeza.

  5. Penolakan Dasar: Kaedah analisis teknikal murni mungkin mengabaikan faktor asas yang penting, yang membawa kepada pertimbangan yang salah semasa berita atau peristiwa penting.

  6. Overtrading: Dalam pasaran yang sangat tidak menentu, strategi boleh menghasilkan terlalu banyak isyarat perdagangan, meningkatkan kos transaksi dan berpotensi membawa kepada overtrading.

Untuk mengurangkan risiko ini, disyorkan untuk:

  • Menggabungkan penunjuk teknikal lain dan analisis asas untuk mengesahkan isyarat.
  • Gunakan sasaran stop loss dan keuntungan yang sesuai untuk menguruskan risiko.
  • Uji semula strategi di bawah keadaan pasaran yang berbeza untuk mencari parameter optimum.
  • Pertimbangkan untuk melaksanakan penapis isyarat untuk mengurangkan isyarat palsu.
  • Berhati-hati dengan siaran data ekonomi penting dan peristiwa pasaran.

Arahan Pengoptimuman Strategi

  1. Penyesuaian Parameter Dinamik: Melaksanakan tempoh purata bergerak adaptif yang menyesuaikan diri secara automatik berdasarkan turun naik pasaran untuk memenuhi keadaan pasaran yang berbeza.

  2. Mekanisme Pengesahan Isyarat: Memperkenalkan penunjuk teknikal tambahan (seperti RSI, MACD) untuk mengesahkan isyarat perdagangan, meningkatkan kebolehpercayaan isyarat.

  3. Penapis Volatiliti: Masukkan penunjuk ATR (Rentang Benar Purata) untuk menapis isyarat lemah semasa tempoh turun naik yang rendah, hanya berdagang apabila pasaran mempunyai momentum yang mencukupi.

  4. Klasifikasi Negara Pasaran: Membangunkan algoritma untuk mengklasifikasikan keadaan pasaran semasa (trend, julat, turun naik yang tinggi, dan lain-lain) dan mengamalkan strategi perdagangan yang berbeza untuk keadaan yang berbeza.

  5. Pengoptimuman Stop-Loss: Melaksanakan stop-loss dinamik, seperti menggunakan ATR atau tahap sokongan / rintangan baru-baru ini untuk menetapkan titik stop-loss, untuk pengurusan risiko yang lebih baik.

  6. Analisis Volume: Mengintegrasikan data jumlah, melaksanakan isyarat perdagangan hanya apabila disahkan oleh jumlah, untuk meningkatkan kebolehpercayaan isyarat.

  7. Berat Masa: Menganalisis data sejarah untuk menentukan kadar kejayaan pada tempoh masa yang berbeza, menetapkan berat yang berbeza kepada isyarat pada masa yang berbeza.

  8. Integrasi Pembelajaran Mesin: Gunakan algoritma pembelajaran mesin untuk mengoptimumkan pemilihan parameter dan proses penjanaan isyarat, meningkatkan kebolehsesuaian strategi dan prestasi.

  9. Analisis pelbagai jangka masa: Luaskan strategi untuk mempertimbangkan isyarat dari pelbagai jangka masa, memastikan arah perdagangan sejajar dengan trend pasaran yang lebih besar.

  10. Pengoptimuman Pengurusan Modal: Melaksanakan penyesuaian saiz kedudukan dinamik berdasarkan turun naik pasaran dan risiko akaun untuk menentukan saiz setiap perdagangan.

Arahan pengoptimuman ini bertujuan untuk meningkatkan kestabilan, kesesuaian, dan prestasi keseluruhan strategi. Melalui penambahbaikan ini, strategi dapat mengatasi dengan lebih baik dengan persekitaran pasaran yang berbeza, meningkatkan keuntungan, dan mengurangkan risiko.

Kesimpulan

Strategi Pengiktirafan Corak Pembalikan dan Pengikutan Trend Purata Berbilang Bergerak adalah alat analisis teknikal yang komprehensif yang menggabungkan beberapa teknik perdagangan lanjutan. Dengan menggunakan pelbagai purata bergerak halus, pengenalan trend, analisis corak candlestick, dan pengurusan sesi perdagangan, strategi ini menyediakan peniaga dengan kerangka kerja yang komprehensif untuk analisis pasaran. Ia bukan sahaja membantu mengenal pasti trend pasaran secara keseluruhan tetapi juga menangkap titik pembalikan yang berpotensi, menawarkan rujukan berharga untuk keputusan perdagangan.

Kelebihan utama strategi ini terletak pada pendekatan analisis berbilang dimensi dan persembahan visual yang intuitif, yang membolehkan peniaga dengan cepat memahami keadaan pasaran dan membuat keputusan yang tepat.

Untuk meningkatkan lagi keberkesanan strategi, beberapa arah pengoptimuman boleh dipertimbangkan, termasuk pelarasan parameter dinamik, pengenalan mekanisme pengesahan tambahan, dan integrasi teknik yang lebih maju seperti pembelajaran mesin. pengoptimuman ini dapat membantu strategi menyesuaikan diri dengan lebih baik dengan persekitaran pasaran yang berbeza, meningkatkan kestabilan dan keuntungan.

Akhirnya, adalah penting untuk diingat bahawa tidak ada strategi yang tidak dapat dipungkiri. Perdagangan yang berjaya tidak hanya bergantung pada strategi yang baik tetapi juga pada pengurusan risiko yang ketat, pembelajaran pasaran yang berterusan, dan penyempurnaan strategi yang berterusan. Pedagang harus menggunakan strategi ini sebagai sebahagian daripada sistem perdagangan keseluruhan mereka, menggabungkannya dengan kaedah analisis lain dan wawasan pasaran peribadi untuk membuat keputusan perdagangan akhir.


/*backtest
start: 2024-06-29 00:00:00
end: 2024-07-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="TMA Overlay Strategy", shorttitle="TMA Overlay", overlay=true)

// ### Four Smoothed Moving Averages

len1 = input.int(21, minval=1, title="Length 1", group="Smoothed MA Inputs")
src1 = close
smma1 = 0.0
sma_1 = ta.sma(src1, len1)
smma1 := na(smma1[1]) ? sma_1 : (smma1[1] * (len1 - 1) + src1) / len1
plot(smma1, color=color.white, linewidth=2, title="21 SMMA")

len2 = input.int(50, minval=1, title="Length 2", group="Smoothed MA Inputs")
src2 = close
smma2 = 0.0
sma_2 = ta.sma(src2, len2)
smma2 := na(smma2[1]) ? sma_2 : (smma2[1] * (len2 - 1) + src2) / len2
plot(smma2, color=color.new(#6aff00, 0), linewidth=2, title="50 SMMA")

h100 = input.bool(true, title="Show 100 Line", group="Smoothed MA Inputs")
len3 = input.int(100, minval=1, title="Length 3", group="Smoothed MA Inputs")
src3 = close
smma3 = 0.0
sma_3 = ta.sma(src3, len3)
smma3 := na(smma3[1]) ? sma_3 : (smma3[1] * (len3 - 1) + src3) / len3
sma3plot = plot(h100 ? smma3 : na, color=color.new(color.yellow, 0), linewidth=2, title="100 SMMA")

len4 = input.int(200, minval=1, title="Length 4", group="Smoothed MA Inputs")
src4 = close
smma4 = 0.0
sma_4 = ta.sma(src4, len4)
smma4 := na(smma4[1]) ? sma_4 : (smma4[1] * (len4 - 1) + src4) / len4
sma4plot = plot(smma4, color=color.new(#ff0500, 0), linewidth=2, title="200 SMMA")

// Trend Fill
trendFill = input.bool(true, title="Show Trend Fill", group="Smoothed MA Inputs") 
ema2 = ta.ema(close, 2)
ema2plot = plot(ema2, color=color.new(#2ecc71, 100), linewidth=1, title="EMA(2)", editable=false)
fill(ema2plot, sma4plot, color=color.new(ema2 > smma4 and trendFill ? color.green : color.red, 85), title="Trend Fill")

// End ###

// ### 3 Line Strike
bearS = input.bool(true, title="Show Bearish 3 Line Strike", group="3 Line Strike")
bullS = input.bool(true, title="Show Bullish 3 Line Strike", group="3 Line Strike")

bearSig = close[3] > open[3] and close[2] > open[2] and close[1] > open[1] and close < open[1]
bullSig = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]

plotshape(bullS ? bullSig : na, style=shape.triangleup, color=color.green, location=location.belowbar, size=size.small, text="3s-Bull", title="3 Line Strike Up")
plotshape(bearS ? bearSig : na, style=shape.triangledown, color=color.red, location=location.abovebar, size=size.small, text="3s-Bear", title="3 Line Strike Down")

// End ###

//### Engulfing Candles
bearE = input.bool(true, title="Show Bearish Big A$$ Candles", group="Big A$$ Candles")
bullE = input.bool(true, title="Show Bullish Big A$$ Candles", group="Big A$$ Candles")

openBarPrevious = open[1]
closeBarPrevious = close[1]
openBarCurrent = open
closeBarCurrent = close

bullishEngulfing = openBarCurrent <= closeBarPrevious and openBarCurrent < openBarPrevious and closeBarCurrent > openBarPrevious
bearishEngulfing = openBarCurrent >= closeBarPrevious and openBarCurrent > openBarPrevious and closeBarCurrent < openBarPrevious

plotshape(bullE ? bullishEngulfing : na, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Big Ass Candle Up")
plotshape(bearE ? bearishEngulfing : na, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Big Ass Candle Down")

alertcondition(bullishEngulfing, title="Bullish Engulfing", message="[CurrencyPair] [TimeFrame], Bullish candle engulfing previous candle")
alertcondition(bearishEngulfing, title="Bearish Engulfing", message="[CurrencyPair] [TimeFrame], Bearish candle engulfing previous candle")

// End ###

// ### Trading Session
ts = input.bool(true, title="Show Trade Session", group="Trade Session")

tzOffset = input.int(0, title="Timezone Offset (hours from UTC)", group="Trade Session")
label = input.string("CME Open", title="Label", tooltip="For easy identification", group="Trade Session")

startHour = input.int(7, title="Analysis Start Hour", minval=0, maxval=23, group="Trade Session")
startMinute = input.int(0, title="Analysis Start Minute", minval=0, maxval=59, group="Trade Session")

startHour2 = input.int(8, title="Session Start Hour", minval=0, maxval=23, group="Trade Session")
startMinute2 = input.int(30, title="Session Start Minute", minval=0, maxval=59, group="Trade Session")
endHour2 = input.int(12, title="Session End Hour", minval=0, maxval=23, group="Trade Session")
endMinute2 = input.int(0, title="Session End Minute", minval=0, maxval=59, group="Trade Session")

rangeColor = input.color(#1976d21f, title="Color", group="Trade Session")
showMon = input.bool(true, title="Monday", group="Trade Session")
showTue = input.bool(true, title="Tuesday", group="Trade Session")
showWed = input.bool(true, title="Wednesday", group="Trade Session")
showThu = input.bool(true, title="Thursday", group="Trade Session")
showFri = input.bool(true, title="Friday", group="Trade Session")
showSat = input.bool(false, title="Saturday", group="Trade Session")
showSun = input.bool(false, title="Sunday", group="Trade Session")

startTime = timestamp("UTC", year(time), month(time), dayofmonth(time), startHour - tzOffset, startMinute)
endTime = timestamp("UTC", year(time), month(time), dayofmonth(time), endHour2 - tzOffset, endMinute2)

active = (startTime <= time and time <= endTime and ts) and ((dayofweek == dayofweek.monday and showMon) or (dayofweek == dayofweek.tuesday and showTue) or (dayofweek == dayofweek.wednesday and showWed) or (dayofweek == dayofweek.thursday and showThu) or (dayofweek == dayofweek.friday and showFri) or (dayofweek == dayofweek.saturday and showSat) or (dayofweek == dayofweek.sunday and showSun))
bgcolor(color=active ? rangeColor : na, title="Session Background")

startTime2 = timestamp("UTC", year(time), month(time), dayofmonth(time), startHour2 - tzOffset, startMinute2)
endTime2 = timestamp("UTC", year(time), month(time), dayofmonth(time), endHour2 - tzOffset, endMinute2)

active2 = (startTime2 <= time and time <= endTime2 and ts) and ((dayofweek == dayofweek.monday and showMon) or (dayofweek == dayofweek.tuesday and showTue) or (dayofweek == dayofweek.wednesday and showWed) or (dayofweek == dayofweek.thursday and showThu) or (dayofweek == dayofweek.friday and showFri) or (dayofweek == dayofweek.saturday and showSat) or (dayofweek == dayofweek.sunday and showSun))
bgcolor(color=active2 ? rangeColor : na, title="Session Background")

// End ###

// Trading Strategy
longCondition = bullSig or bullishEngulfing
shortCondition = bearSig or bearishEngulfing

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// eof


Berkaitan

Lebih lanjut