
Strategi ini adalah alat analisis teknikal yang komprehensif yang menggabungkan pelbagai rata-rata bergerak bergerak (SMMA), pengenalan trend, pengenalan corak grafik dan analisis masa perdagangan. Ia bertujuan untuk membantu peniaga mengenal pasti trend pasaran, mencari titik balik yang berpotensi, dan melakukan perdagangan dalam masa perdagangan tertentu.
Multiple Smooth Moving Averages (SMMA): Strategi ini menggunakan 4 SMMA (masa 21, 50, 100, dan 200) untuk menilai trend pasaran dalam jangka masa yang berbeza. Garis rata ini dapat membantu peniaga memahami pergerakan pasaran jangka pendek, sederhana, dan panjang.
Penuh Trend: Strategi ini menggunakan latar belakang yang dipenuhi warna untuk menunjukkan trend semasa secara visual dengan membandingkan hubungan harga jangka pendek (EMA 2 tempoh) dengan SMMA 200 tempoh. Latar belakang hijau menunjukkan trend kenaikan, dan latar belakang merah menunjukkan trend penurunan.
Pengiktirafan bentuk grafik:
Analisis masa dagangan: membolehkan pengguna menentukan masa dagangan tertentu dan memaparkannya dengan terang di carta. Ini membantu peniaga menumpukan perhatian pada masa perdagangan yang paling aktif.
Sinyal dagangan dihasilkan:
Analisis pelbagai dimensi: menyediakan perspektif pasaran yang menyeluruh dengan menggabungkan pelbagai petunjuk teknikal dan kaedah analisis, yang membantu membuat keputusan perdagangan yang lebih bermaklumat.
Pengesahan Trend: Dengan menggunakan SMMA dalam pelbagai bingkai masa, trend pasaran dapat dipastikan dengan lebih tepat, mengurangkan isyarat palsu.
Pengiktirafan reversal: Dengan mengenal pasti corak grafik tertentu, ia dapat menangkap potensi reversal pasaran lebih awal, memberi peluang kepada peniaga untuk masuk dan keluar.
Intuisi visual: Menggunakan warna dan penandaan grafik untuk melihat keadaan pasaran dan isyarat yang berpotensi untuk analisis cepat.
Fleksibiliti: membolehkan pengguna menyesuaikan pelbagai parameter, seperti kitaran purata, masa perdagangan, dan sebagainya, untuk menyesuaikan diri dengan gaya perdagangan dan keadaan pasaran yang berbeza.
Pengurusan masa: Membantu peniaga untuk menguruskan masa dagangan dengan lebih baik dengan memaparkan masa dagangan tertentu dengan lebih terang dan menumpukan perhatian pada masa pasaran yang paling berpotensi.
Ketinggalan: Purata bergerak pada dasarnya merupakan penunjuk ketinggalan, yang mungkin tidak dapat menangkap titik perubahan dalam pasaran yang berubah dengan cepat.
Bentuk ketergantungan yang berlebihan: Terlalu banyak bergantung pada bentuk grafik boleh menyebabkan kesalahan penghakiman, kerana tidak semua bentuk dapat meramalkan perubahan pasaran dengan tepat.
Risiko penembusan palsu: Dalam pasaran setapak, harga mungkin sering melintasi garis rata-rata, menghasilkan isyarat palsu.
Sensitiviti parameter: prestasi strategi sangat bergantung kepada parameter yang dipilih, dan mungkin memerlukan penyesuaian yang kerap dalam keadaan pasaran yang berbeza.
Mengabaikan asas: Kaedah analisis teknikal semata-mata mungkin mengabaikan faktor asas yang penting, menyebabkan keputusan yang salah apabila berita atau peristiwa penting berlaku.
Overtrading: Dalam pasaran yang sangat tidak menentu, strategi boleh menghasilkan terlalu banyak isyarat perdagangan, meningkatkan kos perdagangan dan boleh menyebabkan overtrading.
Untuk mengurangkan risiko ini, kami mencadangkan:
Penyesuaian parameter dinamik: mencapai penyesuaian diri untuk kitaran rata-rata, menyesuaikan kitaran SMMA secara automatik mengikut turun naik pasaran untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Mekanisme pengesahan isyarat: pengenalan penunjuk teknikal tambahan (seperti RSI, MACD dan lain-lain) untuk mengesahkan isyarat perdagangan, meningkatkan kebolehpercayaan isyarat.
Penapis turun naik: Tambahkan penunjuk ATR (Average True Range) untuk menyaring isyarat lemah pada masa turun naik yang rendah, dan hanya berdagang apabila pasaran mempunyai tenaga yang cukup.
Klasifikasi keadaan pasaran: membangunkan algoritma untuk mengklasifikasikan keadaan pasaran semasa (kecenderungan, horizontal, turun naik, dan lain-lain) dan menggunakan strategi perdagangan yang berbeza untuk keadaan yang berbeza.
Optimasi Hentian Kerosakan: mencapai hentian dinamik, seperti menggunakan ATR atau tahap sokongan / rintangan terkini untuk menetapkan titik hentian untuk menguruskan risiko dengan lebih baik.
Analisis jumlah urus niaga: mengintegrasikan data jumlah urus niaga dan hanya melaksanakan isyarat urus niaga jika jumlah urus niaga disahkan untuk meningkatkan kebolehpercayaan isyarat.
Berat masa: memberi berat yang berbeza kepada isyarat pada masa yang berbeza berdasarkan kadar kejayaan analisis data sejarah pada tempoh masa yang berbeza.
Pembelajaran Mesin Integrasi: Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan pemilihan parameter dan proses penjanaan isyarat, meningkatkan kemampuan dan prestasi strategi.
Analisis pelbagai kerangka masa: strategi meluas untuk mempertimbangkan isyarat pelbagai kerangka masa, memastikan arah perdagangan selaras dengan trend pasaran yang lebih besar.
Pengendalian wang yang dioptimumkan: penyesuaian saiz kedudukan yang 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. Dengan penambahbaikan ini, strategi dapat bertindak balas dengan lebih baik terhadap keadaan pasaran yang berbeza, meningkatkan keuntungan dan mengurangkan risiko.
Strategi Pemantauan Trend Garis Rata-Rata Berbilang dan Pengenalan Pola Pembaikan adalah alat analisis teknikal yang komprehensif yang menggabungkan pelbagai teknik perdagangan canggih. Dengan menggunakan banyak rata-rata bergerak rata-rata, pengenalan trend, analisis corak grafik dan pengurusan masa perdagangan, strategi ini menyediakan pedagang dengan kerangka analisis pasaran yang komprehensif. Ia bukan sahaja dapat membantu mengenal pasti trend pasaran keseluruhan, tetapi juga dapat menangkap potensi perubahan, memberikan rujukan yang berharga untuk keputusan perdagangan.
Kelebihan utama strategi ini adalah kaedah analisis berbilang dimensi dan bentuk visual yang intuitif, yang membolehkan peniaga memahami keadaan pasaran dengan cepat dan membuat keputusan yang tepat. Walau bagaimanapun, seperti semua strategi perdagangan, ia juga menghadapi risiko yang wujud, seperti ketinggalan zaman dan ketergantungan berlebihan pada petunjuk teknikal.
Untuk meningkatkan lagi kesan strategi, beberapa arah pengoptimuman boleh dipertimbangkan, termasuk penyesuaian parameter dinamik, pengenalan mekanisme pengesahan tambahan, dan integrasi teknologi yang lebih maju seperti pembelajaran mesin. Pengoptimuman ini dapat membantu strategi menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza, meningkatkan kestabilan dan keuntungan.
Akhirnya, penting untuk diingat bahawa tidak ada satu strategi yang sempurna. Perdagangan yang berjaya tidak hanya bergantung pada strategi yang baik, tetapi juga memerlukan pengurusan risiko yang ketat, pembelajaran pasaran yang berterusan, dan penyempurnaan strategi yang berterusan.
/*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