
Strategi ini adalah strategi perdagangan garis pendek berdasarkan sistem penilaian pengesahan dan pengesanan pelbagai indikator. Ia menilai kekuatan isyarat perdagangan dengan menganalisis saiz grafik, perubahan jumlah dagangan dan indikator RSI, membahagikan isyarat menjadi tiga peringkat A, B, C, di mana isyarat A adalah yang terkuat, dan isyarat C adalah yang paling lemah. Strategi ini juga mengintegrasikan fungsi pengurusan risiko, termasuk menetapkan stop dan titik berhenti secara automatik, dan menyediakan pelabelan grafik dan fungsi peringatan perdagangan, yang memudahkan pedagang untuk mengesan isyarat perdagangan dalam masa nyata.
Prinsip-prinsip utama strategi ini adalah berdasarkan kepada gabungan elemen-elemen utama berikut:
Penghakiman Trend: Menggunakan 200 EMA sebagai alat penilaian trend utama. Harga mencari peluang melakukan plus di atas 200 EMA, mencari peluang melakukan shorting di bawah 200 EMA.
Sinyal persilangan rataStrategi menggunakan 20 kitaran EMA dan SMA, menghasilkan isyarat awal apabila kedua-dua garis lurus bersilang. Melakukan banyak isyarat memerlukan melalui SMA di atas EMA, isyarat kosong memerlukan melalui SMA di bawah EMA.
RSI mengesahkan: Menggunakan indikator RSI 9 kitaran, apabila melakukan banyak kali meminta RSI lebih besar daripada 50, apabila melakukan kosong meminta RSI kurang daripada 50
Penilaian saiz kerangka: Analisis strategi untuk membandingkan saiz tongkang dengan purata 20 tongkang yang lalu untuk menilai pergerakan harga semasa.
Pengesahan jumlah transaksi: Memerlukan jumlah dagangan semasa yang lebih besar daripada jumlah dagangan dalam kitaran sebelumnya untuk memastikan penyertaan pasaran yang mencukupi.
Sistem peringkat isyarat:
Pengurusan Risiko: mengandungi penangguhan yang boleh disesuaikan (default 0.5%) dan penangguhan (default 0.3%), yang ditetapkan sebagai peratusan harga masuk.
Strategi ini menggunakan syarat-syarat pengesahan berganda ini untuk memastikan bahawa perdagangan masuk hanya berlaku apabila terdapat cukup pergerakan pasaran dan pengesahan trend, mengurangkan isyarat palsu.
Sistem penilaian bertarafKelebihan terbesar adalah sistem penarafan isyarat yang unik, yang membolehkan peniaga memilih hanya isyarat yang paling kuat untuk diperdagangkan (Kelas A) atau lebih banyak peluang perdagangan (Kelas B dan C) mengikut keutamaan risiko mereka.
Mekanisme pengesahan bergandaPengesahan pelbagai indikator teknikal (RSI, garis rata-rata), tingkah laku harga (ukuran kerangka) dan penyertaan pasaran (volume transaksi) secara berkesan mengurangkan kemungkinan isyarat palsu.
Pengurusan risiko dalamanPeraturan Stop Loss automatik memastikan risiko setiap dagangan dapat dikawal dan mengelakkan kerugian yang berlebihan dalam satu dagangan.
Sistem maklum balas visualTag yang diletakkan secara automatik pada carta apabila isyarat perdagangan dicetuskan, dengan jelas menunjukkan arah perdagangan dan kekuatan isyarat, untuk memudahkan peniaga mengenal pasti dengan cepat.
Fungsi amaran: Sistem amaran yang disatukan dengan TradingView, yang boleh memberi amaran kepada pedagang melalui pop-up, e-mel atau telefon bimbit.
Beradaptasi dengan keadaan pasaran yang berbeza: Strategi boleh mengekalkan prestasi yang agak stabil dalam pelbagai persekitaran turun naik dengan pengesahan peringkat isyarat dan pelbagai petunjuk.
Kebolehsuaian: Menyediakan pilihan tersuai untuk pelbagai parameter utama, termasuk panjang RSI, kitaran garis rata-rata, nisbah stop loss dan stop loss, dan tahap isyarat untuk diperdagangkan, membolehkan strategi disesuaikan dengan keutamaan peribadi dan keadaan pasaran.
Trend mengikut momentumStrategi ini menggabungkan trend-following (rata-rata) dan pengesahan momentum (RSI, saiz kurma) untuk membentuk sistem perdagangan yang lebih lengkap.
Penapisan berlebihanMOS: MOS boleh menyebabkan kehilangan beberapa peluang perdagangan yang berkesan, terutamanya apabila hanya berdagang dengan isyarat Kelas A, yang boleh mengurangkan frekuensi perdagangan.
Kepekaan ParameterStrategi menggunakan pelbagai petunjuk dan parameter teknikal, perubahan kecil dalam parameter ini boleh menyebabkan perbezaan prestasi yang besar. Sebagai contoh, panjang RSI, kitaran garis purata dan ukuran ukuran badan badan mungkin perlu disesuaikan dengan keadaan pasaran yang berbeza.
Persentase Stop Loss TetapStrategi menggunakan peratusan yang ditetapkan untuk menghentikan kerugian, yang mungkin tidak sesuai untuk semua keadaan pasaran. Dalam persekitaran yang bergelombang tinggi, tahap yang ditetapkan untuk menghentikan kerugian mungkin terlalu kecil, dan dalam persekitaran yang bergelombang rendah, mungkin terlalu besar.
Kesan kebisingan pasaranDalam jangka masa 1 minit, bunyi pasaran yang lebih kuat boleh menyebabkan lebih banyak isyarat palsu, terutamanya semasa pasaran mendatar atau turun naik.
Risiko kecairanPada masa-masa yang tidak berdagang atau semasa kecairan rendah, kualiti isyarat perdagangan mungkin menurun dan risiko slippage meningkat.
Risiko kerugian berterusanWalaupun menggunakan sistem peringkat, kerugian berturut-turut mungkin berlaku apabila pasaran berubah secara tiba-tiba, dan strategi pengurusan wang yang sesuai diperlukan.
Risiko berlawanan trendStrategi ini adalah berdasarkan pada pengesahan rentas rata-rata jangka pendek dan RSI, yang mungkin memberi isyarat yang salah dalam keadaan trend yang kuat.
Kaedah untuk mengurangkan risiko ini termasuk: menggunakan syarat penapisan pada jangka masa yang lebih lama, menyesuaikan tahap stop loss secara dinamik, berdagang pada masa pasaran tertentu (seperti ketika terdapat banyak turun naik atau banyak kecairan), mengukur dan mengoptimumkan parameter secara berkala, dan mengawal risiko setiap perdagangan dengan ketat.
atr = ta.atr(14)
longSL = close - atr * slMultiplier
longTP = close + atr * tpMultiplier
timeFilter = (hour >= 14 and hour < 16) or (hour >= 9 and hour < 11)
higherTimeframeTrend = request.security(syminfo.ticker, "15", close > ta.ema(close, 200))
longCondition = longBase and higherTimeframeTrend
consecutiveLongSignals = longBase and longBase[1]
adaptiveLength = math.round(ta.atr(14) / ta.atr(14)[20] * baseLength)
adaptiveRsi = ta.rsi(close, math.max(2, adaptiveLength))
if setupGrade == "A"
tpMultiplier = 2.0
else if setupGrade == "B"
tpMultiplier = 1.5
else
tpMultiplier = 1.0
volatilityFilter = ta.atr(14) > ta.sma(ta.atr(14), 20) * 0.8
if (strategy.position_size > 0 and close > entryPrice * (1 + partialTpPerc/100))
strategy.exit("Partial", "Long", qty_percent=50)
Arahan pengoptimuman ini berpusat pada penyelesaian masalah kebolehan adaptasi strategi dalam keadaan pasaran yang berbeza, meningkatkan kualiti isyarat dan menguruskan risiko dengan lebih baik, sambil mengekalkan logik teras strategi.
Strategi pengesahan trend dan pengurusan risiko US30 ini adalah sistem perdagangan garis pendek yang menggabungkan pelbagai petunjuk teknikal, pengesahan trend dan analisis dinamik. Ia unik kerana menggunakan sistem penilaian peringkat ((A, B, C) untuk menilai kualiti isyarat perdagangan, yang membolehkan pedagang memilih kualiti isyarat mengikut keutamaan risiko mereka.
Fungsi pengurusan risiko yang terbina dalam dan maklum balas visual yang jelas menjadikannya sistem perdagangan yang agak lengkap. Walau bagaimanapun, strategi ini mungkin menghadapi cabaran seperti bunyi pasaran yang besar, sensitif parameter dan tidak cukup fleksibiliti stop loss tetap ketika beroperasi pada jangka masa yang singkat. Dengan mengintegrasikan arah pengoptimuman seperti pengurusan risiko dinamik, analisis jangka masa berbilang dan penapisan keadaan pasaran, strategi ini berpotensi untuk meningkatkan lagi kebolehpasaran dan kestabilan dalam pelbagai keadaan pasaran sambil mengekalkan kelebihan terasnya.
Sistem ini memberikan titik permulaan yang baik bagi peniaga yang mempunyai strategi perdagangan garis pendek dengan peraturan yang jelas dan risiko yang terkawal, yang dapat dikembangkan menjadi sistem perdagangan yang diperibadikan dengan pengesanan dan pengoptimuman lanjut, disesuaikan dengan gaya perdagangan individu dan ciri-ciri pasaran sasaran.
/*backtest
start: 2025-02-01 00:00:00
end: 2025-03-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("US30 1-min Strategy with TP/SL, Grades, Alerts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
rsiLength = input.int(9, title="RSI Length")
maLength = input.int(20, title="MA Length (SMA & EMA)")
ema200Length = input.int(200, title="200 EMA Length")
tpPerc = input.float(0.5, title="Take Profit %", step=0.1)
slPerc = input.float(0.3, title="Stop Loss %", step=0.1)
// Grade filters
allowA = input.bool(true, title="Trade A-Grade Setups")
allowB = input.bool(true, title="Trade B-Grade Setups")
allowC = input.bool(false, title="Trade C-Grade Setups")
// === Indicators ===
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, maLength)
ema = ta.ema(close, maLength)
ema200 = ta.ema(close, ema200Length)
volumeRising = volume > volume[1]
// === Candle Size Helpers ===
avgBody = ta.sma(math.abs(close - open), 20)
candleBody = math.abs(close - open)
candleLarge = candleBody > avgBody
candleVeryLarge = candleBody > avgBody * 2
// === Setup Grade Conditions ===
gradeA = candleVeryLarge and volumeRising and rsi > 55 or rsi < 45
gradeB = candleLarge and volumeRising
gradeC = candleLarge
// === Setup Conditions ===
// --- Long ---
longBase = close > ema200 and ta.crossover(ema, sma) and rsi > 50 and close > ema and close > sma
// --- Short ---
shortBase = close < ema200 and ta.crossunder(ema, sma) and rsi < 50 and close < ema and close < sma
// === Determine Grade ===
setupGrade = ""
isTrade = false
if longBase
if gradeA and allowA
setupGrade := "A"
isTrade := true
else if gradeB and allowB
setupGrade := "B"
isTrade := true
else if gradeC and allowC
setupGrade := "C"
isTrade := true
if shortBase
if gradeA and allowA
setupGrade := "A"
isTrade := true
else if gradeB and allowB
setupGrade := "B"
isTrade := true
else if gradeC and allowC
setupGrade := "C"
isTrade := true
// === Entry & TP/SL ===
longTP = close * (1 + tpPerc / 100)
longSL = close * (1 - slPerc / 100)
shortTP = close * (1 - tpPerc / 100)
shortSL = close * (1 + slPerc / 100)
// Entry
if longBase and isTrade and (setupGrade == "A" or setupGrade == "B" or setupGrade == "C")
strategy.entry("Long " + setupGrade, strategy.long)
strategy.exit("TP/SL", "Long " + setupGrade, limit=longTP, stop=longSL)
label.new(bar_index, high, "Long " + setupGrade, style=label.style_label_up, color=color.green, textcolor=color.white)
alert("LONG " + setupGrade + " setup triggered!", alert.freq_once_per_bar)
if shortBase and isTrade and (setupGrade == "A" or setupGrade == "B" or setupGrade == "C")
strategy.entry("Short " + setupGrade, strategy.short)
strategy.exit("TP/SL", "Short " + setupGrade, limit=shortTP, stop=shortSL)
label.new(bar_index, low, "Short " + setupGrade, style=label.style_label_down, color=color.red, textcolor=color.white)
alert("SHORT " + setupGrade + " setup triggered!", alert.freq_once_per_bar)
// === Plotting MAs ===
plot(ema, title="20 EMA", color=color.red)
plot(sma, title="20 SMA", color=color.blue)
plot(ema200, title="200 EMA", color=color.green)