
Strategi TMA adalah sistem perdagangan pengesanan trend yang menggabungkan dengan cerdiknya purata bergerak melonggarkan pelbagai kitaran (SMMA) dan analisis bentuk garis K untuk mengenal pasti peluang perdagangan yang berkemungkinan tinggi. Strategi ini menggunakan purata bergerak melonggarkan 21, 50, 100 dan 200 kitaran sebagai asas untuk mengenal pasti trend dan kawasan sokongan / rintangan, sambil menggunakan dua bentuk garis K klasik, “Triple Rebound” dan “Swallow Form” untuk mengesahkan isyarat masuk.
Logik teras strategi TMA berpusat di sekitar purata bergerak melonggarkan pelbagai kitaran, pengesahan bentuk K-line dan penapisan sesi perdagangan. Pertama, strategi mengira purata bergerak melonggarkan empat kitaran yang berlainan: 21, 50, 100 dan 200, yang bersama-sama membentuk rangka trend pasaran. Kedua, strategi menggunakan 2 kitaran EMA sebagai penunjuk trend jangka pendek untuk menilai pergerakan harga semasa.
Kelas ini direka untuk memenuhi syarat-syarat yang sangat ketat, iaitu:
Di samping itu, jika penapis sesi perdagangan diaktifkan, operasi masuk mesti dilakukan dalam tempoh perdagangan yang ditetapkan. Reka bentuk penapisan syarat bertingkat ini berkesan mengurangkan penjanaan isyarat yang salah.
Syarat untuk keluar adalah agak mudah:
Reka bentuk ini membolehkan trend untuk berkembang sepenuhnya, dan pada masa yang sama untuk keluar dengan serta-merta pada permulaan pembalikan trend, melindungi keuntungan yang telah diperoleh.
Strategi TMA mempunyai banyak kelebihan yang menjadikannya alat pengesanan trend yang kuat:
Pengesahan trend pelbagai peringkatDengan menggunakan purata bergerak yang licin dalam kombinasi untuk beberapa tempoh, strategi ini dapat menilai kekuatan dan kesinambungan trend pasaran secara menyeluruh, mengurangkan penipuan yang mungkin disebabkan oleh satu petunjuk.
Pengesahan bentuk KStrategi ini bukan sahaja bergantung kepada penunjuk teknikal, tetapi juga menggabungkan analisis bentuk K-line klasik, mekanisme pengesahan dua kali ini meningkatkan kebolehpercayaan isyarat masuk secara ketara.
Sangat boleh menyesuaikan diriTetapan parameter yang boleh disesuaikan (seperti kitaran purata bergerak, masa sesi perdagangan, dan lain-lain) membolehkan strategi menyesuaikan diri dengan pasaran dan gaya perdagangan yang berbeza.
Pengurusan risiko yang lebih baikBerasaskan pada persilangan purata bergerak, ia menyediakan mekanisme kawalan risiko yang objektif kepada peniaga, mengelakkan kedudukan yang berlebihan yang mungkin disebabkan oleh penilaian subjektif.
Pengurusan KecairanDengan menggunakan penapis sesi perdagangan, strategi ini dapat mengelakkan masa-masa kecairan yang rendah, mengurangkan risiko slippage dan manipulasi harga.
Mengurangkan bunyi bisingPenggunaan purata bergerak yang licin mengurangkan kesan bunyi pasaran dan menjadikan isyarat trend lebih jelas.
Kebolehgunaan pelbagai pasaranStrategi ini direka untuk pelbagai pasaran seperti forex, saham, dan cryptocurrency, terutamanya dalam jangka masa yang lebih tinggi (seperti 15 minit, 1 jam, 4 jam, dan hari).
Walaupun terdapat banyak kelebihan dalam strategi TMA, terdapat beberapa risiko yang perlu diperhatikan:
Penarikan trend lewatOleh kerana menggunakan purata bergerak sebagai petunjuk utama, ia mungkin menyebabkan isyarat perubahan trend yang agak terlewat, kehilangan sebahagian keuntungan di peringkat awal trend. Penyelesaian: Anda boleh mempertimbangkan untuk menggabungkan indikator yang lebih sensitif (seperti MACD atau RSI) untuk mengenal pasti perubahan trend yang berpotensi lebih awal.
Pasaran bergolak kurang baikSebagai strategi trend-following, ia mungkin menghasilkan perdagangan kerugian berturut-turut dalam persekitaran pasaran yang bergelombang atau sering bergelombang. Penyelesaian: Tambah penapis mod pasaran, berhenti berdagang apabila pasaran bergelombang dikenali atau menyesuaikan parameter yang sesuai untuk pasaran bergelombang.
Risiko penembusan palsuBentuk K seperti bentuk menelan dan penolakan tiga baris boleh menghasilkan isyarat palsu dalam keadaan tertentu. Cara penyelesaian: Syarat pengesahan tambahan boleh ditambah, seperti pengesahan jumlah transaksi atau pengesahan penembusan tahap harga kritikal.
Risiko yang terlalu optimumBeberapa parameter yang boleh disesuaikan boleh menyebabkan data sejarah yang terlalu sesuai, tetapi tidak berfungsi dengan baik di pasaran masa depan. Penyelesaian: Melakukan pengulangan yang mencukupi di pasaran dan tempoh masa yang berbeza, dan mengekalkan kestabilan parameter.
Tetapan zon waktu penapis sesiFilter sesi perdagangan bergantung pada tetapan zon masa yang betul, dan konfigurasi yang salah boleh menyebabkan perdagangan dilakukan pada tempoh masa yang tidak sesuai. Penyelesaian: Semak dengan teliti tetapan zon masa untuk memastikan ia sesuai dengan tempoh aktif pasaran sasaran.
Berdasarkan analisis yang mendalam mengenai kod, strategi TMA mempunyai beberapa arah yang boleh dioptimumkan:
Pengaturan parameter dinamikDengan menggunakan kitaran purata bergerak yang tetap, anda boleh mempertimbangkan untuk menyesuaikan parameter ini secara automatik mengikut kadar turun naik pasaran. Sebagai contoh, menggunakan kitaran yang lebih lama untuk mengurangkan bunyi di pasaran yang lebih turun naik, dan menggunakan kitaran yang lebih pendek untuk meningkatkan kepekaan di pasaran yang kurang turun naik.
Meningkatkan mekanisme kawalan kerugianStrategi semasa hanya bergantung pada penyambungan purata bergerak sebagai syarat keluar, dan boleh menambah fungsi berhenti tetap atau berhenti untuk mengesan kerugian, untuk mengehadkan kerugian maksimum dalam satu perdagangan, dan melindungi keselamatan dana.
Memperkenalkan penapis kemeruapanMenambah indikator kadar turun naik dalam syarat kemasukan (seperti ATR atau standard deviation), mengelakkan memasuki pasaran semasa turun naik yang luar biasa, atau menyesuaikan saiz kedudukan secara dinamik mengikut tahap turun naik, untuk pengurusan risiko yang lebih halus.
Pengendalian jumlah transaksiPertimbangkan untuk menyesuaikan saiz kedudukan berdasarkan kekuatan trend atau kualiti isyarat, dan bukannya peratusan dana tetap, yang dapat meningkatkan keuntungan dalam perdagangan berkemungkinan tinggi dan mengurangkan risiko perdagangan berkemungkinan rendah.
Menambah mekanisme penguncian keuntungan: Apabila perdagangan mencapai keuntungan tertentu, anda boleh mempertimbangkan untuk melonggarkan sebahagian atau memindahkan titik berhenti kepada harga kos, mengunci sebahagian keuntungan, sambil mengekalkan peluang untuk terus menyertai trend.
Pengesahan pelbagai kerangka masaMengintegrasikan analisis trend pada jangka masa yang lebih tinggi, dan hanya masuk jika trend pada jangka masa yang lebih tinggi selaras, ini dapat meningkatkan kadar kejayaan dengan ketara dan mengurangkan risiko penembusan palsu.
Strategi TMA adalah sistem pengesanan trend yang direka dengan baik, yang menyediakan pedagang dengan cara yang sistematik untuk mengenal pasti dan menangkap trend pasaran melalui kombinasi purata bergerak yang multicycle, pengesahan bentuk K-line, dan penapis trend dinamik. Strategi ini memberi perhatian khusus kepada mekanisme pengesahan, yang memerlukan pelbagai syarat untuk memenuhi perdagangan secara serentak, yang mengurangkan kadar kesalahan.
Walaupun terdapat beberapa risiko yang wujud, seperti kelewatan pengiktirafan trend dan kurangnya prestasi pasaran yang bergolak, risiko ini dapat dikurangkan dengan arah pengoptimuman yang dikemukakan dalam artikel ini. Kekuatan dan daya serap strategi ini dapat ditingkatkan lagi dengan menambah fungsi seperti mekanisme penghentian kerugian, penapis kadar turun naik, pengesahan bingkai masa berganda.
Akhirnya, perlu ditekankan bahawa tidak ada strategi perdagangan yang menang seratus peratus, dan strategi TMA tidak terkecuali. Perdagangan yang berjaya bergantung bukan sahaja pada strategi itu sendiri, tetapi juga pada disiplin pedagang, keupayaan pengurusan risiko dan pemahaman tentang pasaran. Oleh itu, peniaga disyorkan untuk menguji strategi ini dengan baik di akaun simulasi sebelum berdagang di tempat nyata, membiasakan diri dengan ciri dan batasan, dan membuat penyesuaian yang sesuai mengikut toleransi risiko dan matlamat perdagangan peribadi.
/*backtest
start: 2025-02-26 00:00:00
end: 2025-03-05 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("TMA Strategy", shorttitle="TMA Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)
// Smoothed MAs Inputs
len1 = input.int(21, title="Length 1", group="Smoothed MA Inputs")
src1 = input.source(close, title="Source 1", group="Smoothed MA Inputs")
len2 = input.int(50, title="Length 2", group="Smoothed MA Inputs")
src2 = input.source(close, title="Source 2", group="Smoothed MA Inputs")
h100 = input.bool(true, title="Show 100 Line", group="Smoothed MA Inputs")
len3 = input.int(100, title="Length 3", group="Smoothed MA Inputs")
src3 = input.source(close, title="Source 3", group="Smoothed MA Inputs")
len4 = input.int(200, title="Length 4", group="Smoothed MA Inputs")
src4 = input.source(close, title="Source 4", group="Smoothed MA Inputs")
// Calculate Smoothed MAs
smma1 = ta.sma(src1, len1)
plot(smma1, color=color.white, linewidth=2, title="21 SMMA")
smma2 = ta.sma(src2, len2)
plot(smma2, color=color.green, linewidth=2, title="50 SMMA")
smma3 = ta.sma(src3, len3)
plot(h100 ? smma3 : na, color=color.yellow, linewidth=2, title="100 SMMA")
smma4 = ta.sma(src4, len4)
plot(smma4, color=color.red, linewidth=2, title="200 SMMA")
// Trend Filter
ema2 = ta.ema(close, 2)
// 3 Line Strike Signals
bullSig = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]
bearSig = close[3] > open[3] and close[2] > open[2] and close[1] > open[1] and close < open[1]
// Engulfing Candles Signals
bullishEngulfing = open <= close[1] and open < open[1] and close > open[1]
bearishEngulfing = open >= close[1] and open > open[1] and close < open[1]
// Trading Session Filter
ts = input.bool(true, title="Enable Session Filter", group="Trade Session")
tz = input.string("America/Chicago", title="Timezone", options=["America/New_York", "America/Chicago", "Europe/London", "Europe/Frankfurt", "Asia/Tokyo", "Asia/Sydney", "UTC"], group="Trade Session")
startH = input.int(8, title="Session Start Hour", minval=0, maxval=23, group="Trade Session")
startM = input.int(30, title="Session Start Minute", minval=0, maxval=59, group="Trade Session")
endH = input.int(12, title="Session End Hour", minval=0, maxval=23, group="Trade Session")
endM = input.int(0, title="Session End Minute", minval=0, maxval=59, group="Trade Session")
startTime = timestamp(year, month, dayofmonth, startH, startM)
endTime = timestamp(year, month, dayofmonth, endH, endM)
inSession = (time >= startTime and time <= endTime)
// Entry Conditions
longCondition = (bullishEngulfing or bullSig) and (ema2 > smma4) and (not ts or inSession)
shortCondition = (bearishEngulfing or bearSig) and (ema2 < smma4) and (not ts or inSession)
// Exit Conditions
exitLong = ta.crossunder(ema2, smma4)
exitShort = ta.crossover(ema2, smma4)
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long, comment="Long Entry")
if (shortCondition)
strategy.entry("Short", strategy.short, comment="Short Entry")
if (exitLong)
strategy.close("Long", comment="Exit Long")
if (exitShort)
strategy.close("Short", comment="Exit Short")
// Debugging Plots
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Signal")
// Visuals
plot(ema2, color=color.blue, linewidth=1, title="EMA(2)")
bgcolor(inSession and ts ? color.new(color.blue, 90) : na, title="Session Background")